Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 16 kwietnia 2026 08:09
  • Data zakończenia: 16 kwietnia 2026 08:20

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

W języku C++ funkcja, która zwraca rezultat potęgowania i operuje na dwóch argumentach: liczbie x oraz wykładniku w, powinna mieć taką deklarację

A. void potega(int x, int w);
B. void potega(int x, int w, int wynik);
C. int potega(int x, int w);
D. int potega(int x);
Przyjrzyjmy się tym nieprawidłowym odpowiedziom. 'int potega(int x);' to trochę za mało, bo brakuje drugiego argumentu, czyli wykładnika, który jest niezbędny do potęgowania. Potęgowanie potrzebuje obu elementów: podstawy i wykładnika, więc jeżeli jeden z nich wypadnie, to funkcja będzie niekompletna. Odpowiedź 'void potega(int x, int w);' również jest błędna, bo mówi, że funkcja nie zwraca żadnej wartości. W kontekście potęgowania, każdy by oczekiwał uzyskać konkretny wynik. Jak funkcja nic nie zwraca, to można mieć spore problemy z dalszym przetwarzaniem. Co do 'void potega(int x, int w, int wynik);' - dodawanie dodatkowego argumentu niepotrzebnie komplikuje sprawę. Bywa, że można przekazywać argumenty przez referencję, ale w prostym potęgowaniu to po prostu zbędne. Dużo osób nie zdaje sobie sprawy, jak ważne jest, żeby funkcje miały jasno określony interfejs. Dobre funkcje powinny dokładnie określać, co biorą i co zwracają, wtedy łatwiej je używać i integrować w innych częściach programów.

Pytanie 2

Jaką konstrukcją w języku C++ jest double *x;?

A. Formalny argument typu rzeczywistego
B. Wskaźnik
C. Zmienna całkowita
D. Zmienna rzeczywista
Wybór odpowiedzi, która sugeruje, że 'double *x;' jest parametrem formalnym typu rzeczywistego, jest nieprawidłowy, ponieważ wskaźnik nie jest sam w sobie parametrem formalnym. Parametry formalne w C++ są definiowane w nagłówkach funkcji i odnoszą się do zmiennych przekazywanych do funkcji. Wskaźnik, jak 'double *x;', jest po prostu zmienną, która przechowuje adres innej zmiennej, co jest zupełnie inną koncepcją. Z kolei określenie zmiennej całkowitej jest również błędne, ponieważ 'double' wskazuje na typ zmiennoprzecinkowy, a nie całkowity. Zrozumienie różnicy między typami danych jest kluczowe w C++. Ostatnia niepoprawna opcja, mówiąca o zmiennej rzeczywistej, nie odnosi się do wskaźnika, ponieważ wskaźnik nie jest zmienną przechowującą wartość typu 'double', ale adresem, pod którym taka wartość może być przechowywana. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych odpowiedzi, obejmują mylenie pojęcia wskaźnika z typem zmiennej, a także brak zrozumienia roli wskaźników w kontekście zarządzania pamięcią i przekazywania danych do funkcji. Właściwe zrozumienie tych podstawowych koncepcji jest niezbędne do skutecznego programowania w C++.

Pytanie 3

Który format graficzny najlepiej nadaje się do zapisu obrazu z przezroczystością do zastosowania w serwisie internetowym?

A. BMP
B. JPG
C. SVG
D. PNG
Format PNG (Portable Network Graphics) jest najlepszym wyborem do zapisu obrazów z przezroczystością przeznaczonych na strony internetowe. PNG obsługuje przezroczystość alpha, co oznacza, że można uzyskać dowolny stopień przezroczystości na pikselach, co jest szczególnie przydatne w przypadku grafik wymagających gładkich przejść lub cieni. Dzięki temu grafiki mogą być umieszczane na różnych tłach bez widocznych krawędzi, co jest kluczowe w designie stron internetowych. Warto również zauważyć, że PNG wykorzystuje kompresję bezstratną, co oznacza, że jakość obrazu nie ulega pogorszeniu podczas zapisu. W praktyce, format PNG jest idealny do logo, ikon, obrazów z tekstem oraz ilustracji, gdzie ważna jest jakość i przezroczystość. Standardy webowe, takie jak WCAG, również zalecają używanie formatów, które zapewniają dostępność, a PNG doskonale wpisuje się w te wymagania, umożliwiając tworzenie estetycznych i funkcjonalnych stron. Ponadto, wsparcie dla formatu PNG jest szerokie, co zapewnia jego uniwersalność w różnych przeglądarkach i na różnych urządzeniach.

Pytanie 4

Podczas definiowania pola id w tabeli MySQL użyto AUTO_INCREMENT. Co to oznacza?

id int NOT NULL AUTO_INCREMENT
A. wartość pola id zostanie nadana automatycznie przez bazę i będzie to losowo wygenerowana liczba całkowita
B. możliwe jest dodanie rekordu z dowolną wartością pola id
C. wartości dla tego pola będą generowane automatycznie przy dodawaniu nowego rekordu do bazy
D. pole id może przyjmować takie wartości jak: NULL, 1, 2, 3, 4 i tak dalej
Wartości pola AUTO_INCREMENT nie są generowane losowo lecz według określonego schematu liczbowego zaczynającego się zwykle od jedynki i rosnącego z każdym nowym rekordem. Koncepcja losowego nadawania wartości jest błędna ponieważ główna cecha AUTO_INCREMENT polega na przewidywalnym wzroście wartości co jest kluczowe dla zachowania integralności danych przy użyciu kluczy głównych. Z kolei możliwość dodawania rekordu z dowolną wartością id jest ograniczona gdyż w przypadku AUTO_INCREMENT to baza narzuca wartość tego pola co zabezpiecza przed duplikacją i kolizjami identyfikatorów. Pole id w kontekście AUTO_INCREMENT nie może przyjmować wartości NULL a jedynie wartości liczbowych zaczynających się od jedynki lub innej wartości początkowej jeśli zostanie zdefiniowana na etapie tworzenia tabeli. Mylenie tych koncepcji wynika często z niezrozumienia mechanizmów generowania kluczy w bazach danych gdzie klucz główny musi być unikalny a AUTO_INCREMENT to jeden z najczęściej stosowanych sposobów osiągania tego celu zgodnie z dobrymi praktykami projektowania baz danych. Zrozumienie funkcji AUTO_INCREMENT pozwala na efektywne zarządzanie rekordami i utrzymanie spójności danych w aplikacjach wykorzystujących bazy danych.

Pytanie 5

Jak nazywa się komponent oznaczony znakiem zapytania w architekturze platformy .NET, który pozwala na tworzenie własnych aplikacji za pomocą frameworków oraz przekształcanie skompilowanego kodu pośredniego na kod maszynowy procesora zainstalowanego w systemie?

Ilustracja do pytania
A. Wspólne środowisko uruchomieniowe (CLR)
B. Biblioteka klas bazowych (BCL)
C. Wspólne środowisko programistyczne (CLP)
D. Infrastruktura językowa (CLI)
Często ludzie mylą CLI, czyli infrastrukturę językową, z CLR, ale to jednak różne rzeczy. CLI to specyfikacja, która mówi, jak języki mają współpracować w ramach .NET, a nie zajmuje się wykonywaniem kodu, co jest robotą CLR. A CLP, czyli wspólne środowisko programistyczne, w ogóle nie jest częścią oficjalnych terminów .NET, więc można się w tym pogubić. Jeśli chodzi o bibliotekę klas bazowych BCL, to jest to zestaw klas i interfejsów, które programiści wykorzystują, ale to też nie ma nic wspólnego z wykonywaniem kodu, to rolę CLR. BCL dostarcza różne przydatne narzędzia, na przykład do obsługi plików czy pracy z danymi. Błąd, który wiele osób popełnia, to mylenie BCL z CLR, mimo że mają różne funkcje i cele. Zrozumienie tych różnic jest naprawdę ważne, żeby dobrze korzystać z platformy .NET i uniknąć typowych nieporozumień dotyczących jej struktury.

