Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 23 kwietnia 2026 10:02
  • Data zakończenia: 23 kwietnia 2026 10:05

Egzamin niezdany

Wynik: 19/40 punktów (47,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

W bazie danych dotyczącej pojazdów pole kolor w tabeli samochody może mieć wartości jedynie z definicji lakier. Aby nawiązać relację między tabelami samochody a lakier, należy użyć kwerendy

A. ALTER TABLE samochody ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);
B. ALTER TABLE samochody ADD FOREIGN KEY kolor REFERENCES lakier;
C. ALTER TABLE samochody ADD FOREIGN KEY barwa REFERENCES samochody.lakier;
D. ALTER TABLE lakier ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
Odpowiedzi, które nie pasują do zapytania, często wynikają z nieporozumienia dotyczącego koncepcji kluczy obcych oraz ich zastosowania w relacyjnych bazach danych. Na przykład, zmiana struktury tabeli lakier przez dodanie klucza obcego do tabeli samochody nie jest zasadne, ponieważ relacja powinna zostać zdefiniowana w tabeli, która zawiera odwołanie do innej tabeli. Klucz obcy powinien znajdować się w tabeli, której dane są uzależnione od innej tabeli, co nie jest spełnione w tej sytuacji. Innym typowym błędem jest niepoprawne odwołanie się do kolumny w kontekście klucza obcego. Użycie "barwa" lub "kolor", jako klucza obcego w niewłaściwy sposób, prowadzi do sytuacji, gdzie nie można skutecznie zapewnić integralności danych. Należy pamiętać, że klucz obcy odnosi się do kolumny, która pełni rolę klucza głównego w innej tabeli, a w przypadku lakier, kluczem głównym jest lakierId. Stosowanie kluczy obcych nie tylko wspomaga zarządzanie danymi, ale również poprawia ich spójność oraz wiarygodność. Praktyki te są fundamentalnym aspektem projektowania baz danych, które powinny być przestrzegane, aby uniknąć nieporozumień w przyszłości.

Pytanie 2

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

Ilustracja do pytania
A. atrybuty
B. krotki
C. encje
D. pola
Prawidłowo – na takim schemacie bazy danych „czytelnik”, „wypożyczenie” i „książka” to encje. W modelowaniu danych najpierw identyfikujemy obiekty świata rzeczywistego, które chcemy odwzorować w systemie. W przypadku biblioteki naturalnymi obiektami są właśnie czytelnik, książka i konkretne wypożyczenie. W notacji ERD (Entity‑Relationship Diagram) każdy z tych obiektów opisujemy jako encję, a potem dopiero dodajemy jej atrybuty oraz relacje z innymi encjami. Na schemacie widzisz trzy prostokąty – to są właśnie encje. Każda encja ma zestaw atrybutów: dla encji „czytelnik” są to np. imię, nazwisko, ulica, miejscowość; dla encji „książka” – tytuł, autor, rok wydania; dla encji „wypożyczenie” – daty wypożyczenia i zwrotu, klucze obce do czytelnika i książki. W relacyjnej bazie danych te encje są potem najczęściej odwzorowane jako tabele: tabela CZYTELNIK, WYPOZYCZENIE, KSIAZKA. To jest dokładnie zgodne z dobrymi praktykami projektowania: najpierw model koncepcyjny (encje i relacje), dopiero później model logiczny (tabele, klucze, typy danych). Z mojego doświadczenia przy każdym poważniejszym projekcie bazodanowym analitycy najpierw rysują diagram encji, bo to pomaga zrozumieć domenę biznesową. Dzięki poprawnemu rozróżnieniu encji od atrybutów można uniknąć błędów typu powtarzanie tych samych danych w wielu miejscach czy trudności z raportowaniem. W bibliotece na przykład wypożyczenie musi być osobną encją, bo opisuje zdarzenie w czasie, ma własne atrybuty (daty) i łączy dwie inne encje relacjami. Taki sposób modelowania jest zgodny z klasycznymi podręcznikami baz danych (model encja‑związek) oraz z zasadami normalizacji.

Pytanie 3

Aby przeanalizować rozkład ilościowy różnych kolorów na zdjęciu, jaka metoda powinna być zastosowana?

A. rozmycia Gaussa
B. histogramu
C. desaturacji
D. balansu kolorów
Histogram to narzędzie analityczne, które pozwala wizualizować rozkład kolorów oraz ich intensywność w obrazie. Dzięki histogramowi możemy zidentyfikować, które kolory dominują w danym zdjęciu, co jest kluczowe w procesie edycji graficznej oraz analizy obrazu. Histogram przedstawia liczbę pikseli dla każdego poziomu jasności lub dla poszczególnych kolorów w skali RGB (czerwony, zielony, niebieski). W praktyce, analizując histogram, możemy szybko ocenić, czy zdjęcie jest dobrze naświetlone, czy może występują w nim zbyt ciemne lub zbyt jasne obszary. Przykładowo, w fotografii krajobrazowej, gdy chcemy uzyskać pełne spektrum barw zieleni i niebieskiego nieba, histogram pomoże nam dostosować ekspozycję lub kolory, aby uzyskać pożądany efekt. Standardy branżowe, takie jak Adobe RGB czy sRGB, również opierają się na analizie histogramu, co czyni go niezbędnym narzędziem dla profesjonalnych fotografów oraz grafików.

Pytanie 4

Wskaż poprawne stwierdzenie dotyczące przedstawionego kodu HTML.
<video width="640" height="480" controls>
<source src="animacja.mp4" type="video/mp4">
</video>

A. Użytkownik nie będzie miał możliwości kontrolowania odtwarzania wideo.
B. Lokalizacja pliku jest nieprawidłowa, brak w niej ścieżki bezwzględnej.
C. Kod może nie działać w przeglądarkach, które nie obsługują HTML5.
D. Plik animacja.mp4 powinien mieć rozdzielczość 640x480 pikseli, aby był odtwarzany.
Pierwsze stwierdzenie sugeruje, że plik animacja.mp4 musi mieć dokładnie rozdzielczość 640x480 pikseli, co jest nieprawdziwe. Format &lt;video&gt; w HTML umożliwia odtwarzanie filmów w różnych rozdzielczościach, a przeglądarka automatycznie dostosuje odtwarzanie w zależności od dostępnych zasobów i jakości pliku wideo. Drugie stwierdzenie, że użytkownik nie będzie miał możliwości sterowania odtwarzaniem, jest sprzeczne z definicją atrybutu 'controls', który dodaje elementy sterujące do odtwarzacza, takie jak play, pause i seek. Trzecie stwierdzenie odnosi się do lokalizacji pliku, podczas gdy w rzeczywistości plik animacja.mp4 może być lokalizowany w różnych folderach, a nie tylko w ścisłej ścieżce bezwzględnej. HTML5 wprowadza wiele standardów i uproszczeń, a deweloperzy są zobowiązani do przestrzegania tych standardów, aby zapewnić, że ich treści będą dostępne na różnych platformach. Typowe błędy myślowe prowadzące do takich wniosków obejmują nieznajomość zasad działania znaczników HTML oraz niepełne zrozumienie mechanizmów, jakie przeglądarki stosują w kontekście odtwarzania multimediów.

Pytanie 5

Jak można usunąć ciasteczko o nazwie ciastko, korzystając z języka PHP?