Pytanie 6

W podanym kodzie PHP, w miejscu kropek należy umieścić odpowiednią instrukcję

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
while ($wiersz = ...................)
    echo "$wiersz[0] $wiersz[1]";
A. mysqli_free_result($zapytanie)
B. mysqli_query($zapytanie)
C. mysqli_fetch_array($zapytanie)
D. mysqli_num_fields($zapytanie)
Mysqli_query($zapytanie) to funkcja, która wykonuje zapytanie SQL, ale nie przetwarza wyników. Jest to kluczowy etap interakcji z bazą danych, ponieważ bez wykonania zapytania nie można uzyskać żadnych danych. Jednak w podanym kodzie funkcja ta już została użyta do utworzenia zasobu $zapytanie, więc jej ponowne użycie w pętli nie miałoby sensu. Z kolei mysqli_free_result($zapytanie) służy do zwolnienia zasobów związanych z wynikiem zapytania, co jest potrzebne po zakończeniu przetwarzania danych, aby unikać wycieków pamięci. W miejscu kropek nie jest jednak potrzebne, ponieważ nadal przetwarzamy dane. Mysqli_num_fields($zapytanie) zwraca liczbę pól w wyniku zapytania, co może być przydatne podczas analizy struktury danych, ale nie jest właściwe do pobierania danych z zapytania. Typowe błędy myślowe wynikają z niezrozumienia procesu przetwarzania wyników zapytania i różnicy między wykonaniem zapytania a przetwarzaniem jego wyników. Ważne jest, aby rozróżniać role poszczególnych funkcji i stosować je zgodnie z ich przeznaczeniem, co jest fundamentem efektywnej pracy z bazami danych.

Pytanie 7

Który z linków ma poprawną formę?