A. unsetcookie("$ciastko");
B. setcookie("$ciastko", "", 0);
C. setcookie("ciastko", "", time()-3600);
D. deletecookie("ciastko");
Odpowiedź setcookie("ciastko", "", time()-3600) jest prawidłowa, ponieważ do usunięcia ciasteczka w PHP należy ustawić jego wartość na pusty ciąg oraz datę ważności w przeszłości. Funkcja setcookie() jest standardowym sposobem zarządzania ciasteczkami w PHP. Argumenty przekazywane do tej funkcji obejmują nazwę ciasteczka, wartość oraz czas, kiedy ciasteczko wygasa. Ustawiając czas na time()-3600, informujemy przeglądarkę, że ciasteczko jest nieaktualne, co skutkuje jego usunięciem. Dobrą praktyką jest również uzupełnienie argumentów o ścieżkę i domenę, aby upewnić się, że wszystkie instancje ciasteczka są usuwane. Przykładowo, setcookie("ciastko", "", time()-3600, "/", "example.com"); usuwa ciasteczko w kontekście całej witryny. Pamiętaj, aby wywołać tę funkcję przed jakimkolwiek wyjściem HTML, ponieważ nagłówki HTTP muszą być wysyłane przed jakimikolwiek danymi wyjściowymi.

Pytanie 6

Określ słowo kluczowe w języku C++, które umieszcza się przed wbudowanym typem danych, aby ograniczyć zakres do liczb wyłącznie nieujemnych.

A. unsigned
B. short
C. const
D. long
Słowo 'unsigned' w C++ to naprawdę ważna rzecz, bo mówi kompilatorowi, że dany typ może trzymać tylko liczby dodatnie. Kiedy dodasz 'unsigned' przed takim typem jak 'int', 'short' albo 'long', to zakres wartości się zmienia. Na przykład, 'unsigned int' może mieć wartości od 0 do 4 294 967 295, a 'int' to od -2 147 483 648 do 2 147 483 647. Dzięki temu programiści mogą korzystać z większej ilości wartości, co jest super przy takich rzeczach jak liczniki czy indeksy w tablicach. Kiedy używasz 'unsigned', to twój kod jest nie tylko bardziej efektywny, ale też bezpieczniejszy, bo unikasz pomyłek z liczbami, które nie powinny być ujemne. Z mojego doświadczenia, warto czasem sięgnąć po to słowo kluczowe w odpowiednich sytuacjach, bo naprawdę poprawia przejrzystość i jakość kodu.

Pytanie 7

Jakie formatowanie obramowania jest zgodne ze stylem border-style: dotted solid;?

Ilustracja do pytania
A. Formatowanie 4
B. Formatowanie 2
C. Formatowanie 1
D. Formatowanie 3
Styl obramowania w CSS pozwala na precyzyjne określenie wyglądu krawędzi elementu na stronie internetowej. W przypadku „border-style: dotted solid;” mamy do czynienia z kombinacją dwóch różnych stylów obramowania. Pierwsza wartość „dotted” odnosi się do obramowania o kropkowanej strukturze, co jest często stosowane w celu nadania lekkości i subtelności wizualnej. Druga wartość „solid” oznacza jednolite obramowanie, które jest bardziej wyraźne i stosowane, gdy wymagana jest wyraźna separacja elementów. Formatowanie 2 odpowiada właśnie temu stylowi, ponieważ przedstawia górne i dolne obramowanie jako kropkowane, a boczne jako jednolite. Takie zastosowanie jest typowe w sytuacjach, gdzie potrzebny jest kompromis między estetyką a funkcjonalnością, np. w tabelach danych, gdzie górne i dolne obramowanie może być delikatniejsze, by nie przytłaczać, a boczne wyraźne dla czytelności. Wybór właściwego stylu obramowania jest kluczowy dla użyteczności i estetyki strony, zgodnie z zasadami projektowania zorientowanego na użytkownika.

Pytanie 8

Który z linków ma prawidłową budowę?

A. <a href='http://adres'> tekst </a>
B. <a href="http://adres"> tekst <a>
C. <a href="mailto:adres"> tekst </a>
D. <a href='mailto:adres'> tekst </a>
Odpowiedź <a href="mailto:adres"> tekst </a> jest poprawna, ponieważ stosuje odpowiednie cudzysłowy dla atrybutu href oraz przestrzega standardów HTML. W HTML5 zaleca się użycie podwójnych cudzysłowów dla wartości atrybutów, co czyni tę konstrukcję zgodną z najlepszymi praktykami. Oto przykład zastosowania: klikając w ten odsyłacz, użytkownik uruchomi aplikację pocztową, co jest przydatne w kontekście kontaktu z użytkownikami czy klientami. Przykłady zastosowania obejmują formularze kontaktowe na stronach internetowych, gdzie użytkownicy mogą łatwo skontaktować się z właścicielem strony. Warto też pamiętać o stosowaniu odpowiednich adresów e-mail, aby uniknąć problemów związanych z korespondencją, oraz o używaniu przyjaznych dla użytkownika tekstów odsyłaczy, które jednoznacznie informują, dokąd prowadzi link. Przestrzeganie tych zasad nie tylko zwiększa użyteczność strony, ale także poprawia jej dostępność.

Pytanie 9

W języku JavaScript stworzono obiekt Samochod. Aby wywołać jedną z jego metod, trzeba wpisać

A. Samochod.spalanie_na100
B. Samochod.kolor
C. Samochod()
D. Samochod.spalanie()
W przypadku niepoprawnych odpowiedzi, możemy zauważyć, że pierwsza z nich, Samochod(), sugeruje wywołanie konstruktora obiektu, co nie jest poprawne w kontekście wywołania metody. Kiedy używamy nawiasów, JavaScript interpretuje to jako próbę stworzenia nowego obiektu, a nie dokonania akcji na istniejącym obiekcie. Kolejna odpowiedź, Samochod.kolor, odnosi się do właściwości obiektu, a nie do metody. W JavaScript możemy uzyskać dostęp do właściwości obiektów za pomocą notacji kropkowej, ale nie wykonuje to żadnej akcji ani nie wywołuje funkcji, co czyni tę odpowiedź niepoprawną w kontekście pytania. Ostatnia propozycja, Samochod.spalanie_na100, również nie jest poprawna, ponieważ sugeruje, że spalanie_na100 jest właściwością obiektu, a nie metodą. Warto zauważyć, że w JavaScript metody są definiowane jako funkcje w obiektach, co oznacza, że muszą być wywoływane z użyciem nawiasów, aby uzyskać pożądany efekt. Dlatego tylko odpowiedź wskazująca na metodę spalanie() jest właściwa. W kontekście programowania obiektowego w JavaScript, każde polecenie powinno być zgodne z definicją i zastosowaniem metod, co zwiększa przejrzystość kodu i jego funkcjonalność.

Pytanie 10

Co wchodzi w skład standardowego frameworka?

A. system uruchamiania i przetwarzania akcji oraz certyfikat http
B. przetwarzanie formularzy oraz wbudowany serwer
C. zarządzanie komunikacją z bazą danych, system uruchamiania i przetwarzania akcji
D. domena oraz obsługa błędów
Wybór odpowiedzi, który nie odnosi się do zarządzania komunikacją z bazą danych oraz mechanizmu uruchamiania i przetwarzania akcji, może prowadzić do mylnych przekonań na temat roli frameworków. Na przykład, odpowiedzi dotyczące certyfikatu HTTP i serwera wbudowanego mogą sugerować, że te elementy są kluczowe dla frameworków, podczas gdy w rzeczywistości to mechanizmy, które są bardziej związane z infrastrukturą sieciową i konfiguracją serwera. Certyfikat HTTP jest istotny dla bezpieczeństwa komunikacji, ale nie jest częścią samego frameworka aplikacyjnego. Podobnie, obsługa formularzy jest funkcją, którą wiele frameworków oferuje, lecz nie jest ona wystarczająca do pełnego operowania w kontekście aplikacji webowych. Ponadto, odpowiedź dotycząca domeny i obsługi błędów może wprowadzać w błąd, ponieważ domena to szerszy termin związany z architekturą aplikacji, a obsługa błędów to mechanizm usprawniający interakcję użytkownika, ale nie definiujący samego frameworka. Właściwe zrozumienie roli zarządzania danymi i mechanizmów przetwarzania akcji jest kluczowe dla efektywnego tworzenia aplikacji, które są skalowalne i łatwe w utrzymaniu.