A. <a href='mailto:adres'>tekst</a>
B. <a href='http://:adres'>tekst</a>
C. <a href="mailto:adres">tekst</a>
D. <a href="http://adres">tekst</a>
Pierwsza z niepoprawnych odpowiedzi wykorzystuje pojedyncze cudzysłowy w atrybucie 'href' oraz niepoprawny format adresu e-mail. Chociaż pojedyncze cudzysłowy są dozwolone, w kontekście standardów HTML zaleca się stosowanie podwójnych cudzysłowów. Druga odpowiedź przedstawia nieprawidłowy format adresu URL z dodatkowym dwukropkiem po 'http://', co czyni go niekompletnym i niezgodnym z zasadami tworzenia linków w HTML. Taki błąd uniemożliwia prawidłowe załadowanie strony internetowej oraz może prowadzić do niepoprawnego działania linków. Trzecia odpowiedź używa nietypowych cudzysłowów (\"\" zamiast standardowych podwójnych cudzysłowów), co nie jest zgodne z konwencjami kodowania w HTML i może prowadzić do problemów z interpretacją przez przeglądarki. Użycie odpowiednich cudzysłowów jest kluczowe dla prawidłowego działania kodu HTML i zapobiega potencjalnym błędom w renderowaniu strony. Wszelkie niezgodności z przyjętymi standardami mogą negatywnie wpłynąć na jakość i funkcjonalność strony internetowej, co ma znaczenie również z perspektywy SEO.

Pytanie 8

W języku HTML, aby ustawić tytuł dokumentu na "Moja strona", który będzie widoczny na karcie przeglądarki internetowej, należy użyć zapisu

A. <meta title="Moja strona">
B. <head>Moja strona</head>
C. <title>Moja strona</title>
D. <meta name="title" content="Moja strona">
Odpowiedź <title>Moja strona</title> jest poprawna, ponieważ element <title> jest standardowym sposobem definiowania tytułu dokumentu HTML, który jest wyświetlany na pasku tytułowym przeglądarki. Zgodnie z normą HTML, element ten powinien być umieszczony wewnątrz sekcji <head> dokumentu. Przykładowa struktura dokumentu HTML z tytułem wygląda następująco: <html><head><title>Moja strona</title></head><body></body></html>. Tytuł jest istotny nie tylko dla użytkowników, ale również dla wyszukiwarek internetowych, ponieważ wpływa na SEO (Search Engine Optimization). Dobrze dobrany tytuł może zwiększyć klikalność linków w wynikach wyszukiwania. Dodatkowo, element <title> jest ważnym aspektem dostępności, ponieważ osoby korzystające z technologii asystujących polegają na nim, aby zrozumieć zawartość strony. W kontekście dobrych praktyk warto pamiętać, że tytuł powinien być krótki, zwięzły i adekwatny do treści strony. Warto również unikać duplikatów tytułów na różnych stronach tej samej witryny, co może prowadzić do chaosu w nawigacji i negatywnie wpływać na doświadczenia użytkowników oraz SEO.

Pytanie 9

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. elementy, które przewyższają zmienną $liczba
B. element tablicy o wartości $tab[0]
C. największy element tablicy
D. najmniejszy 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 10

Deklaracja z właściwością background-attachment: scroll sprawia, że

A. tło strony będzie przesuwane razem z zawartością tekstową
B. grafika tła będzie widoczna w prawym górnym rogu strony
C. tło strony zostanie zamocowane, a tekst będzie się poruszał
D. grafika tła będzie się powtarzać (kafelki)
Właściwość CSS 'background-attachment: scroll' oznacza, że tło elementu będzie przewijane w równym tempie z treścią na stronie. Kiedy użytkownik przegląda stronę i przewija ją w dół lub w górę, tło przesuwa się razem z zawartością, co tworzy wrażenie głębokości i dynamiki. Przykładem zastosowania tej właściwości może być strona internetowa z długim tekstem, gdzie tło, takie jak kolor lub obraz, jest częścią estetyki projektu, ale nie powinno być statyczne. Warto zauważyć, że można to osiągnąć, ustawiając 'background-attachment' na 'scroll', co jest najczęściej stosowanym ustawieniem. W standardach CSS3 'background-attachment' ma cztery możliwe wartości: 'scroll', 'fixed', 'local', oraz 'inherit'. Stosowanie 'scroll' jest najbardziej intuicyjne i wspiera responsywność, ponieważ zmienia się w zależności od interakcji użytkownika z zawartością. To podejście jest zgodne z praktykami projektowania stron internetowych, które kładą nacisk na użytkownika i interaktywność.

Pytanie 11

Jakim słowem kluczowym w języku z rodziny C można przypisać alternatywną nazwę dla już istniejącego typu danych?

A. enum
B. union
C. switch
D. typedef
Wybór błędnych słów kluczowych wskazuje na nieporozumienie dotyczące podstawowych koncepcji typów danych w języku C. 'enum' jest używane do definiowania enumeracji, które pozwalają na tworzenie zbioru nazwanych stałych, co jest użyteczne w kontekście ograniczonego zestawu wartości, ale nie ma zastosowania w nadawaniu alternatywnych nazw dla istniejących typów. 'union' natomiast definiuje typ, który może przechowywać różne typy danych w tym samym miejscu pamięci, lecz również nie ma na celu zmiany nazwy typu. 'switch' to konstrukcja sterująca, która nie ma nic wspólnego z definiowaniem typów danych, a służy do wyboru i wykonania jednego z wielu bloków kodu na podstawie wartości wyrażenia. Te błędne odpowiedzi mogą sugerować, że użytkownik nie zrozumiał roli, jaką pełnią różne słowa kluczowe w języku C. Często mylnie zakłada się, że 'enum' czy 'union' mogą pełnić funkcję, która w rzeczywistości przypisana jest do 'typedef', co prowadzi do nieścisłości w kodzie i utrudnień w jego interpretacji. Kluczowe jest zrozumienie, że 'typedef' nie tworzy nowego typu, ale jedynie nową nazwę dla już istniejącego, co jest fundamentalne w celu utrzymania przejrzystości oraz spójności w projekcie. Niezrozumienie tej zasady może prowadzić do nieefektywnego zarządzania kodem oraz błędów przy jego rozwoju.

Pytanie 12

Aby zbudować tabelę, należy wykorzystać polecenie

A. CREATE DATABASE
B. INSERT INTO
C. CREATE TABLE
D. ALTER TABLE
Odpowiedź 'CREATE TABLE' jest poprawna, ponieważ to polecenie jest używane w SQL do tworzenia nowych tabel w bazie danych. Tabela to podstawowa jednostka organizacyjna danych, która składa się z wierszy i kolumn, gdzie każda kolumna ma przypisaną określoną datę typu, taką jak integer, varchar, date itd. Przykład użycia tego polecenia to: 'CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50));'. W tym przypadku tworzymy tabelę 'pracownicy', w której znajdują się trzy kolumny: 'id', 'imie' i 'nazwisko'. Ważnym aspektem jest, że przy definiowaniu tabeli należy również określić klucze główne oraz inne ograniczenia, takie jak unikalność czy relacje między tabelami, co jest zgodne z najlepszymi praktykami projektowania baz danych. Użycie 'CREATE TABLE' pozwala na skuteczne zarządzanie strukturą bazy danych, co jest kluczowe dla jej późniejszej integralności i wydajności.

Pytanie 13

Model barw o parametrach: odcień, nasycenie, jasność i przezroczystość, to

A. RGBA
B. HSLA
C. SRGB
D. CMYK
W tym pytaniu chodzi o model barw, w którym występują dokładnie cztery parametry: odcień, nasycenie, jasność i przezroczystość. Kluczowe są tu trzy pierwsze słowa: odcień, nasycenie, jasność. To już samo w sobie powinno kierować myślenie w stronę rodziny HSL/HSV, a nie klasycznego RGB czy modeli drukarskich takich jak CMYK. Typowym błędem jest patrzenie tylko na obecność kanału przezroczystości i automatyczne kojarzenie go z RGBA, bo wiele osób zapamiętuje po prostu „A = alpha, czyli przeźroczystość”, bez zwracania uwagi na to, jakie są pozostałe składowe. W modelu RGBA mamy składniki Red, Green, Blue plus Alpha. Nie ma tam odcienia, nasycenia i jasności jako osobnych parametrów, tylko trzy liczby opisujące natężenie podstawowych składowych RGB. To oczywiście też może zawierać informację o kolorze, ale w zupełnie inny sposób. Jeżeli w pytaniu pojawia się słowo „odcień”, to z mojego doświadczenia w zadaniach testowych prawie zawsze chodzi o HSL/HSLA albo HSV/HSVA, bo tam kolor opisuje się kołem barw i procentami. Samo SRGB to nie jest model z parametrami odcień–nasycenie–jasność–przezroczystość, tylko standardowa przestrzeń barw RGB dla monitorów, zdefiniowana m.in. przez konsorcjum W3C i Microsoft. W CSS co prawda używamy funkcji `rgb()` czy `rgba()`, ale to tylko zapisy w przestrzeni sRGB, a nie osobny czteroparametrowy model jak w treści pytania. Wybranie SRGB często wynika z tego, że ktoś kojarzy skrót z „kolorami w przeglądarce”, ale to za mało, bo pytanie precyzyjnie opisuje właściwości. Z kolei CMYK jest modelem typowo poligraficznym: Cyan, Magenta, Yellow, Key (Black). Stosuje się go w druku, a nie w definicjach kolorów w CSS i nie ma tam żadnego kanału alpha ani parametrów odcień/nasycenie/jasność. Mylenie CMYK z HSL/HSLA to zwykle wynik tego, że ktoś kojarzy „inny niż RGB, więc może ten”. W projektowaniu stron WWW i interfejsów użytkownika, zgodnie z dobrymi praktykami front-end, warto rozróżniać: RGB/RGBA – składowe podstawowych barw światła, HSLA – odcień, nasycenie, jasność plus alpha, CMYK – druk, a sRGB – nazwa przestrzeni, nie czteroelementowego modelu H+S+L+A.

Pytanie 14

Kod w języku PHP przedstawia się następująco (patrz ramka): Zakładając, że zmienne a, b, c mają wartości numeryczne, wynik warunku będzie skutkował wypisaniem liczby:

if ($a > $b && $a > $c)
    echo $a;
else if ($b > $c)
    echo $b;
else
    echo $c;
A. parzystej.
B. nieparzystej.
C. najmniejszej.
D. największej.
Analizując niepoprawne odpowiedzi należy zwrócić uwagę na istotę działania warunków w kodzie PHP. Odpowiedź że wynik to najmniejsza liczba wynika z nieprawidłowego zrozumienia logiki porównań. Kod przede wszystkim analizuje która z trzech zmiennych jest największa poprzez sekwencyjne porównania. Wybór najmniejszej liczby wymagałby zupełnie innej konstrukcji polegającej na odwrotnym rozumowaniu co jest istotne w praktyce programowania przy rozwiązywaniu innych problemów algorytmicznych. Odpowiedzi dotyczące liczb parzystych i nieparzystych są błędne ponieważ nie istnieje w kodzie żadna logika sprawdzająca parzystość wartości. Aby sprawdzić parzystość zastosowalibyśmy operator modulo który umożliwia określenie reszty z dzielenia przez dwa. Typowy błąd myślowy to zakładanie że porównania liczb automatycznie uwzględniają ich właściwości arytmetyczne co jest nieprawdą. Warto zauważyć że dobra praktyka programistyczna wymaga precyzyjnego określenia co dokładnie ma być osiągnięte przez warunki w kodzie co podkreśla znaczenie zarówno analizy wymagań jak i implementacji rozwiązań.

Pytanie 15

Zachowanie integralności encji w bazie danych będzie miało miejsce, jeżeli między innymi

A. dla każdej tabeli zostanie ustanowiony klucz główny
B. każdy klucz główny będzie miał odpowiadający mu klucz obcy w innej tabeli
C. każdej kolumnie przypisany zostanie typ danych
D. klucz główny zawsze będzie liczbą całkowitą
Wszystkie zaproponowane odpowiedzi mogą wydawać się związane z tematyką integralności encji, jednak nie każda z nich rzeczywiście przyczynia się do jej zachowania w kontekście baz danych. Użycie klucza głównego jako liczby całkowitej nie jest kryterium zapewniającym integralność; klucz główny może być również tekstowy lub złożony, o ile spełnia warunki unikalności i braku wartości NULL. Przypisanie typu danych dla każdej kolumny jest ważne dla sprawności operacji na danych, ale samo w sobie nie zapewnia integralności encji, ponieważ nie kontroluje unikalności rekordów. Kolejnym błędnym podejściem jest twierdzenie, że każdy klucz główny musi mieć odpowiadający klucz obcy w innej tabeli. Klucz obcy jest używany do ustanowienia relacji między tabelami, ale nie jest wymagany do zapewnienia integralności encji w pojedynczej tabeli. Klucz główny w jednej tabeli działa niezależnie od kluczy obcych w innych tabelach; jego główną rolą jest zapewnienie, że każdy rekord w tabeli jest unikalny. W praktyce, brak zrozumienia tych koncepcji może prowadzić do projektowania baz danych, które są nieefektywne i trudne do zarządzania, co w dłuższej perspektywie wpływa na jakość danych i ich dostępność.

Pytanie 16

W języku HTML, aby stworzyć pole do wprowadzania hasła, w którym tekst jest maskowany (zastąpiony kropeczkami), należy zastosować znacznik

A. <input type="password" />
B. <form input type="password" />
C. <input name="password" />
D. <form="password" type="password" />
Pierwsza z niepoprawnych odpowiedzi wskazuje na <input name='password' />. Choć znaczniki <input> mogą zawierać atrybut name, to brak ustawienia type na 'password' sprawia, że wprowadzone hasło będzie widoczne w formie tekstu jawnego, co stwarza poważne ryzyko bezpieczeństwa. Użytkownik nie będzie miał możliwości ochrony swojego hasła przed wzrokiem osób postronnych. Kolejna propozycja, <form input type='password' />, jest również błędna. Znacznik <form> jest używany do grupowania kontrolków formularzy, ale nie może zawierać atrybutu input w ten sposób. Odpowiednia składnia wymaga, aby znacznik <input> był zagnieżdżony wewnątrz znacznika <form>, co czyni tę odpowiedź niepoprawną w kontekście składni HTML. Ostatnia odpowiedź <form='password' type='password' /> narusza zasady poprawnego stosowania znaczników form oraz input. <form> nie może mieć atrybutu 'input'; zamiast tego powinien zawierać kontrolki formularza, takie jak <input>, wewnątrz swojego otwarcia. Użycie atrybutu 'type' w tej notacji jest także niewłaściwe, ponieważ powinno być stosowane wyłącznie w kontekście elementu <input>. Wszystkie te przykłady ukazują istotność poprawnej struktury kodu HTML oraz znaczenia bezpieczeństwa danych użytkowników.

Pytanie 17

Jakie polecenie HTML poprawnie odwzorowuje przedstawioną hierarchiczną strukturę tekstu, która została wyświetlona przez przeglądarkę w następujący sposób: Rozdział 1 tekst Podrozdział 1.1 tekst Podrozdział 1.2?

A. <h1>Rozdział 1</h1><p>tekst</p><h2>Podrozdział 1.1</h2><p>tekst</p><h2>Podrozdział 1.2</h2>
B. <h1>Rozdział 1<p>tekst<h2>Podrozdział 1.1<p>tekst<h2>Podrozdział 1.2
C. <ul><li>Rozdział 1<li>tekst<li>Podrozdział 1.1<li>tekst<li>Podrozdział 1.2</ul>
D. <big>Rozdział 1</big>tekst<big>Podrozdział 1.1</big>tekst<big>Podrozdział 1.2</big>
Poprawny kod HTML do definiowania hierarchicznej struktury tekstu oparty jest na semantycznym znaczeniu tagów. W tym przypadku, użycie <h1> dla 'Rozdział 1' jako głównego nagłówka jest zgodne z zasadami projektowania stron internetowych, gdyż <h1> powinien być używany dla najważniejszego nagłówka na stronie. Następnie zastosowanie <h2> dla 'Podrozdział 1.1' i 'Podrozdział 1.2' wskazuje na hierarchię, gdzie te podrozdziały są podkategoriami głównego rozdziału. Tag <p> jest użyty do definiowania paragrafów tekstowych, co zapewnia odpowiednie formatowanie i czytelność. Taki układ jest zgodny z wytycznymi W3C, które rekomendują używanie nagłówków w strukturze dokumentu HTML, co ułatwia zarówno przeglądarkom, jak i użytkownikom zrozumienie hierarchii treści. Przykładowo, strona internetowa z taką strukturą będzie lepiej indeksowana przez wyszukiwarki, co przyczyni się do poprawy SEO.

Pytanie 18

Poniżej przedstawiono fragment kodu języka HTML. Jest on definicją listy:

<ol>
  <li>punkt 1</li>    <li>punkt 2</li>
  <ul>
    <li>podpunkt1</li>
    <ul>    <li>podpunkt2</li>  <li>podpunkt3</li>  </ul>
  </ul>
  <li>punkt3</li>
</ol>

A.

  1. punkt 1
  2. punkt 2
    • podpunkt1
    • podpunkt2
    • podpunkt3
  3. punkt3

B.

  1. punkt 1
  2. punkt 2
  3. punkt3
    • podpunkt1
    • podpunkt2
    • podpunkt3

C.

  1. punkt 1
  2. punkt 2
    • podpunkt1
      • podpunkt2
      • podpunkt3
  3. punkt3

D.

  • punkt 1
  • punkt 2
    1. podpunkt1
      • podpunkt2
      • podpunkt3
  • punkt3
A. D.
B. A.
C. C.
D. B.
Gratulacje, poprawnie zinterpretowałeś fragment kodu HTML przedstawiający definicję listy. W tym kodzie widzimy listę numerowaną (<ol>), która zawiera trzy elementy listy (<li>). Szczególnością prezentowanej struktury jest fakt, że drugi element listy zawiera zagnieżdżoną listę nieuporządkowaną (<ul>) z trzema podpunktami. Zgodność odpowiedzi C z przedstawionym kodem wynika z faktu, że punkt 2 prezentuje podpunkty oznaczone kropkami, co jest charakterystyczne dla listy nieuporządkowanej. Tego typu struktura jest często stosowana na stronach internetowych do prezentacji hierarchii informacji, na przykład menu nawigacyjnego czy spisu treści. Pamiętaj, że umiejętność czytania i zrozumienia kodu HTML jest kluczowa dla każdego, kto planuje pracować z technologiami webowymi i to pytanie to doskonały przykład na to, jak te umiejętności mogą być sprawdzane.

Pytanie 19

Które z tabel będą poddane weryfikacji zgodnie z przedstawionym poleceniem? ```CHECK TABLE pracownicy CHANGED;```

A. Tabele, które uległy zmianie od ostatniej kontroli lub nie zostały poprawnie zamknięte
B. Tylko te tabele, które nie mogły być poprawnie zakończone
C. Wyłącznie tabele odnoszące się do innych
D. Tabele, które zmieniły się w obecnej sesji
Wybór odpowiedzi dotyczącej jedynie tabel, które nie zostały poprawnie zamknięte, nie uwzględnia pełnego zakresu zastosowania polecenia CHECK TABLE. To podejście ignoruje ważny aspekt, jakim jest monitorowanie wszelkich zmian, które miały miejsce od ostatniej inspekcji. Tabele mogą być zmieniane przez różne operacje, zarówno podczas aktualizacji, jak i w wyniku nieprawidłowego zakończenia sesji, co czyni istotnym ich kontrolowanie w szerszym ujęciu. Z kolei odpowiedź sugerująca, że tylko tabele referujące do innych powinny być sprawdzane, jest myląca, ponieważ takie ograniczenie do współzależności między tabelami nie odzwierciedla rzeczywistej natury problemów z integralnością danych. W praktyce, wszystkie tabele w bazie danych mogą wpływać na siebie nawzajem, a problemy w jednej tabeli mogą prowadzić do błędów w innych. Takie myślenie może prowadzić do zaniedbania, które naraża system na uszkodzenia, a nawet utratę danych. Właściwe podejście do zarządzania bazami danych powinno opierać się na całościowym przeglądzie stanu tabel, a nie na selektywnym podejściu, co może przyczynić się do nieefektywności i ryzyka utraty danych. Dlatego też skupienie się tylko na jednym aspekcie, takim jak niewłaściwe zamknięcie, jest niewystarczające dla zapewnienia integralności systemu.

Pytanie 20

W MSSQL Server rola dbcreator, która jest predefiniowana, umożliwia użytkownikowi

A. zarządzanie bezpieczeństwem systemu
B. wykonywanie każdej operacji na serwerze i posiadanie prawa własności każdej bazy
C. zarządzanie plikami na dysku
D. tworzenie, modyfikowanie, usuwanie i odzyskiwanie bazy danych
Rola dbcreator w Microsoft SQL Server jest jedną z predefiniowanych ról serwerowych, która umożliwia użytkownikom zaawansowane zarządzanie bazami danych. Użytkownicy z tą rolą mają pełne uprawnienia do tworzenia nowych baz danych, modyfikowania istniejących oraz usuwania ich, co jest kluczowe dla administratorów i deweloperów pracujących w środowisku SQL. Rola ta pozwala także na odzyskiwanie baz danych, co jest niezbędne w kontekście zarządzania danymi krytycznymi oraz zapewniania ciągłości działania aplikacji. Przykład praktyczny zastosowania roli dbcreator można zobaczyć w sytuacji, gdy zespół deweloperski tworzy nowe środowisko testowe na podstawie istniejącej bazy danych produkcyjnej. Dzięki tej roli, deweloperzy mogą w łatwy sposób sklonować bazę, przeprowadzić modyfikacje i testy, a następnie usunąć niepotrzebne już zasoby. Standardy bezpieczeństwa oraz dobre praktyki zarządzania danymi zalecają ograniczanie uprawnień, co czyni rolę dbcreator narzędziem potężnym, ale wymagającym odpowiedzialnego podejścia ze strony użytkowników.

Pytanie 21

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

A. PNG
B. RAW
C. JPEG
D. BMP
Odpowiedzi, które nie są poprawne, można analizować w kontekście ich technicznych ograniczeń. Format PNG, mimo że obsługuje przezroczystość i jest bezstratnym formatem, ma ograniczoną rozpiętość tonalną, co oznacza, że nie przechowuje tak dużej ilości informacji tonalnych jak RAW. Ponadto, jego główną funkcją jest przechowywanie obrazów z dużą ilością detali w mniej skomplikowanych kolorach, co czyni go mniej odpowiednim do profesjonalnej obróbki zdjęć w trudnych warunkach oświetleniowych. Format BMP, choć prosty i łatwy w użyciu, również nie wspiera zaawansowanej obróbki kolorów, a jego duża objętość plików powoduje, że nie jest praktyczny dla profesjonalnych zastosowań. BMP nie korzysta z kompresji, co sprawia, że pliki są znacznie większe niż w przypadku innych formatów, ale nie oferuje dodatkowych korzyści w zakresie tonalności. JPEG, pomimo szerokiego zastosowania w fotografii i sieci, jest formatem stratnym, co oznacza, że podczas kompresji traci część danych, a tym samym rozpiętość tonalna jest ograniczona. JPEG jest bardziej odpowiedni do codziennego użytku ze względu na mniejszy rozmiar plików, ale nie daje takiej elastyczności w edycji jak RAW, co czyni go niewłaściwym wyborem dla profesjonalnych fotografów poszukujących najwyższej jakości obrazu.

Pytanie 22

Nazywa się inaczej nasycenie koloru

A. jasność koloru
B. dopełnienie koloru
C. przezroczystość koloru
D. nasycenie koloru
Zrozumienie koncepcji nasycenia koloru jest kluczowe w kontekście analizy odpowiedzi na to pytanie. Wiele osób myli saturację z innymi właściwościami kolorów, takimi jak przezroczystość, dopełnienie czy jasność. Przezroczystość koloru odnosi się do tego, jak wiele światła przechodzi przez dany kolor, a nie do jego intensywności. Kolory przezroczyste są często stosowane w warstwach grafiki komputerowej, ale nie mają one bezpośredniego związku z nasyceniem. Dopełnienie koloru dotyczy relacji między kolorami, które znajdują się naprzeciwko siebie na kole kolorów, a nie miary intensywności. Niekiedy twórcy kolorów popełniają błąd, uważając dopełnienie za nasycenie, co prowadzi do nieodpowiednich kombinacji i kompozycji w projektach. Jasność koloru, z kolei, odnosi się do jego jasności lub ciemności, co również nie jest równoznaczne z nasyceniem. Osoby zajmujące się projektowaniem powinny być świadome, że jasne kolory mogą być nasycone lub stonowane, w zależności od ich czystości. Ogólnie rzecz biorąc, mylenie tych terminów może prowadzić do frustracji w pracy kreatywnej i negatywnie wpływać na jakość końcowego produktu. Zrozumienie różnicy między tymi właściwościami jest kluczowe, aby uniknąć takich pułapek i osiągnąć zharmonizowane i profesjonalne rezultaty w projektach graficznych.

Pytanie 23

Jaki zapis w języku C++ definiuje komentarz jednoliniowy?

A. <
B. /*
C. //
D. #
Komentarz jednoliniowy w języku C++ jest definiowany przez zapis //. Używanie tej składni pozwala programiście na dodanie uwag w kodzie, które są ignorowane przez kompilator. Komentarze są niezwykle przydatne, gdyż umożliwiają dokumentowanie kodu, co ułatwia jego zrozumienie i utrzymanie w przyszłości. Na przykład, jeśli mamy fragment kodu, który oblicza sumę dwóch liczb, możemy dodać komentarz jednoliniowy, aby wyjaśnić, co dany fragment robi: // Oblicza sumę dwóch liczb. Warto dodać, że w standardzie C++ zaleca się użycie komentarzy w miejscach, gdzie kod może być trudny do zrozumienia lub wymaga dodatkowego wyjaśnienia. Dobre praktyki programistyczne podkreślają znaczenie dokumentowania kodu, co ułatwia współpracę w zespole oraz przyszłe modyfikacje. Warto również wspomnieć, że komentarze nie powinny być nadmierne, aby nie wprowadzać w błąd lub nie zniechęcać do czytania samego kodu.

Pytanie 24

W języku C++ metoda, która zwraca wynik potęgowania i przyjmuje dwa argumenty: liczbę x oraz wykładnik w, powinna mieć deklarację

A. int potega(int x);
B. void potega(int x, int w, int wynik);
C. void potega(int x, int w);
D. int potega(int x, int w);
Wybrana odpowiedź 'int potega(int x, int w);' jest poprawna, ponieważ jej deklaracja jasno wskazuje, że funkcja ma zwracać wartość typu całkowitego (int) i przyjmować dwa argumenty: podstawę potęgowania (x) oraz wykładnik (w). Taki sposób definiowania funkcji pozwala na elastyczne obliczanie potęgi liczby, co jest istotne w różnych zastosowaniach programistycznych, od prostych kalkulatorów po bardziej złożone algorytmy. W praktyce, implementacja tej funkcji mogłaby wyglądać tak: 'int potega(int x, int w) { return pow(x, w); }', gdzie wykorzystuje się standardową funkcję 'pow' z biblioteki <cmath>. Zwracanie wartości jest zgodne z dobrymi praktykami programistycznymi, ponieważ pozwala na dalsze operacje na wyniku potęgowania, a także ułatwia testowanie i debugowanie kodu. Warto również zwrócić uwagę, że w przypadku potęgowania z wykładnikiem ujemnym, warto zabezpieczyć funkcję przed błędnymi danymi, co może być osiągnięte poprzez odpowiednie sprawdzenie wartości argumentów.

Pytanie 25

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

A. XHTML 2.0
B. XHTML1.0
C. HTML4
D. HTML5
Tak, znaczników <footer>, <header> i <nav> zaczęto używać w HTML5, który zadebiutował w październiku 2014 roku. To jest ciekawe, bo HTML5 wprowadził sporo nowych semantycznych elementów, które pomagają w lepszej organizacji dokumentów HTML. Dzięki nim, przeglądarki i roboty wyszukiwarek mogą lepiej zrozumieć strukturę stron. Na przykład, <header> to nagłówek strony lub sekcji, <nav> tworzy menu nawigacyjne, a <footer> to stopka. Myślę, że to super sprawa, bo poprawia dostępność strony i jej SEO, bo tak naprawdę pomaga wyszukiwarkom w lepszym indeksowaniu treści, co może prowadzić do lepszych wyników w wyszukiwarkach. Dodatkowo, HTML5 ma też inne ciekawe nowinki, jak wsparcie dla multimediów, lokalne przechowywanie danych, a także lepszą kompatybilność z aplikacjami mobilnymi, więc zdecydowanie warto go wykorzystywać do budowy stron internetowych.

Pytanie 26

Podana jest tabela książki z kolumnami: tytuł, autor (w formie tekstowej), cena (w formie liczbowej). Jaką kwerendę SELECT należy wykorzystać, aby otrzymać tylko tytuły, których cena jest niższa niż 50 zł?

A. SELECT tytul FROM ksiazki WHERE cena < 50;
B. SELECT * FROM ksiazki WHERE cena < 50;
C. SELECT tytul FROM ksiazki WHERE cena > '50 zł';
D. SELECT ksiazki FROM tytul WHERE cena < '50 zł';
Odpowiedzi, które zostały podane jako niepoprawne, zawierają różne błędy w składni oraz logiczne nieścisłości. W pierwszym przypadku, zapytanie "SELECT * FROM ksiazki WHERE cena < 50;" zwraca wszystkie kolumny z tabeli, co nie jest zgodne z wymaganiami pytania, które prosi o zwrócenie jedynie tytułów książek. Użycie operatora * zamiast konkretnego pola jest nieefektywne, co prowadzi do większego obciążenia, szczególnie przy dużych zbiorach danych. Innym zapytaniem, które jest niepoprawne, jest "SELECT tytul FROM ksiazki WHERE cena > '50 zł';". To zapytanie zawiera błąd w operatorze porównania, ponieważ zamiast poszukiwać książek tańszych niż 50 zł, filtruje te droższe. Dodatkowo, zawarcie ceny jako tekstu ('50 zł') wprowadza nieprawidłowe zachowanie porównania, ponieważ SQL nie przetwarza wartości tekstowych jako liczb. Wreszcie, zapytanie "SELECT ksiazki FROM tytul WHERE cena < '50 zł';" jest całkowicie błędne, ponieważ sugeruje, że wybieramy kolumnę z tabeli 'ksiazki' na podstawie warunków dotyczących innej kolumny. Tego typu błędne zrozumienie struktury i składni SQL często prowadzi do frustracji w pracy z bazami danych. Kluczowe w nauce SQL jest zrozumienie, że każdy element zapytania ma swoje miejsce i rolę, co pozwala na tworzenie poprawnych i efektywnych kwerend.

Pytanie 27

Jaki atrybut powinien zostać umieszczony w miejscu trzech kropek w znaczniku HTML5 <blockquote>, aby wskazać źródło cytatu?

A. cite
B. href
C. src
D. alt
Odpowiedź 'cite' jest prawidłowa, ponieważ atrybut ten służy do wskazania źródła cytatu w znaczniku <blockquote>. Atrybut cite pozwala dostarczyć dodatkowych informacji o autorze lub miejscu pochodzenia cytatu, co jest zgodne z zasadami semantycznego HTML5. Użycie atrybutu cite jest ważne dla poprawnej interpretacji treści przez przeglądarki oraz narzędzia przetwarzające dane, takie jak wyszukiwarki internetowe. Przykład zastosowania: <blockquote cite="https://pl.wikipedia.org">...cytat...</blockquote>. Dzięki temu można łatwo zidentyfikować źródło, co zwiększa wiarygodność prezentowanych informacji. W praktyce, dokumenty HTML powinny być tak przygotowane, aby były zarówno przyjazne dla użytkowników, jak i zgodne z wytycznymi standardów W3C, co ma kluczowe znaczenie w kontekście dostępności i SEO.

Pytanie 28

Termin „front-end” w kontekście budowy stron internetowych odnosi się do

A. działania skryptów i aplikacji realizowanych po stronie serwera WWW
B. organizacji danych na serwerze WWW
C. interfejsu witryny internetowej powiązanego z technologiami działającymi w przeglądarkach internetowych
D. bazy danych zawierającej informacje prezentowane na stronie
Rozważając błędne odpowiedzi, warto zauważyć, że pierwsza z nich dotyczy organizacji informacji na serwerze WWW, co odnosi się do aspektów back-endowego rozwoju aplikacji internetowych. Back-end zarządza logiką, bazami danych i serwerami, podczas gdy front-end koncentruje się na interakcji użytkownika z aplikacją. Druga odpowiedź, dotycząca bazy danych, również jest niepoprawna, ponieważ bazy danych są elementem back-endu, które przechowują dane i dostarczają je do front-endu na żądanie. Trzecia odpowiedź, odnosząca się do skryptów działających po stronie serwera, również wskazuje na nieporozumienie dotyczące podziału na front-end i back-end. Skrypty serwerowe przetwarzają dane na serwerze i nie mają bezpośredniego wpływu na to, co użytkownik widzi na ekranie. Typowym błędem myślowym jest utożsamianie front-endu ze wszystkimi aspektami technologicznymi aplikacji webowych. W rzeczywistości, front-end jest tylko częścią większego ekosystemu, w którym back-end i front-end współpracują, aby dostarczyć użytkownikowi pełne doświadczenie. Zrozumienie tych różnic jest kluczowe dla każdego, kto jest zaangażowany w rozwój aplikacji internetowych.

Pytanie 29

Jaką wartość zwróci funkcja empty($a); w języku PHP, gdy zmienna $a będzie miała wartość liczbową 0?

A. TRUE
B. 0
C. FALSE
D. NULL
Wybór wartości 0 jako odpowiedzi jest błędny, ponieważ funkcja empty() nie zwraca wartości liczbowej, a zamiast tego określa, czy zmienna jest pusta. Wartość 0 nie oznacza, że zmienna jest 'zapełniona', a wręcz przeciwnie, w kontekście PHP jest traktowana jako 'pusta'. Niezrozumienie tego może prowadzić do błędnych założeń podczas pracy z danymi, gdzie 0 często może być uważane za wartość ważną. Z kolei NULL jest typem, który reprezentuje brak wartości, ale w kontekście funkcji empty() jest on również uznawany za pusty. Zmienne z wartością NULL zostaną ocenione jako puste, co jest zgodne z zasadami typowania w PHP, jednak nie należy mylić tego z zerem. Zastosowanie wartości FALSE jako odpowiedzi jest również nieprawidłowe, ponieważ empty() nie zwraca wartości logicznej FALSE dla zmiennej $a, która ma wartość 0. Zamiast tego zwróci TRUE. Istotne jest, aby zrozumieć, że empty() nie ocenia wartości w sensie ich logiczności, lecz jedynie czy są one 'puste' w kontekście PHP. Właściwe zrozumienie tego mechanizmu jest kluczowe dla uniknięcia błędów w logice programowania, zwłaszcza w skomplikowanych aplikacjach webowych, gdzie walidacja danych jest istotna.

Pytanie 30

W języku PHP należy stworzyć warunek, który będzie prawdziwy, gdy zmienna $a będzie dowolną liczbą całkowitą mniejszą niż -10 lub gdy zmienna $b będzie jakąkolwiek liczbą z zakresu (25, 75). Wyrażenie logiczne w tym warunku przyjmuje postać

A. ($a < -10) and (($b > 25) and ($b < 75))
B. ($a < -10) and (($b > 25) or ($b < 75))
C. ($a < -10) or (($b > 25) or ($b < 75))
D. ($a < -10) or (($b > 25) and ($b < 75))
Analizując niepoprawne wyrażenia logiczne, można zauważyć, że w każdym z nich występują błędy w interpretacji warunków z pytania. W przypadku wyrażenia, które używa operatora 'and', takie jak ($a < -10) and (($b > 25) and ($b < 75)), zakłada się, że oba warunki muszą być spełnione jednocześnie, co jest niezgodne z opisanymi wymaganiami. Ponieważ pytanie wskazuje na możliwość spełnienia jednego z warunków, stosowanie operatora 'and' w tym kontekście prowadzi do logicznej niepoprawności. Kolejny błąd można znaleźć w podejściu, które używa operatora 'or' w połączeniu z błędnymi granicami przedziału, jak w przypadku (($b > 25) or ($b < 75)). Takie wyrażenie nie ogranicza zmiennej $b do przedziału (25, 75), ponieważ pozwala na przyjmowanie wartości poza tym zakresem, co jest sprzeczne z wymaganiami. Typowym błędem myślowym tutaj jest mylenie operatorów logicznych oraz nieprawidłowe interpretowanie zakresu wartości. Aby uniknąć tego typu błędów, ważne jest, aby zawsze dokładnie przemyśleć, jakie warunki muszą być spełnione i jakie operatory logiczne są odpowiednie do ich realizacji. Szkolenie w zakresie logiki programowania oraz praktyka w pisaniu wyrażeń warunkowych mogą znacząco poprawić umiejętności programistyczne i zwiększyć precyzję kodu.

Pytanie 31

Jakie cechy powinien posiadać klucz główny?

A. Jest unikatowy, może mieć tylko wartości całkowite
B. Nie może przybierać wartości, reprezentowany jest przez dokładnie jedno pole tabeli
C. Jest unikatowy, nie może zawierać pustych wartości
D. Reprezentowany jest przez jedno pole tabeli, jego wartość nie może ulegać zmianie
Wszystkie błędne odpowiedzi zawierają nieprecyzyjne lub mylące stwierdzenia dotyczące kluczy głównych. Na przykład, twierdzenie, że klucz główny może przyjmować tylko wartości całkowite, nie jest zgodne z rzeczywistością. Klucz główny może być reprezentowany przez różne typy danych, w tym tekst, daty, a nawet złożone obiekty, co czyni tę koncepcję zbyt ograniczoną. Kolejne stwierdzenie, że klucz główny jest reprezentowany przez dokładnie jedno pole tabeli, również nie oddaje pełnego obrazu. Możliwe jest tworzenie kluczy głównych z kilku kolumn, znanych jako klucze złożone, co jest przydatne w sytuacjach, gdy pojedyncza kolumna nie może zapewnić unikalności. Ponadto, stwierdzenie, że wartości klucza głównego nie mogą się zmieniać, wprowadza w błąd. Chociaż zmiana wartości klucza głównego może wprowadzić komplikacje, zwłaszcza w relacjach z innymi tabelami, technicznie jest to możliwe. Właściwe podejście do zarządzania kluczami głównymi obejmuje zrozumienie konsekwencji takich zmian oraz odpowiednie aktualizacje w powiązanych tabelach. Wreszcie, nieznajomość tych aspektów może prowadzić do typowych błędów w projektowaniu baz danych, takich jak brak unikalności lub trudności w zarządzaniu relacjami, co z kolei może wpłynąć na wydajność oraz integralność aplikacji bazodanowych. Zrozumienie roli kluczy głównych jest zatem fundamentalne dla każdego, kto chce skutecznie projektować i zarządzać bazami danych.

Pytanie 32

W skrypcie JavaScript operatory: ||, && są klasyfikowane jako operatorzy

A. bitowe
B. przypisania
C. logicznymi
D. arytmetyczne
Operatory || (OR logiczny) oraz && (AND logiczny) w języku JavaScript należą do grupy operatorów logicznych. Używają ich programiści do prowadzenia operacji na wartościach boolowskich (true/false), co jest kluczowe w tworzeniu warunków w instrukcjach warunkowych i pętlach. Operator && zwraca true, jeśli obie jego operandy są prawdziwe, natomiast operator || zwraca true, gdy przynajmniej jedna z operand jest prawdziwa. Przykładem praktycznego zastosowania operatora && może być sprawdzanie, czy użytkownik jest zalogowany i ma odpowiednie uprawnienia do wykonania danej operacji. Z kolei operator || może być użyty do wyświetlenia komunikatu, jeśli użytkownik nie podał danych, bądź podał niewłaściwe wartości. Dobrze jest stosować te operatory w kontekście logiki programowania, co pozwala na tworzenie bardziej złożonych, ale jednocześnie czytelnych i efektywnych warunków. Warto również pamiętać, aby w kodzie unikać zbyt skomplikowanych warunków, co może prowadzić do trudności w utrzymaniu kodu oraz zwiększać ryzyko błędów.

Pytanie 33

Który z komponentów dokumentacji aplikacji powinien być zawarty w dokumentacji dla użytkownika?

A. Opis algorytmów użytych w kodzie
B. Szczegółowy opis kodu źródłowego
C. Wyjaśnienie zastosowanych technologii oraz bibliotek
D. Instrukcja obsługi funkcji systemu
Opis kodu źródłowego nie jest odpowiedni do zawarcia w dokumentacji użytkownika, ponieważ skupia się na technicznych detalach implementacji, które są zrozumiałe głównie dla programistów i osób zajmujących się rozwojem oprogramowania. Tego typu dokumentacja jest istotna w kontekście rozwoju aplikacji, ale nie ma zastosowania w kontekście użytkownika końcowego, który nie jest zazwyczaj zainteresowany wewnętrzną strukturą kodu. Opis wykorzystanej technologii i bibliotek również nie jest adekwatny do dokumentacji użytkownika, ponieważ użytkownik nie musi znać szczegółów dotyczących technologii, na której oparta jest aplikacja. W większości przypadków, klienci są bardziej zainteresowani funkcjonalnościami i sposobem użytkowania aplikacji, a nie tym, jakie technologie zostały użyte w jej produkcji. Opis algorytmów zastosowanych w kodzie również nie jest właściwy, ponieważ użytkownicy końcowi rzadko potrzebują wiedzieć, jakie algorytmy stoją za działaniem aplikacji. Chociaż zrozumienie algorytmów może być przydatne dla inżynierów i programistów, dla przeciętnego użytkownika najważniejsze jest to, jak aplikacja działa w praktyce i jak ją wykorzystać do realizacji swoich potrzeb. Z tego względu, informacje te są istotne w kontekście dokumentacji technicznej, ale nie są użyteczne w dokumentacji użytkownika.

Pytanie 34

W języku PHP wykorzystano funkcję ```is_float()```. Które z poniższych wywołań tej funkcji zwróci rezultat true?

A. is_float('3,34')
B. is_float(NULL)
C. is_float(3.34)
D. is_float(334)
Zrozumienie, co dokładnie zwraca funkcja is_float(), jest bardzo ważne, jeśli chce się dobrze pracować z typami danych w PHP. Na przykład, jak wpiszesz is_float(334), to dostaniesz false, bo 334 to liczba całkowita, a nie zmiennoprzecinkowa. To może być mylące, bo nie każdy wie, że float to coś konkretnego. Podobnie jest z is_float(NULL) - zwraca false, bo NULL to jakby brak wartości, a nie liczba. Jeszcze jedno – jakbyś wywołał is_float('3,34'), to też dostaniesz false, bo PHP nie rozpozna tego jako float; to traktuje jako tekst. PHP nie konwertuje automatycznie tekstu na float, zwłaszcza jak używasz przecinka, zamiast kropki. Te błędy często biorą się stąd, że ludzie myślą, że PHP sam zrozumie, co mają na myśli. Dlatego warto ogarnąć, jak działa typowanie w PHP i jak używać funkcji tych sprawdzających typy, jak is_float(). Dzięki temu twój kod będzie bardziej stabilny i unikniesz błędów przy jego działaniu.

Pytanie 35

Znaczniki HTML <strong> oraz <em>, które mają na celu podkreślenie istotności tekstu, pod względem formatowania odpowiadają znacznikom

A. <i> oraz <mark>
B. <b> oraz <i>
C. <b> oraz <u>
D. <u> oraz <sup>
Wybór błędnych znaczników HTML często wynika z niepełnego zrozumienia różnicy między semantyką a formatowaniem. Znacznik <u> służy do podkreślenia tekstu, co może być mylące w kontekście oznaczania ważności treści. Oznaczanie tekstu w ten sposób nie dostarcza żadnej informacji o jego znaczeniu, co jest kluczowe w tworzeniu dostępnych i zrozumiałych stron internetowych. Użycie <sup> oznacza tekst w indeksie górnym, co również nie ma związku z akcentowaniem ważności. W przypadku <b> i <u>, oba znaczniki służą do formatowania, ale ignorują istotne aspekty semantyki, co może prowadzić do nieporozumień w interpretacji treści przez przeglądarki oraz urządzenia asystujące. Użycie <i> oznacza tekst w kursywie, jednak podobnie jak <b>, jest to czysto wizualne formatowanie bez znaczenia semantycznego. W praktyce, nadmierne poleganie na takich znacznikach bez zrozumienia ich ról w kontekście semantyki prowadzi do tworzenia stron, które są mniej dostępne i mniej przyjazne dla użytkowników. Kluczowym elementem budowy nowoczesnych aplikacji webowych jest stosowanie odpowiednich znaczników, które nie tylko prezentują treść, ale również przekazują jej znaczenie, co jest podstawą dobrego UX oraz SEO.

Pytanie 36

Jakie są odpowiednie kroki w odpowiedniej kolejności, które należy podjąć, aby nawiązać współpracę pomiędzy aplikacją internetową po stronie serwera a bazą danych SQL?

A. nawiązanie połączenia z serwerem baz danych, wybór bazy, zapytanie do bazy - wyświetlane na stronie WWW, zamknięcie połączenia
B. wybór bazy danych, nawiązanie połączenia z serwerem baz danych, zapytanie do bazy - wyświetlane na stronie WWW, zamknięcie połączenia
C. zapytanie do bazy, wybór bazy, wyświetlenie na stronie WWW, zamknięcie połączenia
D. wybór bazy, zapytanie do bazy, nawiązanie połączenia z serwerem baz danych, wyświetlenie na stronie WWW, zamknięcie połączenia
Analizując niepoprawne odpowiedzi, można zauważyć, że każda z nich zawiera fundamentalne błędy w kolejności operacji. W przypadku pierwszej odpowiedzi, zaczynanie od zapytania do bazy danych bez wcześniejszego nawiązania połączenia z serwerem jest nie tylko niepraktyczne, ale wręcz niemożliwe. System nie jest w stanie wykonać jakiegokolwiek zapytania, jeśli nie istnieje aktywne połączenie, co prowadzi do błędów wykonania. W drugiej odpowiedzi również występuje błąd, polegający na wysyłaniu zapytania przed wybraniem bazy danych. W rzeczywistości, aby system mógł poprawnie zrealizować zapytanie, musi najpierw wiedzieć, z jaką bazą ma do czynienia. Ostatnia z niepoprawnych odpowiedzi, która sugeruje wybór bazy danych przed nawiązaniem połączenia, również jest błędna, ponieważ nie można wybrać bazy bez aktywnego połączenia z serwerem. W praktyce, każda z tych odpowiedzi nie uwzględnia kluczowych zasad dotyczących zarządzania połączeniami z bazami danych, takich jak zasady dotyczące transakcji oraz efektywnego zarządzania zasobami, co jest niezbędne w kontekście wydajnych aplikacji internetowych.

Pytanie 37

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 38

W JavaScript metoda Math.random() ma na celu

A. zwrócić liczbę po zaokrągleniu
B. zwrócić liczbę pseudolosową
C. zaokrąglić liczbę do najbliższej większej liczby całkowitej
D. porównać dwie sekwencje znaków
Odpowiedzi sugerujące, że Math.random() zaokrągla liczby lub porównuje napisy, bazują na nieporozumieniach dotyczących podstawowych funkcjonalności tej metody. Zaokrąglanie liczb odnosi się do operacji, która manipulowałaby wartością liczbową, co nie ma miejsca w działaniu Math.random(). Metoda ta generuje zmiennoprzecinkowe liczby losowe, które mogą być następnie zaokrąglane, ale sama w sobie nie wykonuje tej operacji, co czyni takie odpowiedzi błędnymi. Twierdzenie, że Math.random() zwraca zaokrągloną liczbę również jest mylne, ponieważ wynik jej działania to wartość w przedziale od 0 do 1, która nie jest zaokrąglana, lecz jest to liczba o zmiennoprzecinkowej reprezentacji. Porównywanie napisów to zupełnie inna operacja, która dotyczy analizy tekstów, a nie generowania liczb. Takie pomyłki często wynikają z braku zrozumienia różnicy między różnymi typami operacji w języku programowania. Przykładem tego może być zamiana kontekstu funkcji, gdzie użytkownik myli operacje numeryczne z logicznymi. Zrozumienie, kiedy i jak używać poszczególnych funkcji, jest kluczowe dla efektywnego programowania i unikania podstawowych błędów w kodzie.

Pytanie 39

Wybierz prawidłowy sposób umieszczania komentarzy w kodzie źródłowym HTML

A. "" informacje komentarza ""
B. <!-- informacje komentarza -->
C. /* informacje komentarza */
D. -- informacje komentarza --
Komentarze w HTML mają swoją bardzo konkretną składnię i to jest coś, czego przeglądarka trzyma się dość sztywno. Wiele osób myli tu różne języki i przenosi nawyki z innych technologii. Na przykład zapis w stylu -- informacje komentarza -- wygląda trochę jak fragment właściwego komentarza, bo są myślniki, ale brakuje kluczowych elementów: otwierającego ciągu <!-- i zamykającego -->. Bez tych znaków przeglądarka potraktuje taki tekst po prostu jako zwykłą treść strony lub wręcz jako błędny fragment kodu, co może rozwalić strukturę dokumentu. Taki zapis nie jest nigdzie opisany w specyfikacji HTML, więc po prostu nie działa jako komentarz. Z kolei zapis /* informacje komentarza */ pochodzi z zupełnie innego świata – to składnia komentarzy w CSS, w JavaScript (dla komentarza blokowego), w wielu językach programowania typu C, Java, PHP. I tu pojawia się typowy błąd: ktoś zna już programowanie, więc „z przyzwyczajenia” używa tych samych komentarzy w HTML. Niestety HTML nie jest językiem programowania, tylko językiem znaczników i ma własne zasady. Przeglądarka zignoruje /* */ jako komentarz HTML, a jeśli w środku będą jakieś znaki specjalne, może to nawet powodować dziwne efekty w wyświetlaniu. Podobnie zapis w cudzysłowach, czyli "" informacje komentarza "", jest po prostu tekstem w cudzysłowie. W HTML takie coś może się pojawić np. jako wartość atrybutu, ale na pewno nie jako komentarz. Przeglądarka to normalnie wyświetli, bo nie ma żadnego powodu, żeby to ukrywać. Typowy błąd myślowy jest tu taki, że skoro komentarz to „coś, czego użytkownik nie widzi”, to wystarczy „jakoś to oznaczyć”. Niestety, w technologiach webowych nie działa „jakoś”, tylko dokładnie to, co przewiduje standard. Jedyną poprawną formą komentarza w HTML jest <!-- treść komentarza -->. Warto to sobie dobrze utrwalić, bo mieszanie składni z CSS, JavaScriptu czy języków backendowych w HTML prowadzi do trudnych do wykrycia błędów i nieczytelnego kodu.

Pytanie 40

Podaj polecenie SQL, które wprowadza kolumnę miesiacSiewu do istniejącej tabeli rosliny?

A. ALTER TABLE rosliny ADD miesiacSiewu int
B. INSERT INTO rosliny VALUES (miesiacSiewu int)
C. CREATE TABLE rosliny {miesiacSiewu int}
D. UPDATE rosliny ADD miesiacSiewu int
Poprawna odpowiedź to ALTER TABLE rosliny ADD miesiacSiewu int. To polecenie SQL jest używane do modyfikacji istniejącej tabeli w bazie danych. W tym przypadku, zmiana dotyczy dodania nowego pola 'miesiacSiewu', które określi miesiąc siewu roślin. Typ danych 'int' oznacza, że wartość tego pola będzie przechowywana jako liczba całkowita, co jest odpowiednie, jeśli miesiące będą reprezentowane jako liczby od 1 do 12. Przykład użycia polecenia w praktyce: po dodaniu tego pola można wprowadzać dane o miesiącu siewu dla różnych roślin, co może być przydatne w systemach zarządzania uprawami. Dobrą praktyką jest zawsze dokumentować zmiany w schemacie bazy danych, aby zapewnić spójność i przejrzystość w zarządzaniu danymi. Ważne jest również, aby przed modyfikacją tabeli upewnić się, że nie wprowadza to konfliktów z istniejącymi danymi lub strukturami.