Pytanie 11

 SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel"; 

Tabela samochody zawiera rekordy przedstawione na obrazie. Wydając przedstawione zapytanie SQL zostaną zwrócone dane:
idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
A. opel zafira
B. zafira; insignia
C. opel zafira; opel insignia
D. zafira
Gratulacje, twoja odpowiedź jest poprawna. Zapytanie SQL 'SELECT model FROM samochody WHERE rocznik > 2017 AND marka = 'opel';' ma na celu wyświetlenie modelu samochodu marki 'opel' z roku produkcji późniejszego niż 2017. Analizując dostępną tabelę, możemy zauważyć, że tylko model 'zafira' spełnia oba kryteria. W tym przypadku wykorzystaliśmy dwa kluczowe elementy języka SQL, tj. instrukcję SELECT i klauzulę WHERE. Instrukcja SELECT służy do zapytań o konkretne dane z bazy, a klauzula WHERE to powszechnie stosowane narzędzie do filtrowania wyników zapytania według określonych kryteriów. Jest to bardzo praktyczny aspekt SQL, który pozwala na wydobywanie tylko tych danych, które są potrzebne, co jest niezwykle przydatne przy dużych bazach danych.

Pytanie 12

Który z elementów w sekcji head dokumentu HTML 5 jest obowiązkowy według walidatora HTML, a jego niedobór skutkuje błędem (error)?

A. title
B. link
C. meta
D. style
Odpowiedzi wskazujące na znaczniki takie jak „style”, „link” czy „meta” mogą wprowadzać w błąd, jeśli chodzi o ich rolę w dokumentach HTML. Znacznik „style” jest używany do osadzania arkuszy stylów CSS i jest istotny dla prezentacji wizualnej, jednak nie jest wymagany do prawidłowego działania strony w kontekście walidacji. Podobnie znacznik „link” jest kluczowy dla łączenia zasobów zewnętrznych, takich jak pliki CSS, ale jego brak nie prowadzi do błędów w walidacji HTML. Z kolei znacznik „meta” pozwala na definiowanie metadanych, takich jak opis strony czy słowa kluczowe, które również są istotne z perspektywy SEO, ale nie są obligatoryjne w każdej sytuacji. Typowym błędem myślowym jest sądzenie, że wszystkie te znaczniki są równie niezbędne jak „title”. Warto pamiętać, że tylko znacznik „title” ma bezpośrednie znaczenie dla walidacji HTML i jest wymagany, aby dokument był zgodny z normami. Brak „title” może prowadzić do negatywnych konsekwencji zarówno w zakresie walidacji, jak i SEO, co podkreśla znaczenie każdej struktury w dokumencie HTML. Dlatego ważne jest, aby zrozumieć, jaka jest rola poszczególnych znaczników w budowie dokumentów HTML oraz jakie są ich konsekwencje w kontekście standardów sieciowych.

Pytanie 13

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:hover { background-color: Pink; }
B. tr { background-color: Pink; }
C. tr:active { background-color: Pink; }
D. td, th { background-color: Pink; }
W tym zadaniu chodzi o zrozumienie, jak działają selektory CSS oraz pseudo-klasy odpowiedzialne za interakcję z użytkownikiem. Jeśli efekt ma pojawiać się tylko wtedy, gdy użytkownik najedzie myszką na wiersz tabeli, to zwykłe ustawienie background-color bez pseudo-klasy nie spełni tego warunku. Deklaracja tr { background-color: Pink; } oznaczałaby, że wszystkie wiersze tabeli są cały czas różowe, niezależnie od tego, czy ktoś na nie najedzie, czy nie. To jest po prostu styl statyczny, bez żadnej reakcji na zdarzenia. Podobnie zapis td, th { background-color: Pink; } ustawia tło dla wszystkich komórek tabeli (zarówno nagłówkowych th, jak i zwykłych td) w sposób stały. Moim zdaniem to dość częsty błąd: ktoś kojarzy tabelę z komórkami i intuicyjnie styluje td/th, ale zapomina, że w pytaniu chodzi o efekt dynamiczny „po najechaniu”. W rezultacie otrzymujemy tabelę pokolorowaną na stałe, bez jakiejkolwiek interakcji, co jest sprzeczne z założeniem zadania i z typowym zachowaniem tabel w nowoczesnych interfejsach. Ciekawsza jest kwestia selektora tr:active { background-color: Pink; }. Pseudo-klasa :active oznacza element w momencie „aktywacji”, czyli najczęściej w chwili klikania (przytrzymania przycisku myszy). Efekt trwa bardzo krótko, tylko w czasie samego kliknięcia. To zupełnie inny scenariusz niż wygodne podświetlenie wiersza, które ma się utrzymywać, dopóki kursor jest nad elementem. Użycie :active prowadzi do efektu, który miga na ułamek sekundy i z punktu widzenia ergonomii jest praktycznie bezużyteczny w kontekście podświetlania wierszy. Typowy błąd myślowy przy takich pytaniach polega na myleniu różnych pseudo-klas: :hover, :active, :focus. W webdevie przyjęło się, że :hover służy do reakcji na najechanie myszką, :active do krótkiej reakcji na kliknięcie, a :focus do zaznaczenia elementu, który ma aktualnie fokus klawiatury. Standardy CSS i dobre praktyki projektowania interfejsów jasno wskazują, że do efektu „podświetl wiersz, gdy nad nim jestem” należy użyć właśnie :hover na odpowiednim elemencie, czyli w tym przypadku tr. Wszystkie pozostałe odpowiedzi ignorują tę zasadę albo stosują nie tę pseudo-klasę, co trzeba, przez co nie odzwierciedlają poprawnie zachowania pokazanego w materiale wideo.

Pytanie 14

Jakie polecenie należy zastosować, aby wysłać dane przy pomocy funkcji mysqli_query() w skrypcie PHP, który dodaje informacje z formularza umieszczonego na stronie internetowej do bazy danych?

A. UPDATE
B. ALTER
C. SELECT
D. INSERT INTO
Odpowiedź 'INSERT INTO' jest poprawna, ponieważ jest to standardowa kwerenda SQL używana do wstawiania nowych rekordów do tabel w bazie danych. W kontekście PHP i funkcji mysqli_query(), wstawianie danych z formularza zazwyczaj obejmuje przygotowanie kwerendy, która zawiera instrukcję INSERT INTO wraz z nazwą tabeli oraz danymi, które mają zostać dodane. Na przykład, jeśli mamy formularz z polami 'imie' i 'nazwisko', kwerenda mogłaby wyglądać następująco: 'INSERT INTO uzytkownicy (imie, nazwisko) VALUES (?, ?)'. Użycie znaków zapytania (?) jest zgodne z najlepszymi praktykami, ponieważ pozwala na bezpieczne wprowadzenie danych, chroniąc aplikację przed atakami SQL Injection. Dobrą praktyką jest również używanie PDO lub MySQLi z przygotowanymi zapytaniami, co zwiększa bezpieczeństwo oraz efektywność kodu. W ten sposób można skutecznie wstawiać dane do bazy danych, zachowując przy tym standardy programistyczne.

Pytanie 15

Jakie wyrażenie logiczne w języku PHP weryfikuje, czy zmienna1 znajduje się w jednostronnie domkniętym przedziale <-5, 10)?

A. $zmienna1 >= -5 || $zmienna1 < 10
B. $zmienna1 <= -5 || $zmienna1 < 10
C. $zmienna1 >= -5 && $zmienna1 < 10
D. $zmienna1 <= -5 && $zmienna1 < 10
Odpowiedź $zmienna1 >= -5 && $zmienna1 < 10 jest poprawna, ponieważ odpowiada definicji jednostronnie domkniętego przedziału, który obejmuje wartość -5 oraz wszystkie wartości większe, ale nie obejmuje wartości 10. Operator && (AND) jest używany do jednoczesnego sprawdzania dwóch warunków: pierwszy warunek ($zmienna1 >= -5) zapewnia, że zmienna jest większa lub równa -5, a drugi warunek ($zmienna1 < 10) sprawdza, czy zmienna jest mniejsza niż 10. W praktyce, taki zapis jest istotny w aplikacjach, gdzie ograniczamy zakres wartości dla zmiennych, na przykład w formularzach walidacji danych wejściowych. Dzięki temu możemy uniknąć błędów, które mogą wystąpić w przypadku niepoprawnych danych. Ponadto, stosowanie operatorów logicznych w PHP jest zgodne z najlepszymi praktykami programowania, jak na przykład dbałość o czytelność kodu oraz jego łatwość w utrzymaniu. Warto także pamiętać o testowaniu skrajnych wartości, aby upewnić się, że nasze warunki działają zgodnie z oczekiwaniami.

Pytanie 16

Jaką integralność określa przytoczona definicja?

Ilustracja do pytania
A. Encji
B. Referencyjną
C. Statyczną
D. Semantyczną
Integralność referencyjna jest fundamentalną zasadą w bazach danych, która zapewnia, że relacje między tabelami są prawidłowo zachowane. Oznacza to, że klucz obcy w jednej tabeli powinien zawsze odnosić się do istniejącego klucza głównego w innej tabeli. To podejście jest kluczowe w relacyjnych bazach danych, ponieważ zapobiega powstawaniu odniesień do nieistniejących danych co mogłoby prowadzić do niespójności w bazie danych. W praktyce integralność referencyjna jest implementowana poprzez restrykcje i ograniczenia narzucane na operacje takie jak wstawianie aktualizacja i usuwanie danych. Na przykład próba usunięcia rekordu z tabeli, do której odwołują się inne rekordy wprowadziłaby niespójność jeśli integralność referencyjna nie jest przestrzegana. Aby temu zapobiec systemy baz danych mogą blokować takie operacje lub automatycznie aktualizować albo usuwać powiązane dane. Przestrzeganie zasad integralności referencyjnej jest zgodne z dobrymi praktykami projektowania baz danych i zgodne ze standardem SQL co zapewnia spójność i integralność danych w systemach informatycznych.

Pytanie 17

Jakiego typu w języku PHP można użyć do przechowywania wielu wartości z opcją ich indeksowania?

A. float
B. boolean
C. array
D. double
W PHP, jeśli chcesz przechowywać wiele wartości z możliwością ich indeksowania, to wybór pada na tablicę, czyli array. Tablice to naprawdę elastyczne struktury danych i mogą trzymać różne typy danych, takie jak liczby, teksty, obiekty, a nawet inne tablice. Fajną sprawą jest to, że możesz tworzyć tablice asocjacyjne, co oznacza, że przypisujesz wartości do konkretnych kluczy. Na przykład możesz stworzyć tablicę z imionami i numerami telefonów, jak w tym przykładzie: $contacts = array('Jan' => '123456789', 'Anna' => '987654321'). W PHP możesz łatwo dodawać i usuwać elementy, co jest super przydatne w programowaniu. A jakby tego było mało, tablice mogą być też wielowymiarowe, co sprawia, że idealnie nadają się do skomplikowanych danych, na przykład w bazach danych czy w aplikacjach webowych. Warto wiedzieć, że tablice w PHP są traktowane jako obiekty, więc masz dostęp do różnych funkcji, jak array_merge(), array_filter() czy array_map(). Dzięki nim manipulacja danymi staje się znacznie łatwiejsza. Tak więc odpowiedź 'array' to nie tylko dobry wybór, ale też kluczowa kwestia w programowaniu w PHP!

Pytanie 18

Obiektem w bazie danych, który wykorzystywany jest do podsumowywania, prezentacji oraz drukowania danych, jest

A. formularz
B. raport
C. zestawienie
D. zapytanie
Zapytanie, formularz i zestawienie, mimo że są istotnymi elementami baz danych, nie pełnią roli raportów. Zapytanie to instrukcja używana do pobierania danych z bazy danych, zazwyczaj w formie języka SQL. Jego celem jest wyciągniecie specyficznych informacji według określonych kryteriów, ale nie oferuje ono gotowego podsumowania czy wniosków. Można zrozumieć, dlaczego niektórzy mogą mylić zapytanie z raportem, gdyż oba elementy są używane do pracy z danymi, jednak zapytanie działa na poziomie surowych danych, a nie na poziomie ich prezentacji. Formularz natomiast jest interaktywnym narzędziem, które pozwala na wprowadzanie danych do bazy, a jego celem jest ułatwienie użytkownikowi wprowadzania i edytowania informacji. Formularze są kluczowe podczas zbierania danych, ale nie są projektowane w celu analizy ani podsumowywania danych. Zestawienie z kolei odnosi się do grupowania informacji w celu ich analizy, ale jak sama nazwa wskazuje, nie jest to forma raportu, który powinien zawierać gotowe podsumowania i wnioski. W celu uniknięcia nieporozumień warto zwrócić uwagę na różnice między tymi pojęciami, co pomoże lepiej zrozumieć ich zastosowania oraz funkcje w kontekście baz danych.

Pytanie 19

Funkcją przedstawionego kodu PHP będzie wypełnienie tablicy

$tab = array();
for ($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}

foreach ($tab as $x) {
    if ($x < 0) echo "$x ";
}
A. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
B. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
C. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
D. Kolejnymi liczbami od 0 do 9 i wypisanie ich
Analizując błędne odpowiedzi, warto zauważyć, że niektóre z nich sugerują nieprawidłowe zrozumienie działania funkcji rand() i pętli for w PHP. Kod pokazuje, że pętla for jest używana do iteracji 10 razy, co oznacza, że tablica będzie wypełniona 10 wartościami, a nie 100. Funkcja rand(-100,100) generuje liczby z przedziału od -100 do 100, a nie tylko dodatnie czy kolejne liczby, co wyklucza możliwość wypełnienia tablicy kolejnymi liczbami od 0 do 9 czy od -100 do 100. Dalsze nieporozumienia mogą wynikać z błędnego zrozumienia instrukcji warunkowej w pętli foreach, która wyświetla tylko wartości ujemne, a nie dodatnie. Częste błędy to także założenie, że wszystkie elementy są przetwarzane jednakowo bez sprawdzenia warunku. Dobre praktyki programistyczne wymagają uważnego czytania i analizy kodu, aby zrozumieć jego logikę. Zrozumienie mechaniki działania pętli i instrukcji warunkowych jest kluczowe w programowaniu i często stanowi podstawę bardziej zaawansowanych algorytmów. Ostatecznie skuteczne przetwarzanie danych w PHP wymaga dokładnego zrozumienia struktury kodu i jego funkcji, co może być wyzwaniem, jeśli koncepcje te są źle zinterpretowane. Ważne jest, aby programista dokładnie rozumiał, jakie wartości są generowane i które z nich są wyświetlane, aby uniknąć niezamierzonych rezultatów w aplikacji.

Pytanie 20

W języku PHP, podczas pracy z bazą danych MySQL, aby zakończyć sesję z bazą, powinno się użyć

A. mysqli_rollback()
B. mysqli_exit( )
C. mysqli_commit()
D. mysqli_close()
Wybór odpowiedzi 'mysqli_exit()' pojawia się często wśród programistów, którzy mylą koncepcje związane z obsługą połączeń w PHP. Należy zaznaczyć, że taka funkcja nie istnieje w kontekście baz danych MySQL, co może prowadzić do frustracji i nieporozumień. Niektórzy mogą sądzić, że 'mysqli_exit()' jest funkcją kończącą pracę z bazą, jednak w rzeczywistości nie ma żadnej dokumentacji ani zastosowania dla tej funkcji w standardowej bibliotece PHP. W programowaniu ważne jest, aby stosować się do oficjalnych dokumentacji oraz standardów, co zapewnia nie tylko poprawność kodu, ale także jego bezpieczeństwo i stabilność. Kolejne propozycje, takie jak 'mysqli_rollback()' i 'mysqli_commit()', dotyczą transakcji w bazie danych, a nie zakończenia połączenia. 'mysqli_rollback()' cofa zmiany wprowadzone w bieżącej transakcji, a 'mysqli_commit()' zatwierdza te zmiany. Oznacza to, że obie funkcje mają na celu zarządzanie transakcjami, a nie zamykanie połączeń. Wybierając niewłaściwą funkcję, programista może napotkać problemy z zarządzaniem stanem aplikacji i bazy danych, co jest szczególnie istotne w kontekście aplikacji wielowątkowych lub o dużym natężeniu ruchu. Aby uniknąć takich błędów, warto regularnie przeglądać i aktualizować swoją wiedzę oraz korzystać z zaufanych źródeł informacji.

Pytanie 21

Które z poniższych twierdzeń na temat języków programowania jest FAŁSZYWE?

A. PHP jest językiem do tworzenia stron w czasie rzeczywistym
B. SQL jest językiem programowania strukturalnego
C. C++ jest językiem obiektowym
D. JavaScript jest językiem skryptowym
SQL (Structured Query Language) to język zapytań, który służy do zarządzania danymi w relacyjnych bazach danych. Pomimo swojej nazwy, SQL nie jest językiem programowania strukturalnego w tradycyjnym sensie, ponieważ nie obsługuje pełnych konstrukcji programistycznych, takich jak pętle czy warunki, które są charakterystyczne dla języków takich jak C czy Pascal. SQL jest językiem deklaratywnym, co oznacza, że użytkownicy formułują zapytania, które definiują, jakie dane chcą uzyskać, a nie jak je uzyskać. Dzięki temu SQL jest niezwykle efektywny w pracy z dużymi zbiorami danych i umożliwia szybkie wykonywanie operacji na bazach danych. Przykładowe zastosowanie SQL to tworzenie zapytań do wyszukiwania określonych informacji w bazie danych klientów lub przy używaniu funkcji agregujących do analizy danych. Zrozumienie roli SQL w architekturze baz danych oraz umiejętność jego stosowania jest kluczowe w dziedzinie analizy danych i rozwijania aplikacji webowych.

Pytanie 22

Jaką funkcję pełni CONCAT w języku SQL?

A. łączenie tekstu do wyświetlenia
B. przycinanie wyświetlanego tekstu
C. usuniecie określonego tekstu
D. określenie podłańcucha znaków z tekstu wejściowego
Chociaż usunięcie wskazanego tekstu, przycięcie wyświetlanego tekstu oraz wyznaczenie podłańcucha znaków są funkcjami, które mogą być użyteczne w operacjach na danych, nie są one związane z funkcjonalnością CONCAT. Usunięcie wskazanego tekstu jest realizowane przez funkcje takie jak REPLACE, które zastępują określone fragmenty tekstu innymi wartościami, a nie przez łączenie ich w jeden ciąg. Przycięcie wyświetlanego tekstu, na przykład przy użyciu funkcji TRIM, dotyczy usuwania białych znaków z początku i końca łańcucha, co również nie ma związku z łączeniem tekstów. Wyznaczenie z wejściowego tekstu podłańcucha znaków można zrealizować przez funkcję SUBSTRING, która pozwala na wydobycie określonego fragmentu z długiego tekstu. Każda z tych operacji ma swoje zastosowanie i jest bardzo przydatna w kontekście przetwarzania danych, jednak nie przynależą do funkcji CONCAT, której głównym celem jest łączenie tekstów, a nie ich modyfikacja w inny sposób.

Pytanie 23

Aby utworzyć styl strony responsywnej dla ekranów o szerokości od 600 px do 800 px należy zastosować regułę CSS

A. @media (min-width: 800px){/*style css*/}
B. @media (max-width: 800px) (min-width: 600px){/*style css*/}
C. @media screen (min-width: 800px) and (max-width: 600px){/*style css*/}
D. @media screen and (max-width: 800px) and (min-width: 600px){/*style css*/}
W tym zadaniu cała trudność kręci się wokół poprawnego zapisania media queries i zrozumienia, jak działają warunki min-width oraz max-width. Wiele osób intuicyjnie czuje, o co chodzi z responsywnością, ale potyka się na szczegółach składni, a przeglądarka niestety jest bardzo „zero-jedynkowa” i najmniejszy błąd powoduje, że reguła po prostu nie zadziała. Jedno z podejść polega na użyciu tylko min-width, np. @media (min-width: 800px){...}. Taki zapis oznacza jednak: stosuj te style dla szerokości 800 px i większych, czyli w górę, bez żadnej górnej granicy. To jest typowy breakpoint dla większych ekranów, np. laptopów, a nie dla przedziału 600–800 px. To nie jest logicznie to, o co chodziło w pytaniu, bo nie ma tu żadnego ograniczenia od góry. Inny typ błędu to próba połączenia max-width i min-width bez słowa and, jak w @media (max-width: 800px) (min-width: 600px){...}. Taka składnia jest po prostu niepoprawna z punktu widzenia specyfikacji CSS – między warunkami musi wystąpić operator logiczny and, not lub only. Bez tego parser traktuje zapis jako błąd, więc reguła zostanie zignorowana. Kolejna pułapka to pomieszanie kolejności i logiki warunków, np. @media screen (min-width: 800px) and (max-width: 600px){...}. Tutaj po pierwsze brakuje and po słowie screen, więc typ medium nie jest poprawnie połączony z warunkami, a po drugie zakres jest nielogiczny: min-width: 800px i max-width: 600px tworzą zestaw warunków, którego żaden ekran nie spełni, bo nie może mieć jednocześnie szerokości co najmniej 800 px i maksymalnie 600 px. W praktyce oznacza to media query, które nigdy się nie aktywuje. To zresztą typowy błąd: ktoś zna pojęcia min i max, ale nie zastanawia się nad realnym przedziałem wartości. Dobra praktyka w responsywnym projektowaniu to zawsze sprawdzić: czy zakres ma sens matematyczny, czy składnia zawiera wszystkie konieczne słowa kluczowe (screen, and), oraz czy zapis jest spójny z resztą kodu. Wtedy media queries stają się przewidywalne i łatwiejsze do debugowania w narzędziach deweloperskich przeglądarki.

Pytanie 24

Jakiego znacznika w języku HTML nie można użyć do wstawienia grafiki dynamicznej na stronę?

A. <strike>
B. <object>
C. style="margin-bottom: 0cm;"><embed>
D. style="margin-bottom: 0cm;"><img>
Wybór odpowiedzi 1, 3 lub 4 może wydawać się zrozumiały, jednak każdy z tych znaczników ma swoje specyficzne zastosowanie i może być użyty do integrowania grafik dynamicznych. Element <img> jest jednym z najbardziej powszechnie używanych znaczników do wyświetlania obrazów, zarówno statycznych, jak i dynamicznych, takich jak animacje w formacie GIF. Odpowiedź 3, <embed>, umożliwia osadzenie multimediów, takich jak wideo czy animacje Flash, a odpowiedź 4, <object>, jest elastycznym elementem, który może wyświetlać różne typy mediów, w tym grafiki i aplikacje interaktywne. Wybierając te odpowiedzi, można dojść do błędnego wniosku, że są one nieodpowiednie, gdyż wszystkie one wspierają umieszczanie mediów na stronie. Typowym błędem myślowym jest mylenie stylizacji tekstu z funkcjonalnością mediów, co prowadzi do niewłaściwego korzystania z semantyki HTML. Zrozumienie różnic między tymi znacznikami i ich zastosowaniem jest kluczowe dla efektywnego tworzenia stron internetowych oraz ich dostępności dla użytkowników.

Pytanie 25

W przedstawionym kodzie JavaScript występuje błąd logiczny. Program, zamiast informować, czy liczby są równe, nie działa prawidłowo. Wskaż, która odpowiedź dotyczy tego błędu.

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. Przed instrukcją else nie powinno być średnika
B. Zmienne zostały błędnie zadeklarowane
C. W instrukcji if znajduje się przypisanie zamiast operacji porównania
D. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
Kod JavaScript z błędem logicznym w pytaniu ma na celu sprawdzenie równoważności dwóch zmiennych, jednak ze względu na użycie niewłaściwego operatora nie działa poprawnie. W przypadku stwierdzenia, że przed klauzulą else nie powinno być średnika, należy zrozumieć, że w JavaScript średnik wskazuje koniec instrukcji i jego obecność lub brak bezpośrednio przed else może zmienić logikę kodu, ale nie w tym kontekście. Jeśli chodzi o błędne przypisanie zamiast porównania w instrukcji if, właściwe używanie operatorów przypisania i porównania jest kluczowe, ponieważ ich zamiana prowadzi do logicznych błędów, które mogą być trudne do zdiagnozowania. Natomiast nieprawidłowa deklaracja zmiennych w JavaScript może wpływać na zakres lub sposób ich użycia, ale tutaj zmienne są poprawnie zadeklarowane za pomocą var, choć nowoczesne standardy promują let lub const dla lepszej kontroli zakresu. Na koniec, zamiana miejsc instrukcji wewnątrz sekcji if oraz else prowadzi jedynie do zmiany logicznej kolejności akcji bez rozwiązywania błędu pierwotnego, jakim jest użycie niewłaściwego operatora porównania. Kluczowym jest tu zrozumienie, że zrozumienie i poprawne stosowanie operatorów logicznych jest fundamentalne w pisaniu poprawnego kodu.

Pytanie 26

W edytorze grafiki wektorowej zbudowano kształt, który składa się z dwóch figur: trójkąta oraz koła. Aby uzyskać ten kształt, po narysowaniu figur i ich odpowiednim ustawieniu, trzeba użyć funkcji

Ilustracja do pytania
A. rozdzielenia
B. sumy
C. różnicy
D. wykluczenia
Różnica, rozdzielenie i wykluczenie to operacje, które manipulują kształtami na różne sposoby, ale nie łączą ich w jeden obiekt. Różnica polega na tym, że usuwa się część jednego kształtu z drugiego, tworząc negatyw. Jest to przydatne, gdy trzeba mieć otwory lub przestrzenie w złożonym projekcie, ale nie działa, gdy chcemy połączyć kształty. Rozdzielenie to odseparowanie elementów ścieżki, co może być przydatne w bardziej zaawansowanej edycji, bo pozwala na manipulowanie każdą częścią niezależnie, ale to nie tworzy nowego, połączonego kształtu. Wykluczenie z kolei odnosi się do działania Boolowskiego, które tworzy kształt jako zewnętrzną obwiednię dwóch przecinających się elementów, bez obszarów wspólnych, co jest totalnym przeciwieństwem sumy. Czasem można się w tym pogubić, myląc podobnie brzmiące komendy lub zakładając, że wszystkie narzędzia do łączenia figur działają tak samo. Zrozumienie tych różnic jest ważne, żeby skutecznie korzystać z narzędzi graficznych i mieć dobrej jakości projekty, szczególnie gdy chodzi o profesjonalny druk czy publikacje, gdzie precyzja i czytelność są kluczowe.

Pytanie 27

W celu uzyskania efektu widocznego na rysunku, w kodzie HTML, należy umieścić znacznik skrótu <abbr> z atrybutem

Ilustracja do pytania
A. name
B. alt
C. dfn
D. title
Wybrałeś niepoprawną odpowiedź. Przeanalizujmy inne opcje. 'alt' to atrybut używany w znacznikach obrazów (&lt;img&gt;) w HTML, służy do dostarczania tekstu alternatywnego, który jest wyświetlany, gdy obraz nie może być załadowany. 'dfn' to znacznik HTML używany do zdefiniowania terminu, ale nie ma on żadnej roli w określaniu skrótów. 'name' to atrybut używany w różnych znacznikach HTML, takich jak &lt;input&gt;, &lt;form&gt;, &lt;map&gt;, &lt;meta&gt;, &lt;param&gt; oraz &lt;button&gt;, ale nie jest związany ze znacznikami skrótów. W HTML, atrybutem używanym wraz ze znacznikiem skrótu &lt;abbr&gt; jest 'title', który dostarcza pełną formę skrótu. Proszę pamiętać o tej informacji na przyszłość.

Pytanie 28

Wartość kolumny w tabeli, która działa jako klucz podstawowy

A. może mieć wartość pustą (NULL)
B. musi być unikalna
C. jest wykorzystywana do szyfrowania treści tabeli
D. jest zawsze w formacie numerycznym
Wartość pola tabeli pełniącego rolę klucza podstawowego musi być unikalna, ponieważ klucz podstawowy identyfikuje jednoznacznie każdy rekord w tabeli bazy danych. To oznacza, że żadna z wartości w tym polu nie może się powtarzać, co zapewnia integralność danych. Przykładem zastosowania klucza podstawowego jest identyfikator użytkownika (UserID) w tabeli z danymi użytkowników; każdy użytkownik ma przypisany unikalny identyfikator, co umożliwia jednoznaczną identyfikację jego danych. Standardy relacyjnych baz danych, takie jak SQL, nakładają te wymagania na klucze podstawowe, co jest kluczowe dla prawidłowego działania relacji między tabelami. Dobre praktyki w projektowaniu baz danych sugerują, aby klucze podstawowe były nie tylko unikalne, ale także stabilne (czyli nie zmieniały się w czasie), co ułatwia zarządzanie danymi i ich integrację w systemie. W przypadku naruszenia zasady unikalności klucza podstawowego mogą wystąpić problemy z integralnością referencyjną, co sprawia, że niemożliwe staje się prawidłowe powiązanie rekordów w różnych tabelach.

Pytanie 29

Instrukcja użytkownika aplikacji nie powinna zawierać

A. wymagań sprzętowych.
B. sposobu działania poszczególnych komponentów.
C. opisu zastosowanych algorytmów.
D. opisu instalacji programu.
Wiele osób intuicyjnie myśli, że dobra instrukcja użytkownika powinna zawierać „wszystko o programie”, łącznie z tym, jak jest on zbudowany od środka. To dość częsty błąd. Instrukcja użytkownika to dokument stricte praktyczny, nastawiony na obsługę, a nie na analizę wewnętrznej logiki systemu. Dlatego wymagania sprzętowe są tam jak najbardziej na miejscu – użytkownik musi wiedzieć, czy aplikacja w ogóle uruchomi się na jego komputerze, jakiego systemu operacyjnego potrzebuje, ile pamięci RAM czy wolnego miejsca na dysku. To podstawowy element każdej sensownej instrukcji, spotykany w oprogramowaniu komercyjnym i open source. Podobnie opis instalacji programu jest absolutnie kluczowy. Bez przejrzystej procedury instalacji, najlepiej krok po kroku, z krótkimi komentarzami, wielu użytkowników po prostu nie poradzi sobie z poprawnym uruchomieniem aplikacji. W dobrych praktykach dokumentacyjnych (np. styl Microsoft, Atlassian, Red Hat) sekcje typu „Instalacja”, „Pierwsze uruchomienie”, „Konfiguracja wstępna” to standard. Trzecia kwestia to sposób działania poszczególnych komponentów, ale z perspektywy użytkownika, nie programisty. Nie chodzi o opisy klas, modułów czy bibliotek, tylko o to, co użytkownik widzi: okna, zakładki, panele, przyciski, formularze. Instrukcja powinna tłumaczyć, do czego służą konkretne elementy interfejsu, jakie mają opcje, co się stanie po wybraniu danej funkcji. Bez takiego opisu użytkownik błądzi po omacku. Problem zaczyna się wtedy, gdy do instrukcji użytkownika próbuje się wcisnąć opis zastosowanych algorytmów. To już jest poziom dokumentacji technicznej, przeznaczony dla deweloperów. Użytkownik końcowy nie potrzebuje wiedzieć, czy dane są sortowane quicksortem, mergesor­tem, jak działa algorytm szyfrowania albo jaka jest złożoność czasowa przetwarzania. Takie informacje nie pomagają mu wykonać zadania w aplikacji, tylko wprowadzają niepotrzebny chaos. Typowy błąd myślowy polega tu na mieszaniu dwóch różnych grup odbiorców: użytkowników i programistów. Dobrą praktyką jest ich rozdzielenie i trzymanie instrukcji użytkownika na poziomie funkcji, kroków i efektów, a nie implementacji.

Pytanie 30

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
Zakładając, że użytkownik wcześniej nie posiadał żadnych uprawnień, to polecenie SQL przyzna użytkownikowi anna prawa jedynie do:
A. wybierania, wstawiania oraz aktualizacji danych wszystkich tabel w bazie o nazwie klienci
B. wybierania, dodawania rekordów oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
C. wybierania, dodawania rekordów oraz modyfikacji struktury tabeli o nazwie klienci
D. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci
Wybrane odpowiedzi mylnie sugerują, że przyznawane uprawnienia obejmują szerszy zakres niż rzeczywiście mają miejsce. Na przykład, odpowiedzi wskazujące na możliwość 'zmiany struktury tabeli' są błędne, ponieważ polecenie GRANT w tym kontekście nie daje takich uprawnień. Zmiana struktury tabeli, jak dodawanie czy usuwanie kolumn, wymagałaby uprawnień DDL (Data Definition Language), takich jak ALTER, które nie zostały przyznane w tym przypadku. Ponadto, odpowiedzi związane z 'wszystkimi tabelami w bazie' są również niepoprawne. Komenda GRANT została zastosowana wyłącznie do konkretnej tabeli 'klienci', co oznacza, że użytkownik 'anna' nie zyskuje uprawnień do innych tabel ani do bazy danych jako całości. To pokazuje istotne znaczenie precyzyjnego zarządzania uprawnieniami w środowisku baz danych, aby uniknąć nieautoryzowanego dostępu i niezamierzonych zmian w danych. Błędne interpretacje mogą wynikać z nieznajomości kontekstu użycia polecenia GRANT oraz jego ograniczeń, co często prowadzi do nadmiernego przyznawania uprawnień lub błędnych założeń dotyczących kontroli dostępu. Dążenie do dokładności w przydzielaniu uprawnień jest fundamentalne dla zapewnienia bezpieczeństwa i wydajności systemów baz danych.

Pytanie 31

Linia kodu przedstawiona w PHP ma na celu

Ilustracja do pytania
A. porównać dwa ciągi znaków
B. zdefiniować stałą o nazwie OSOBA
C. ustalić wartość dla zmiennej $OSOBA
D. przypisać wartości do tablicy
W języku PHP funkcja define() służy do definiowania stałych które są wartościami niezmiennymi po zdefiniowaniu. W przykładzie define(OSOBA Anna Kowalska) definiujemy stałą o nazwie OSOBA z przypisaną wartością Anna Kowalska. Stałe są używane gdy potrzebujemy zagwarantować że dana wartość pozostanie niezmienna przez cały czas działania programu co jest kluczowe w zapewnieniu spójności i integralności danych. PHP odróżnia stałe wielkością liter więc zgodnie z konwencją stałe zapisuje się wielkimi literami dla lepszej czytelności. Funkcja ta jest często używana do definiowania wartości konfiguracyjnych takich jak ścieżki do plików czy dane dostępowe które nie powinny być zmieniane podczas wykonywania skryptu. Dzięki funkcji define() unikamy przypadkowego nadpisania istotnych wartości co jest jedną z dobrych praktyk programistycznych. Warto zaznaczyć że od PHP 7 istnieje możliwość definiowania stałych tablicowych co ułatwia organizację bardziej złożonych danych.

Pytanie 32

DOM oferuje metody oraz właściwości, które w języku JavaScript umożliwiają

A. manipulację łańcuchami zdefiniowanymi w kodzie
B. przeprowadzanie operacji na zmiennych zawierających liczby
C. przesyłanie danych formularzy bezpośrednio do bazy danych
D. pobieranie i zmianę elementów strony, która jest wyświetlana przez przeglądarkę
No cóż, odpowiedzi, które mówisz o manipulacji łańcuchami, wysyłaniu formularzy do baz czy operacjach na liczbach, nie są związane z tym, co oferuje DOM. Manipulacja łańcuchami dotyczy zmiennych w JavaScript, a nie interakcji z elementami na stronie. Wysyłanie formularzy do bazy danych to temat dla innych technologii, jak AJAX, a nie coś, co robi DOM. Operacje na liczbach też są częścią samego JavaScript, ale nie mają nic wspólnego z elementami HTML. Często można usłyszeć, że DOM to wszystko, co związane z JavaScript, ale tak nie jest. DOM to narzędzie do zmiany struktury strony, a nie do obliczeń. Warto to rozróżnić, żeby nie popełniać błędów w projektowaniu aplikacji webowych, bo to może przysporzyć problemów.

Pytanie 33

W HTML 5 atrybut action jest wykorzystywany w znaczniku

A. <head>
B. <code>
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 34

W językach programowania strukturalnego do przechowywania danych o 50 uczniach (ich imionach, nazwiskach, średniej ocen) należy zastosować

A. tablicę 50 elementów o składowych typu łańcuchowego.
B. klasę 50 elementów typu tablicowego.
C. tablicę 50 elementów o składowych strukturalnych.
D. strukturę 50 elementów o składowych tablicowych.
Odpowiedź wskazująca na użycie tablicy 50 elementów o składowych strukturalnych jest poprawna z kilku powodów. Po pierwsze, struktury (lub klasy) są idealnym rozwiązaniem do przechowywania złożonych danych, takich jak imiona, nazwiska i średnie oceny uczniów. Struktura pozwala na grupowanie tych składowych w jedną jednostkę, co zwiększa czytelność i organizację kodu. Na przykład, w języku C można zdefiniować strukturę 'Uczeń' z odpowiednimi polami, a następnie stworzyć tablicę, która pomieści 50 takich obiektów. W praktyce, struktury są szeroko stosowane w programowaniu, gdyż umożliwiają łatwe przekazywanie grup danych jako jednego obiektu, co jest zgodne z zasadami programowania obiektowego. Dodatkowo, korzystanie z tablicy struktur zamiast oddzielnych tablic dla każdego atrybutu ucznia minimalizuje ryzyko błędów związanych z synchronizacją danych i ułatwia manipulację danymi. W standardach programowania, szczególnie w kontekście zarządzania danymi, takie podejście jest uznawane za najlepszą praktykę, gdyż pozwala na spójną reprezentację oraz operowanie na danych.

Pytanie 35

Która właściwość języka CSS może przyjmować wartości: underline, overline, line-through?

A. font-style
B. text-decoration
C. font-weight
D. text-style
Poprawna odpowiedź to właściwość CSS `text-decoration`. To właśnie ona odpowiada za dodawanie różnych „linii” do tekstu: podkreślenia (`underline`), nadkreślenia (`overline`) oraz przekreślenia (`line-through`). W praktyce zapis wygląda np. tak: `a { text-decoration: underline; }` – klasyczny przykład dla linków, albo `del { text-decoration: line-through; }` dla tekstu usuniętego. W nowszych specyfikacjach CSS (CSS Text Decoration Module Level 3) ta właściwość została trochę rozbita na bardziej szczegółowe, jak `text-decoration-line`, `text-decoration-style`, `text-decoration-color`, ale w codziennym kodowaniu dalej bardzo często używa się skrótu `text-decoration`. Moim zdaniem warto od razu kojarzyć, że `text-decoration` nie służy do zmiany kroju pisma, pogrubienia czy kursywy, tylko właśnie do „ozdabiania” tekstu dodatkowymi liniami. Dobra praktyka jest taka, żeby świadomie używać tej właściwości przy stylowaniu linków: np. usuwamy podkreślenie `a { text-decoration: none; }`, a potem przy najechaniu myszką dajemy `a:hover { text-decoration: underline; }`. Dzięki temu interfejs jest czytelniejszy, a użytkownik widzi, że element jest klikalny. Warto też wiedzieć, że `text-decoration` może przyjmować kilka wartości naraz, np. `text-decoration: underline overline;`, co rzadko się używa, ale czasem w jakichś specyficznych projektach UI może się przydać. Z mojego doświadczenia w projektach komercyjnych najczęściej korzysta się z `underline`, `none` i czasem `line-through` np. przy cenach promocyjnych: stara cena przekreślona, nowa obok. To jest taki mały szczegół CSS, ale bardzo często używany w praktyce.

Pytanie 36

Który z czynników ma negatywny wpływ na efektywną współpracę w zespole?

A. rywalizacja między członkami zespołu
B. podział ról i obowiązków
C. wzajemny szacunek
D. efektywna komunikacja
Wzajemny szacunek, skuteczna komunikacja oraz przydzielenie ról i odpowiedzialności to kluczowe elementy, które wspierają dobrą współpracę w zespole. Wzajemny szacunek zapewnia, że członkowie zespołu czują się doceniani, co zwiększa ich motywację do pracy i otwartość na pomysły innych. Skuteczna komunikacja to fundament, na którym opiera się każdy projekt; możliwość wymiany informacji, konstruktywnej krytyki oraz współpracy w podejmowaniu decyzji to elementy, które podnoszą jakość pracy zespołu. Przydzielenie ról i odpowiedzialności pozwala na klarowne określenie oczekiwań i zadań, co minimalizuje chaos i sprzyja efektywności. Zrozumienie, że współpraca opiera się na zaufaniu oraz otwartości, jest kluczowe dla sukcesu. Często zespoły, które nie wdrażają tych zasad, doświadczają nieporozumień, co prowadzi do konfliktów oraz frustracji. Przykładem może być sytuacja, w której członkowie zespołu nie znają jasno swoich ról, co prowadzi do powielania działań lub pomijania ważnych zadań, marnując czas i zasoby. Aby zapobiec takim problemom, zespoły powinny regularnie spotykać się w celu omówienia postępów, oczekiwań oraz wszelkich trudności, które mogą się pojawić, co pomaga w budowaniu pozytywnej atmosfery i wspólnej odpowiedzialności za projekt.

Pytanie 37

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 38

Na ilustracji pokazano tabelę z połączonymi komórkami. Jakie atrybuty scalania zastosowano, aby uzyskać ten efekt?

Ilustracja do pytania
A. colspan w drugim wierszu we wszystkich trzech komórkach oraz rowspan w trzecim wierszu ostatniej komórce
B. colspan w drugim wierszu i pierwszej komórce oraz rowspan w trzecim wierszu, trzeciej komórce
C. rowspan w drugim wierszu i pierwszej komórce oraz colspan w trzecim wierszu, trzeciej komórce
D. colspan w drugim wierszu i pierwszej komórce oraz rowspan w trzecim wierszu i czwartym wierszu
Odpowiedź jest prawidłowa, ponieważ zastosowanie atrybutów colspan i rowspan w tabeli HTML pozwala na efektywne zarządzanie układem danych. Atrybut colspan w drugiej komórce pierwszego wiersza łączy dwie komórki poziomo, co jest użyteczne, gdy chcemy, aby nagłówki lub dane rozciągały się na kilka kolumn. W trzecim wierszu, atrybut rowspan w trzeciej komórce łączy trzy komórki pionowo, co może być przydatne, gdy mamy dane, które powinny być przedstawione obok siebie w kilku rzędach. Tego typu operacje scalania są powszechnie stosowane w projektowaniu stron internetowych, szczególnie w przypadku układów, które wymagają elastyczności i skalowalności. W praktyce, takie podejście pozwala na lepsze wykorzystanie przestrzeni ekranowej i ułatwia czytelność danych. Dobrą praktyką jest również stosowanie CSS do dodatkowego stylizowania takich tabel, co zwiększa ich atrakcyjność wizualną. Ważne jest, aby zrozumieć, że używanie colspan i rowspan wpływa na dostępność danych, dlatego należy je stosować świadomie i z uwzględnieniem użytkowników korzystających z technologii wspomagających.

Pytanie 39

Zawarty w ramce fragment kodu w języku JavaScript

Ilustracja do pytania
A. przypisze do zmiennej s fragment tekstu ze zmiennej t o długości określonej przez zmienną length
B. przypisze zmiennej s długość tekstu ze zmiennej t
C. wyświetli długość tekstu ze zmiennej t
D. przypisze do zmiennej s zmienną t
Zrozumienie funkcji length w kontekście JavaScript jest kluczowe dla rozróżnienia poprawnych i błędnych interpretacji kodu. W przypadku zadania, omówienie różnych interpretacji kodu wskazuje na kilka typowych nieporozumień. Jednym z nich jest przypisanie zmiennej s zmiennej t. Takie działanie wymagałoby użycia operatora przypisania bezpośrednio z jedną zmienną, a nie wywołania metody na niej. Kolejnym nieporozumieniem jest wyświetlenie długości napisu ze zmiennej t. Wyświetlanie wartości w JavaScript wymaga zastosowania np. console.log(), a sam zapis t.length jedynie odczytuje długość łańcucha. Innym błędnym podejściem jest przypisanie fragmentu napisu ze zmiennej t, o określonej przez zmienną length długości. Operator length w kontekście łańcucha znaków zwraca jego całkowitą długość, a nie jego fragment. Aby wyodrębnić część tekstu, należałoby użyć metod takich jak slice() czy substring(). Typowym błędem jest również założenie, że length działa jak funkcja przycinająca tekst, co może wynikać z niewłaściwego zrozumienia dokumentacji lub braku praktyki. Każda z tych błędnych odpowiedzi wskazuje na potrzebę głębszego zapoznania się z podstawowymi metodami manipulacji tekstem w JavaScript i ich praktycznym zastosowaniem w różnych kontekstach programistycznych, co jest istotnym krokiem w kierunku profesjonalnego programowania.

Pytanie 40

Instrukcja przypisania elementu do tablicy w języku JavaScript dotyczy tablicy:

Tablica['technik'] = 'informatyk';
A. asocjacyjnej.
B. numerycznej.
C. wielowymiarowej.
D. statycznej.
Poprawna odpowiedź to 'asocjacyjna'. W języku JavaScript, tablice asocjacyjne są strukturami danych, które używają kluczy zamiast indeksów numerycznych. Kluczem może być dowolny ciąg znaków, co oznacza, że elementy tablicy są identyfikowane za pomocą unikalnych kluczy. W praktyce, gdy używamy tablicy asocjacyjnej, przypisujemy wartość do określonego klucza, jak w przedstawionym przykładzie, gdzie wartość 'informatyk' przypisana jest do klucza 'technik'. Jest to często stosowane w praktyce, ponieważ pozwala na bardziej intuicyjne i zrozumiałe indeksowanie danych. Ważne jest jednak, aby pamiętać, że mimo iż tablice asocjacyjne są bardzo użyteczne, nie są one oficjalnie uznawane przez specyfikację języka JavaScript, co oznacza, że różne środowiska mogą je obsługiwać w różny sposób.