Wyniki egzaminu

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

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

W języku PHP wykorzystano funkcję

is_float()
. Które z poniższych wywołań tej funkcji zwróci rezultat true?
A. is_float(334)
B. is_float('3,34')
C. is_float(NULL)
D. is_float(3.34)
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 2

Która funkcja PHP ustawia KODOWANIE znaków połączenia z bazą (np. dla polskich liter)?

A.
mysqli_fetch_assoc()
B.
mysqli_set_charset()
C.
mysqli_connect()
D.
mysqli_query()
Nawet gdy tabele są w utf8, połączenie PHP-baza może domyślnie używać innego kodowania - i wtedy „ą”, „ś”, „ł” zamieniają się w „krzaki”. Naprawia to mysqli_set_charset($polaczenie, "utf8"), ustawiając kodowanie znaków dla całej komunikacji z bazą. Wywołuje się ją raz, zaraz po połączeniu. Zapamiętaj: „set_charset” = ustaw zestaw znaków połączenia, żeby polskie litery zapisywały się i czytały poprawnie.

Pytanie 3

W języku HTML, atrybut shape w znaczniku area, który definiuje typ obszaru, może mieć wartość

A. rect, sąuare, circle
B. style="margin-bottom: 0cm;">rect, triangle, circle
C. style="margin-bottom: 0cm;">poły, square, circle
D. rect, poły, circle
W przypadku odpowiedzi, które nie są poprawne, należy zwrócić uwagę na kilka kluczowych aspektów. Po pierwsze, wartości 'triangle' oraz 'square' nie są uznawane w atrybucie shape znacznika area w HTML. Zamiast tego, 'triangle' nie ma odpowiedniego wsparcia w standardach, a więc nie może być używane do definiowania obszarów na mapach obrazów. Również 'square', chociaż może przypominać prostokąt, nie ma odrębnej definicji i nie jest akceptowany w specyfikacji. Mapa obrazów ogranicza się do określonych kształtów, takich jak 'rect', 'circle' oraz 'poly', co czyni te odpowiedzi niepoprawnymi. Dodatkowo, wspomnienie o 'sąuare' wskazuje na literówkę, co również podważa poprawność tej opcji. Termin 'poły' nie tylko nie istnieje w kontekście atrybutu shape, ale także nie odnosi się do żadnego znanego kształtu w HTML. Zrozumienie właściwych terminów oraz ich zastosowania w HTML jest kluczowe dla tworzenia funkcjonalnych stron internetowych, a każda niepoprawna odpowiedź może prowadzić do mylących implementacji.

Pytanie 4

Jakie słowo kluczowe w SQL należy zastosować, aby usunąć powtarzające się rekordy?

A. GROUP BY
B. LIKE
C. ORDER BY
D. DISTINCT
Wybór słów kluczowych takich jak ORDER BY, LIKE czy GROUP BY w kontekście eliminacji duplikatów może prowadzić do nieporozumień dotyczących ich rzeczywistej funkcji w SQL. ORDER BY służy do sortowania wyników zapytania, co nie ma wpływu na eliminację duplikatów. Chociaż sortowanie może pomóc w lepszym zrozumieniu danych, to nie rozwiązuje problemu powtarzających się wartości w wynikach. Podobnie, słowo kluczowe LIKE jest używane do wyszukiwania wzorców w tekstach i nie ma żadnego zastosowania w kontekście duplikatów. Z kolei GROUP BY, chociaż może być używane do agregacji danych, nie jest bezpośrednim narzędziem do eliminacji duplikatów. Grupując dane, możemy zliczać, sumować lub wykonywać inne operacje na grupach rekordów, ale sama konstrukcja GROUP BY nie gwarantuje usunięcia duplikatów z wyników. Często mylone jest z DISTINCT, ponieważ efektywnie może prowadzić do zmniejszenia liczby wyników, ale jego główną funkcją jest agregacja. W rezultacie, użycie tych słów kluczowych zamiast DISTINCT może prowadzić do błędnych wyników lub utraty istotnych danych. Zrozumienie właściwej roli każdego z tych słów kluczowych jest kluczowe dla efektywnego wykorzystania SQL w praktyce oraz dla unikania typowych błędów w analizie danych.

Pytanie 5

W języku PHP zmienna typu float może przyjmować wartości

A. jedynie liczby całkowite
B. wartości nieliczbowe
C. wartości logiczne
D. wartości zmiennoprzecinkowe
Wybór odpowiedzi dotyczącej całkowitych wartości jest nieprawidłowy, ponieważ zmienne typu float w języku PHP są definiowane do przechowywania liczb zmiennoprzecinkowych, a nie tylko całkowitych. Dla wielu programistów może być mylące, że wartości całkowite i zmiennoprzecinkowe są traktowane jako odrębne typy danych, a tymczasem float jest bardziej uniwersalny, pozwalając na reprezentację obu. Wybór nieliczbowych wartości także jest błędny, ponieważ zmienne float są właśnie typem numerycznym, co oznacza, że przechowują wartości liczbowe, a nie literowe czy inne typy danych. To prowadzi do mylnego przekonania, że float może przechowywać dane w postaci tekstu, co jest technicznie niemożliwe. Również odpowiedź o wartościach logicznych wykazuje zrozumienie pomiędzy różnymi typami zmiennych w PHP, gdzie typ logiczny (boolean) przyjmuje wartości true lub false, co całkowicie różni się od wartości numerycznych. Często pojawia się błąd myślowy polegający na mieszaniu pojęć numerycznych oraz logicznych, co prowadzi do zafałszowania zrozumienia działania typów danych w programowaniu. Kluczowe jest dostrzeganie różnic między tymi typami oraz ich zastosowaniem, co jest fundamentalne dla efektywnego programowania w PHP. Wreszcie, świadomość typów danych oraz ich zastosowań jest ważnym elementem w procesie pisania poprawnego kodu, co może zapobiegać błędom i ułatwiać zrozumienie działania aplikacji.

Pytanie 6

W języku JavaScript, deklaracja:

var x=true;
sprawia, że zmienna x ma typ
A. numeryczny
B. logiczy
C. enumeracyjny
D. łańcuch znaków
Zmienna x w JavaScript, która została zadeklarowana jako 'var x=true;', to typ logiczny, czyli boolean. W tym języku mamy dwie możliwe wartości: true (prawda) i false (fałsz). Ten typ jest naprawdę ważny, zwłaszcza gdy mówimy o warunkach w programach, bo to właśnie one są bazą dla programowania strukturalnego i obiektowego. Kiedy piszesz instrukcje if albo pętle, typ logiczny odgrywa kluczową rolę w tym, co się dzieje w programie. Fajnie jest korzystać z zmiennych logicznych, by kontrolować, co się dzieje w kodzie, a także sprawiać, że warunki są czytelniejsze. Ciekawe jest też to, że w JavaScript inne typy, jak liczby czy ciągi znaków, mogą być używane w kontekście wartości prawdziwych i fałszywych. To czyni typ logiczny bardzo elastycznym i wszechstronnym. Im lepiej rozumiesz ten typ, tym lepiej potrafisz tworzyć dynamiczne aplikacje, które dobrze reagują na różne sytuacje.

Pytanie 7

Który program przekształca kod źródłowy napisany w danym języku programowania na język zrozumiały dla komputera?

A. środowisko programistyczne (IDE)
B. debugger
C. edytor kodu źródłowego
D. kompilator
Pozostałe odpowiedzi nie tłumaczą kodu na język maszynowy. Debugger służy do analizy działającego programu i wyszukiwania przyczyn błędów - nie zajmuje się przekładem kodu. Edytor kodu źródłowego to narzędzie do pisania i formatowania kodu (z podświetlaniem składni), ale samo nie przetwarza go na postać wykonywalną. Środowisko programistyczne (IDE) łączy wiele narzędzi w jednym, jednak właściwą kompilację wykonuje dopiero wbudowany w nie kompilator. Tłumaczenie kodu źródłowego na język komputera to zadanie kompilatora, dlatego ta odpowiedź jest poprawna.

Pytanie 8

Które stwierdzenie najlepiej opisuje klasę Owoc zdefiniowaną w języku PHP i przedstawioną na listingu?

class Owoc {
    public $nazwa;
    private $kolor;
    function set_nazwa($nazwa) {
        $this->nazwa = $nazwa;
    }
}
A. Zawiera dwa pola i jedną metodę, a pole kolor ma zasięg widzialności ograniczony wyłącznie do metod klasy.
B. Zawiera dwa pola i jedną metodę, a pole nazwa ma zasięg widzialności ograniczony wyłącznie do metod klasy.
C. Zawiera dwa pola oraz jeden konstruktor, oba pola mają zasięg widzialności ograniczony wyłącznie do metod klasy.
D. Zawiera jedno pole i dwie metody, z których jedna ma ograniczony zasięg prywatny.
Klasa Owoc rzeczywiście ma dwa pola: publiczne pole nazwa oraz prywatne pole kolor. Widoczność pola kolor ogranicza się do wnętrza klasy, co oznacza, że nie może być ono bezpośrednio dostępne z zewnątrz. Metoda set_nazwa jest jedyną zdefiniowaną metodą, która umożliwia modyfikację wartości pola nazwa. Przykładowo, można stworzyć nowy obiekt klasy Owoc i ustawić jego nazwę za pomocą tej metody: $owoc = new Owoc(); $owoc->set_nazwa('Jabłko');. Takie podejście ilustruje zasadę enkapsulacji, która jest jedną z podstaw programowania obiektowego, gdzie dane obiektu są chronione i dostępne tylko poprzez metody, co zwiększa bezpieczeństwo i integralność danych. Dobrą praktyką jest również stosowanie metod get i set do zarządzania wartościami pól, co ułatwia kontrolowanie dostępu i weryfikację danych.

Pytanie 9

Zaprezentowano kod dla tabeli 3x2. Jaką modyfikację należy wprowadzić w drugim wierszu, aby tabela przypominała tę z obrazka, gdzie wiersz jest niewidoczny?

<table>
    <tr>
        <td style="border: solid 1px;">Komórka 1</td>
        <td style="border: solid 1px;">Komórka 2</td>
    </tr>
    <tr>
        <td style="border: solid 1px;">Komórka 3</td>
        <td style="border: solid 1px;">Komórka 4</td>
    </tr>
    <tr>
        <td style="border: solid 1px;">Komórka 5</td>
        <td style="border: solid 1px;">Komórka 6</td>
    </tr>
</table>
/efekt jest na obrazie - nie dołączam - nie analizuj/
Ilustracja do pytania
A. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"display: table-cell"</span>&gt;</pre>
B. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"display: none"</span>&gt;</pre>
C. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"clear: none"</span>&gt;</pre>
D. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"visibility: hidden"</span>&gt;</pre>
Odpowiedź jest prawidłowa, ponieważ użycie stylu 'visibility: hidden' w wierszu tabeli skutkuje tym, że wiersz ten nie jest widoczny, ale nadal zajmuje miejsce w układzie tabeli. Oznacza to, że komórki poniżej nie przesuwają się w górę, a struktura tabeli pozostaje niezmieniona. To podejście jest zgodne z sytuacjami, w których chcemy ukryć zawartość bez zmiany rozmieszczenia innych elementów. Jest to przydatne w aplikacjach, gdzie układ strony musi pozostać stabilny dla zachowania spójności wizualnej lub funkcjonalnej. Przykładem może być ukrywanie tymczasowych informacji, które nie powinny wpływać na pozostały układ interfejsu użytkownika. Jest to zgodne z dobrymi praktykami projektowania front-endu, gdzie stylizacje powinny wspierać czytelność i przewidywalność układu strony. Alternatywnie, 'display: none' usunęłoby element z przepływu dokumentu, co zmienia układ, ale w tym przypadku zastosowanie 'visibility: hidden' jest właściwym wyborem dla zachowania struktury.

Pytanie 10

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

A. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
B. DELETE FROM zadania;
C. DELETE FROM zadania WHERE status = 'zamknięte';
D. TRUNCATE TABLE zadania;
Odpowiedź DELETE FROM zadania WHERE status = 'zamknięte' jest poprawna, ponieważ wykorzystuje standardową składnię SQL do usuwania rekordów z tabeli na podstawie zadanych warunków. W tym przypadku, kwerenda ta usuwa tylko te wiersze, które mają wartość 'zamknięte' w polu status. Jest to podejście zgodne z dobrymi praktykami, ponieważ pozwala na precyzyjne określenie, które dane mają zostać usunięte, co minimalizuje ryzyko przypadkowego usunięcia innych rekordów. Na przykład, w systemie zarządzania projektami, możemy mieć wiele zadań z różnymi statusami, takimi jak 'otwarte', 'w trakcie', czy 'zamknięte'. Użycie tej kwerendy pozwala na oczyszczenie bazy danych z nieaktualnych zadań, co jest kluczowe dla utrzymania porządku i efektywności w zarządzaniu projektami. Ponadto, stosując tę metodę, możemy w przyszłości łatwo modyfikować warunki usuwania, na przykład zmieniając status na 'wstrzymane', zachowując elastyczność w zarządzaniu danymi.

Pytanie 11

Na ilustracji przedstawiono

Ilustracja do pytania
A. analizę poprawności kodu strony internetowej.
B. analizę ruchu sieciowego między serwerem a przeglądarką.
C. testy bezpieczeństwa strony.
D. testy funkcjonalne strony interenetowej.
Na zrzucie ekranu widać kartę „Network” w narzędziach deweloperskich przeglądarki (DevTools). To właśnie tutaj podglądamy, jak wygląda ruch sieciowy pomiędzy przeglądarką a serwerem. Każdy wiersz listy to jedno żądanie HTTP/HTTPS: dokument HTML, arkusz CSS, skrypt JS, grafika, font itp. W kolumnach masz m.in. Name (adres zasobu), Status (kody odpowiedzi HTTP, np. 200, 307), Type (rodzaj zasobu), Size (wielkość odpowiedzi) oraz Time (czas pobierania). U góry widać wykres czasowy, który pokazuje, kiedy poszczególne żądania były wysyłane i jak długo trwało ich obsłużenie. To jest klasyczna analiza ruchu sieciowego między serwerem a przeglądarką, a nie testy funkcjonalne czy bezpieczeństwa. W praktyce takie narzędzie wykorzystuje się do diagnozowania problemów z wydajnością strony (np. które pliki ładują się najdłużej), do sprawdzania, czy wszystkie zasoby ładują się poprawnie (brak błędów 404, 500), do inspekcji nagłówków HTTP (np. cache-control, content-type, CORS), a także do podglądu zapytań AJAX / Fetch/XHR wysyłanych przez skrypty JavaScript. Moim zdaniem znajomość tej zakładki to absolutna podstawa pracy front-end developera i testera, bo pozwala szybko zweryfikować, co naprawdę dzieje się „pod maską” podczas ładowania strony i komunikacji klient–serwer. Dobre praktyki w branży zalecają regularne korzystanie z DevTools przy optymalizacji czasu ładowania, analizie błędów sieciowych oraz przy debugowaniu REST API czy komunikacji z backendem.

Pytanie 12

Jakie znaki <header>, <article>, <section>, <footer> są typowe dla tego języka?

A. HTML 4.01 Transitional
B. XHTML 1.1
C. HTML 4.01 Strict
D. HTML 5
Znaczniki <header>, <article>, <section>, <footer> są częścią specyfikacji HTML5, która wprowadziła bardziej semantyczne podejście do strukturyzacji dokumentów webowych. Te elementy umożliwiają programistom tworzenie bardziej przejrzystych i zrozumiałych dokumentów, zarówno dla ludzi, jak i dla maszyn. Na przykład, znacznik <header> definiuje nagłówek strony lub sekcji, <article> służy do oznaczania samodzielnych treści, które mogą być niezależnie dystrybuowane, <section> grupuje powiązane tematycznie elementy, a <footer> zawiera informacje o końcu strony lub sekcji. Użycie tych znaczników ma kluczowe znaczenie dla SEO, ponieważ wyszukiwarki mogą lepiej zrozumieć strukturę treści na stronie. Dodatkowo, zastosowanie tych elementów wspiera dostępność, ułatwiając nawigację osobom korzystającym z czytników ekranu. W praktyce, stosując te znaczniki, programiści tworzą bardziej uporządkowane i zrozumiałe strony, co jest zgodne z najlepszymi praktykami w branży.

Pytanie 13

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

A. aside {float: left; }
B. nav { float: right; }
C. nav { float: right; } section { float: right; }
D. nav { float: left; } aside { float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi.

Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego.

Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 14

Którego słowa kluczowego w C++ użyć przed typem, aby ograniczyć zakres do liczb NIEUJEMNYCH?

A.
long
B.
const
C.
short
D.
unsigned
Słowo unsigned przed typem całkowitym ogranicza go do liczb NIEUJEMNYCH (od zera w górę), za to dwukrotnie zwiększa górny zakres, bo nie rezerwuje bitu na znak - np. unsigned int. Dlatego nieujemny zakres daje unsigned.

Pytanie 15

Zdefiniowano char zm1; w C++. Jak poprawnie przypisać do niej wartość?

A.
zm1 = 'w';
B.
zm1[2] = 32;
C.
zm1 == 0x35;
D.
zm1 = "wiadro";
char mieści jeden znak w apostrofach. zm1[2] = 32; traktuje zmienną jak tablicę (indeks [2]), choć to pojedynczy znak. "wiadro" to łańcuch w cudzysłowie - nie zmieści się w jednym char. zm1 == 0x35 używa operatora PORÓWNANIA ==, a nie przypisania. Poprawne przypisanie znaku to zm1 = 'w';.

Pytanie 16

Tabela Pacjenci zawiera kolumny: imie, nazwisko, wiek, lekarz_id. Aby stworzyć raport, który będzie zawierał jedynie imiona oraz nazwiska pacjentów mających mniej niż 18 lat i zapisanych do lekarza o id równym 6, można wykorzystać kwerendę SQL

A. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 OR lekarz_id=6
B. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 AND lekarz_id=6
C. SELECT imie, nazwisko WHERE wiek<18 OR lekarz_id=6
D. SELECT imie, nazwisko WHERE wiek<18 AND lekarz_id=6
Aby uzyskać raport z tabeli Pacjenci, w którym znajdują się wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia zapisanych do lekarza o id równym 6, należy użyć następującej kwerendy SQL: SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 AND lekarz_id=6. Kluczowe w tej kwerendzie jest zastosowanie operatora AND, który pozwala na jednoczesne spełnienie obu warunków. W SQL, operator AND łączy dwa warunki, które muszą być prawdziwe, aby dany wiersz został uwzględniony w wynikach. Operator OR byłby nieodpowiedni, ponieważ mógłby zwrócić pacjentów, którzy są młodsi niż 18 lat, ale zapisani do innych lekarzy, co nie spełnia wymagań zadania. Ta kwerenda jest zgodna z ANSI SQL, który jest standardem dla zapytań do baz danych, a także dobrze ilustruje zasady filtracji danych w kontekście relacyjnych baz danych. Przykład takiej tabeli mógłby wyglądać następująco: imie: 'Jan', nazwisko: 'Kowalski', wiek: 17, lekarz_id: 6. W tym przypadku, zapytanie zwróciłoby imię i nazwisko Jana Kowalskiego, ponieważ spełnia on oba warunki.

Pytanie 17

Która funkcja SQL zwraca DŁUGOŚĆ (liczbę znaków) tekstu?

A.
UPPER
B.
NOW
C.
YEAR
D.
LEN
Pozostałe funkcje robią co innego. YEAR wyciąga ROK z daty, NOW zwraca bieżącą datę i czas, a UPPER zamienia litery na wielkie. Liczbę znaków tekstu zwraca LEN/LENGTH.

Pytanie 18

Aby dołączyć do skryptu PHP kod zawarty w osobnym pliku zewnętrznym, należy użyć funkcji:

A.
strlen()
B.
include()
C.
isset()
D.
str_replace()
Właściwa jest include(), ponieważ to jej zadaniem jest dołączenie do bieżącego skryptu kodu zapisanego w osobnym pliku. Interpreter PHP w miejscu wywołania wstawia zawartość wskazanego pliku tak, jakby ten kod był napisany w tym właśnie miejscu. Dzięki temu aplikację dzieli się na mniejsze, wielokrotnie używane części, np. wspólny nagłówek header.php, stopkę footer.php czy plik konfiguracyjny config.php. Pisze się to zwykle jako include 'header.php';. Pokrewne require działa podobnie, lecz przy braku pliku przerywa skrypt, a include() tylko ostrzega i kontynuuje działanie.

Pytanie 19

Aby przywrócić bazę danych MS SQL z kopii zapasowej, należy zastosować polecenie:

A.
REBACKUP DATABASE
B.
DBCC CHECKDB
C.
RESTORE DATABASE
D.
SAVE DATABASE
Pozostałe odpowiedzi nie odtwarzają bazy. DBCC CHECKDB to polecenie diagnostyczne - sprawdza spójność struktur bazy i wykrywa uszkodzenia, lecz niczego nie przywraca. SAVE DATABASE i REBACKUP DATABASE brzmią wiarygodnie, ale w MS SQL takich poleceń po prostu nie ma, więc serwer zwróciłby błąd. Odtworzenie bazy z wcześniej zapisanej kopii wykonuje RESTORE DATABASE, dlatego to ono jest poprawne.

Pytanie 20

W języku JavaScript funkcja matematyczna Math.pow() jest wykorzystywana do obliczania

A. potęgi liczby
B. bezwzględnej wartości liczby
C. przybliżonej wartości liczby
D. pierwiastka kwadratowego z liczby
Wybór wartości przybliżonej liczby jako odpowiedzi wskazuje na nieporozumienie dotyczące funkcji Math.pow(). Należy zaznaczyć, że funkcja ta nie wykonuje operacji związanej z zaokrąglaniem ani przybliżaniem liczb. W praktyce zaokrąglanie wartości liczbowych w JavaScript można osiągnąć za pomocą funkcji takich jak Math.round(), Math.ceil() czy Math.floor(). Wartości przybliżone są często mylone z potęgami, ale to zupełnie różne koncepcje. Podobnie, odpowiedź odnosząca się do wartości bezwzględnej jest myląca, ponieważ funkcja Math.pow() nie ma nic wspólnego z obliczaniem wartości bezwzględnej, co można zrobić za pomocą Math.abs(). Z kolei pierwiastek kwadratowy liczby, który można obliczyć, korzystając z Math.sqrt(), również nie jest funkcją powiązaną z potęgowaniem. Mylenie tych koncepcji często wynika z nieprecyzyjnego rozumienia funkcji matematycznych oraz ich zastosowania w programowaniu. Kluczowe jest zrozumienie, że Math.pow() jest specjalistycznym narzędziem do obliczania potęg, co różni się fundamentalnie od operacji takich jak zaokrąglanie, wartość bezwzględna czy pierwiastkowanie. Właściwe zrozumienie funkcji matematycznych ułatwia pisanie efektywnego i poprawnego kodu, zgodnie z najlepszymi praktykami inżynierii oprogramowania.

Pytanie 21

Wypisanie tekstu w języku JavaScript nie jest możliwe przy użyciu

A. funkcji MessageBox()
B. własności innerHTML
C. metody window.alert()
D. metody document.write()
Poprawnie wskazana została funkcja MessageBox(), bo w standardowym JavaScripcie działającym w przeglądarce taka funkcja po prostu nie istnieje. JavaScript udostępnia kilka mechanizmów do wypisywania tekstu, ale są one ściśle określone przez środowisko (głównie DOM i obiekt window), a nie przez jakieś ogólne, „systemowe” funkcje typu MessageBox.

Właściwość innerHTML należy do elementów DOM i służy do modyfikowania ich zawartości HTML. Przykład:

const div = document.getElementById('wynik');
div.innerHTML = 'Witaj w <b>JavaScript</b>';

To jest typowy, zgodny ze standardami sposób dynamicznej zmiany treści na stronie. W praktyce używa się go bardzo często, choć moim zdaniem lepiej w prostych przypadkach stosować textContent, bo jest bezpieczniejsze (nie interpretuje HTML-a, więc mniejsze ryzyko XSS).

Metoda window.alert() jest wbudowaną funkcją interfejsu przeglądarki. Wyświetla prosty modalny komunikat z przyciskiem OK. Przykład:

alert('Komunikat dla użytkownika');

W wielu poradnikach to pierwszy sposób „wypisania” czegokolwiek, bo od razu widać efekt. W profesjonalnych aplikacjach używa się go rzadko, raczej do szybkiego debugowania, bo blokuje interakcję z użytkownikiem.

Metoda document.write() pozwala wpisać tekst bezpośrednio do strumienia dokumentu HTML podczas jego ładowania:

document.write('Hello world');

Historycznie było to popularne, ale w nowoczesnych projektach uważa się to za złą praktykę. Po załadowaniu strony document.write() może nadpisać cały dokument, co jest mocno niepożądane. Lepszym standardem jest manipulacja DOM (np. innerHTML, createElement, appendChild).

Natomiast MessageBox() kojarzy się z funkcjami z innych środowisk (np. WinAPI, C#, VBA), ale w JavaScripcie w przeglądarce taka funkcja nie jest zdefiniowana w żadnym oficjalnym standardzie. Jeśli ktoś jej użyje bez własnej definicji, skończy się to błędem „MessageBox is not defined”. Dlatego właśnie ta odpowiedź jest poprawna – nie da się w czystym, standardowym JS wypisać tekstu przy użyciu funkcji MessageBox(), chyba że samemu ją wcześniej napiszemy, ale to już zupełnie inna historia.

Pytanie 22

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy:

SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Kraków';
Wskaź, które zapytanie zwróci te same dane.
A. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN 'Poznań' OR 'Kraków';```
B. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' OR miasto='Kraków';```
C. ```SELECT nazwisko, imie FROM mieszkancy AS 'Poznań' OR 'Kraków';```
D. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING 'Poznań' OR 'Kraków';```
Zapytanie SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' OR miasto='Kraków'; jest poprawne, ponieważ umożliwia uzyskanie danych mieszkańców, którzy znajdują się w jednym z dwóch zadanych miast. Użycie operatora 'OR' pozwala na połączenie dwóch warunków, co sprawia, że zapytanie zwróci mieszkańców zarówno z Poznania, jak i z Krakowa. Takie podejście jest zgodne z zasadami SQL i umożliwia elastyczne filtrowanie danych. Alternatywnie, zastosowanie operatora UNION ALL w pierwszym zapytaniu łączy wyniki z dwóch oddzielnych zapytań, co jest również poprawne, ale może być mniej wydajne w przypadku dużych zbiorów danych. Używając UNION ALL, zwracane są wszystkie wiersze, w tym duplikaty, natomiast w przypadku zapytania z OR, uzyskujemy wiersze spełniające przynajmniej jeden z warunków. Dobrą praktyką jest testowanie zapytań w rzeczywistej bazie danych, aby ocenić ich wydajność i poprawność. W kontekście standardów SQL, takie zapytania są zgodne z definicjami języka zapytań i są stosowane do przetwarzania danych w relacyjnych bazach danych.

Pytanie 23

Zmienna o typie integer lub int jest w stanie przechowywać

A. liczbę całkowitą
B. znak
C. łańcuch znaków
D. liczbę rzeczywistą
Odpowiedzi niepoprawne wskazują na mylne zrozumienie typów danych oraz ich zastosowania w programowaniu. Zmienna typu znakowego, która może przechowywać pojedynczy znak, nie jest odpowiednia dla wartości całkowitych, ponieważ nie reprezentuje liczby, lecz symbol. Przechowywanie znaków wymaga innego podejścia, które obejmuje typy danych takie jak char. Z kolei ciąg znaków, reprezentujący zestaw znaków, również nie nadaje się do przechowywania liczb całkowitych. Takie podejście prowadzi do nieporozumień dotyczących zarządzania danymi, ponieważ programy operujące na ciągach muszą konwertować te wartości do formatu liczbowego przed przeprowadzeniem kalkulacji, co wprowadza dodatkowe komplikacje i obniża wydajność. Ponadto, zmienne typu liczba rzeczywista, takie jak float czy double, są używane do przechowywania wartości z częścią dziesiętną, co również nie pasuje do definicji zmiennej integer, która ma na celu wyłącznie reprezentację liczb całkowitych. Tego typu pomyłki mogą wynikać z niepełnego zrozumienia struktury danych oraz podstawowych koncepcji programowania, co podkreśla znaczenie solidnej edukacji w zakresie typów danych i ich zastosowań w praktyce. Właściwe dobieranie typów danych jest kluczowe dla efektywności aplikacji oraz unikania błędów podczas ich działania.

Pytanie 24

Określ właściwą sekwencję stylów CSS, biorąc pod uwagę ich priorytet w formatowaniu elementów strony WWW?

A. Styl wewnętrzny, Styl zewnętrzny, Rozciąganie stylu
B. Styl lokalny, Styl wewnętrzny, Styl zewnętrzny
C. Rozciąganie stylu, Styl zewnętrzny, Styl lokalny
D. Styl zewnętrzny, Wydzielone bloki, Styl lokalny
Analizując inne odpowiedzi, można zauważyć, że w wielu przypadkach nie uwzględniają one podstawowych zasad kaskadowości CSS. Przykładowo, pierwsza odpowiedź sugeruje, że styl wewnętrzny powinien mieć pierwszeństwo przed zewnętrznym, co jest niepoprawne. W rzeczywistości, style zewnętrzne, które są ładowane z zewnętrznych arkuszy stylów, mogą być nadpisywane przez style lokalne i wewnętrzne, ale nie powinny być ignorowane w kontekście hierarchii. Następnie, opcja odnosząca się do wydzielonych bloków w kontekście stylów CSS nie ma podstaw teoretycznych, ponieważ nie istnieje uznawana terminologia w standardach CSS, która opisywałaby 'wydzielone bloki'. Każdy styl w CSS ma swoje miejsce w kolejności kaskadowej, a style lokalne powinny być definiowane jako najwyższe w hierarchii. Może to prowadzić do nieporozumień, zwłaszcza w przypadku początkujących programistów, którzy mogą nie rozumieć, dlaczego ich style zewnętrzne nie działają zgodnie z oczekiwaniami. Ważne jest, aby pamiętać, że odpowiednia specyfikacja i zrozumienie, które style mają pierwszeństwo, są kluczowe dla skutecznego i efektywnego projektowania stron internetowych. W przeciwnym razie, projektanci mogą napotkać problemy z nieoczekiwanym zachowaniem stylów oraz trudnościami w utrzymaniu i aktualizacji kodu CSS.

Pytanie 25

Którego polecenia SQL użyć, aby utworzyć tabelę?

A.
ADD TABLE
B.
ALTER TABLE
C.
CREATE TABLE
D.
INSERT TABLE
Nową tabelę tworzy polecenie CREATE TABLE, po którym podaje się nazwę i definicje kolumn. Należy do języka definicji danych (DDL). Dlatego do utworzenia tabeli służy CREATE TABLE.

Pytanie 26

W języku HTML zapisano formularz. Który z efektów działania kodu będzie wyświetlony przez przeglądarkę zakładając, że w drugie pole użytkownik wpisał wartość "ala ma kota"?

<form>
  <select>
    <option value="v1">Kraków</option>
    <option value="v2">Poznań</option>
    <option value="v3">Szczecin</option>
  </select> <br>
  <input type="password" />
</form>


Kraków
Poznań
Szczecin
Efekt 1

Efekt 2

Efekt 3
Kraków
Poznań
Szczecin
Efekt 4
A. Efekt 3.
B. Efekt 1.
C. Efekt 2.
D. Efekt 4.
Pozostałe odpowiedzi nie są poprawne, ponieważ nie odpowiadają one opisowi działania kodu HTML formularza. W przypadku odpowiedzi 'Efekt 1', 'Efekt 3' oraz 'Efekt 4', możemy zauważyć, że nie są one zgodne z opisanym działaniem formularza. W HTML, pole hasła reprezentowane jest jako ciąg znaków zastępczych - kropeczki. Przy wpisaniu 'ala ma kota' do pola hasła, nie jesteśmy w stanie zobaczyć tej wartości, tylko kropeczki. Przy wyborze odpowiedzi 'Efekt 1', 'Efekt 3' lub 'Efekt 4', musielibyśmy zobaczyć wpisaną wartość 'ala ma kota' zamiast kropeczek, co jest niezgodne ze standardami HTML. Dlatego też, odpowiedzi te są nieprawidłowe. Pamiętaj, że ważne jest zrozumienie, jak działają różne elementy formularza w HTML, aby poprawnie przewidzieć efekt ich działania w przeglądarce.

Pytanie 27

Przedstawiona linia kreskowa w stylu obramowania CSS jest określona własnością

Ilustracja do pytania
A. dashed
B. doted
C. double
D. solid
Niestety ta odpowiedź jest niepoprawna. Styl linii kreskowej w CSS jest określany właściwością 'dashed', a nie 'double', 'dotted' ani 'solid'. Każdy styl ma swoje specyficzne zastosowanie i efekt wizualny. 'Double' tworzy podwójną linię obramowania, co może być używane do podkreślenia pewnych elementów na stronie. 'Dotted' tworzy obramowanie z małych kropek, co może dodać subtelnego akcentu do wyglądu strony. Z kolei 'solid' tworzy ciągłą linię, która jest najczęściej używanym stylem obramowania, ze względu na jego prostotę i czytelność. Wszystkie te style mają swoje miejsce w projektowaniu stron internetowych, jednak kluczowe jest zrozumienie, kiedy i gdzie ich używać. Błędne jest zakładanie, że wszystkie style linii są zamienne. Każdy z nich ma swoje specyficzne zastosowanie i nieprawidłowe ich użycie może prowadzić do nieporządku i niejednoznaczności w designie.

Pytanie 28

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

A. transakcja może w pewnych okolicznościach być rozdzielona na dwa niezależne etapy
B. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od tego, co się wydarzy po jej zakończeniu
C. w sytuacji naruszenia spójności bazy danych transakcja eliminuje tabele z kluczami obcymi
D. w trakcie realizacji transakcji dane mogą być zmieniane przez inne transakcje
Wymóg trwałości (durability) w kontekście właściwości ACID oznacza, że po zatwierdzeniu transakcji, wszystkie zmiany dokonane na danych muszą być utrwalone w trwałym magazynie danych, a ich dostępność nie może być zagrożona przez awarie systemu, takie jak utrata zasilania czy awarie oprogramowania. Przykładem może być system bankowy, gdzie po wykonaniu operacji przelewu, saldo konta musi być natychmiastowo zaktualizowane i dostępne w systemie, niezależnie od tego, co wydarzy się później. W praktyce, wiele systemów zarządzania bazami danych, takich jak PostgreSQL czy MySQL, wykorzystuje mechanizmy logowania transakcji oraz techniki replikacji, aby zapewnić, że dane pozostaną spójne i dostępne nawet w obliczu kryzysów. Zgodność z zasadą trwałości jest kluczowa dla utrzymania zaufania użytkowników i stabilności operacyjnej systemów informacyjnych, co jest wspierane przez standardy takie jak ISO/IEC 27001 dotyczące zarządzania bezpieczeństwem informacji.

Pytanie 29

W standardzie HDTV wykorzystywana jest rozdzielczość

A. 1920 x 1080 px
B. 1280 x 1024 px
C. 720 x 480 px
D. 704 x 576 px
Rozdzielczości 1280 x 1024 px, 704 x 576 px oraz 720 x 480 px nie spełniają kryteriów standardu HDTV, co jest kluczowe do zrozumienia. Rozdzielczość 1280 x 1024 px jest typowa dla monitorów komputerowych, a jej proporcje wynoszą 4:3, co już nie odpowiada współczesnym standardom wideo, które preferują szerokoekranowe proporcje 16:9. W przypadku 704 x 576 px, to rozdzielczość ta była stosowana w analogowej telewizji PAL, która nie oferuje tej samej jakości obrazu co cyfrowe standardy. Z kolei 720 x 480 px to rozdzielczość standardu DVD, który, mimo że był powszechnie używany, nadal nie osiąga jakości Full HD. Błędne rozumienie standardów rozdzielczości może prowadzić do niezadowolenia z jakości obrazu, gdy użytkownik oczekuje wyraźniejszego i bardziej szczegółowego obrazu. W dobie wzrostu popularności treści wideo w rozdzielczości Full HD, wybór niższych rozdzielczości, które są niezgodne z wymaganiami HDTV, może ograniczać przyjemność z oglądania. Zrozumienie tych rozdzielczości oraz ich zastosowania w różnych technologiach jest kluczowe dla świadomego wyboru sprzętu oraz treści, które chcemy konsumować.

Pytanie 30

Interpreter PHP zgłosi błąd i nie zrealizuje kodu, jeśli programista:

A. będzie definiował zmienne w obrębie warunku
B. będzie pisać kod bez zastosowania wcięć
C. pobierze dane z formularza, w którym pole input pozostało puste
D. nie umieści średnika po wyrażeniu w instrukcji if, gdy po nim występuje sekcja else
W przypadku instrukcji warunkowej if w PHP, każdy blok kodu, który jest wykonywany w przypadku prawdziwego warunku, powinien być poprawnie zakończony średnikiem, z wyjątkiem konstrukcji, które są wstawiane bezpośrednio w ramy instrukcji, jak else. Jeżeli programista nie postawi średnika po wyrażeniu if, a następnie użyje sekcji else, to interpreter PHP zgłosi błąd składniowy. Jest to istotne, ponieważ każda linia kodu w PHP, która wykonuje jakąkolwiek operację, musi być zakończona średnikiem, co jest standardową praktyką w językach programowania. Przykład poprawnej konstrukcji: if ($warunek) { // kod } else { // kod }. W przypadku braku średnika może to prowadzić do nieprzewidzianych błędów w kodzie, co z kolei wpłynie na stabilność aplikacji. Przestrzeganie takich zasad jest kluczowe dla osiągnięcia dobrej jakości kodu oraz jego łatwości w utrzymaniu.

Pytanie 31

Jaka wartość zostanie wypisana na standardowym wyjściu dla zamieszczonego w ramce fragmentu programu napisanego w języku C++ ?

int obliczenia( int x ){
    x %= 3;
    x++;
    return x;
}

int main( ){
    std::cout << obliczenia(32);
}
A. 0
B. 32
C. 3
D. 2
Niestety, to nie jest to. Wybranie niewłaściwej opcji oznacza, że mogłeś nie do końca zrozumieć, jak działają operatory w C++. Mamy tu funkcję 'obliczenia', która przyjmuje 32 jako wartość dla 'x'. Potem 'x' jest zmieniane przez operację modulo (x %= 3). Ta operacja daje nam resztę z dzielenia przez 3, czyli 2. Jeżeli wybrałeś opcję 2, to może umknął ci krok, w którym 'x' jest zwiększane o 1 (x++). Na końcu dostajemy 3, a to jest wynik, który funkcja zwraca. Jeśli wybrałeś opcję 32, mógłbyś błędnie założyć, że argument funkcji się nie zmienia, a tak nie jest. 'x' jest zmieniane wewnątrz funkcji. A jak wybrałeś opcję 0, to pewnie zrozumiałeś źle, jak działa operator modulo. To nie daje wyniku dzielenia, tylko resztę. Staraj się pamiętać o tych zasadach, bo są istotne w dalszym programowaniu.

Pytanie 32

W sekcji <head> (w elemencie <meta ... >) witryny www nie umieszcza się danych dotyczących

A. kodowania
B. autora
C. typu dokumentu
D. automatycznego odświeżania
Umieszczanie informacji o autorze, kodowaniu oraz automatycznym odświeżaniu w znaczniku <head> jest praktyką zgodną ze standardami, jednak występują nieporozumienia co do roli i miejsca deklaracji typu dokumentu. Wiele osób może błędnie zakładać, że typ dokumentu można umieścić w sekcji <head>, co jest nieprawidłowe. Deklaracja DOCTYPE, która informuje przeglądarkę o wersji HTML, musi być umieszczona przed znacznikiem <html> w kodzie. Tymczasem w sekcji <head> umieszczamy metadane, które mają bezpośredni wpływ na interpretację zawartości strony i jej interakcję z użytkownikami oraz wyszukiwarkami. Często popełnianym błędem jest mylenie tych dwóch elementów, co prowadzi do nieprawidłowego kodowania strony. Odpowiednie zrozumienie struktury dokumentu HTML jest kluczowe dla jego prawidłowego funkcjonowania; nieprawidłowe umiejscowienie deklaracji DOCTYPE może prowadzić do nieoczekiwanych zachowań w przeglądarkach, takich jak błędy w renderowaniu lub problemy z kompatybilnością. Dlatego ważne jest, aby znać zasady dotyczące tworzenia struktury dokumentów HTML, co przyczynia się do lepszej jakości kodu oraz większej wydajności stron internetowych.

Pytanie 33

W języku SQL, aby wybrać wszystkie rekordy z tabeli B, w tym część wspólną z tabelą A, należy zastosować typ związku

Ilustracja do pytania
A. A FULL OUTER JOIN B
B. A RIGHT JOIN B
C. A INNER JOIN B
D. A LEFT JOIN B
Poprawnie – w tym zadaniu kluczowe jest zrozumienie, że interesuje nas **wszystko z tabeli B**, a dodatkowo – tam gdzie się da – dokładamy dane z tabeli A. Dokładnie tak działa `RIGHT JOIN` zapisany jako `A RIGHT JOIN B ON ...`. Prawa tabela w zapisie JOIN (czyli B) jest zawsze tą „obowiązkową”: dostajemy wszystkie jej wiersze, a dane z lewej (A) pojawiają się tylko tam, gdzie warunek łączenia jest spełniony. Tam gdzie dopasowania w A nie ma, kolumny z A przyjmują wartość `NULL`. To dokładnie odpowiada zielonemu obszarowi na diagramie – cała B plus część wspólna A∩B.
W praktyce taki RIGHT JOIN przydaje się np. gdy tabela B jest tabelą główną (np. `Zamowienia`), a tabela A jest pomocnicza (np. `Klienci_archiwalni`), ale z jakiegoś powodu w zapytaniu chcemy właśnie B mieć „gwarantowaną” – czyli nawet jeśli w A brakuje powiązanego rekordu, zamówienie i tak ma się pojawić w wynikach. Przykładowo:
`SELECT * FROM Klienci_archiwalni A RIGHT JOIN Zamowienia B ON A.id_klienta = B.id_klienta;`
Dobra praktyka w SQL mówi, że częściej stosuje się `LEFT JOIN`, bo jest czytelniejszy (łatwiej myśleć: „biorę wszystko z lewej”), ale logicznie RIGHT JOIN robi to samo, tylko „odwraca perspektywę”. Wiele zespołów wręcz zaleca, żeby zamiast RIGHT JOIN przepisać zapytanie tak, by użyć LEFT JOIN i zamienić kolejność tabel – ale na egzaminach i w testach warto znać oba. Moim zdaniem dobrze jest też od razu kojarzyć: `LEFT JOIN` – wszystko z lewej, `RIGHT JOIN` – wszystko z prawej, `INNER JOIN` – tylko przecięcie, `FULL OUTER JOIN` – suma zbiorów. Dzięki temu każde zadanie z diagramem Venna w SQL robi się dużo prostsze i mniej mylące.

Pytanie 34

Które polecenie SQL zmieni w tabeli tab wartość w kolumnie kol z „Ania” na „Zosia”?

A.
ALTER TABLE tab CHANGE kol = 'Ania' kol = 'Zosia';
B.
ALTER TABLE tab CHANGE kol = 'Zosia' kol = 'Ania';
C.
UPDATE tab SET kol = 'Zosia' WHERE kol = 'Ania';
D.
UPDATE tab SET kol = 'Ania' WHERE kol = 'Zosia';
Pozostałe zapisy są błędne lub odwrotne. Wariant SET kol = 'Ania' WHERE kol = 'Zosia' robi zamianę w drugą stronę. ALTER TABLE ... CHANGE służy do zmiany STRUKTURY (np. nazwy kolumny), a nie wartości w wierszach. Poprawne jest UPDATE tab SET kol = 'Zosia' WHERE kol = 'Ania';.

Pytanie 35

Podaj właściwą sekwencję przy tworzeniu bazy danych?

A. Zdefiniowanie celu, normalizacja, utworzenie tabel, stworzenie relacji
B. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
C. Zdefiniowanie celu, utworzenie relacji, stworzenie tabel, normalizacja
D. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
Niepoprawne odpowiedzi często pomijają kluczowe kroki lub nieprawidłowo je kolejkują. Ważne jest, aby zrozumieć, że określenie celu przed rozpoczęciem jakiejkolwiek pracy nad bazą danych jest fundamentem, na którym opiera się cały proces projektowania. Pominienie tego kroku, jak w przypadku odpowiedzi, która sugeruje rozpoczęcie od stworzenia tabel, prowadzi do stworzenia struktury, która może nie odpowiadać rzeczywistym potrzebom użytkowników. Z kolei utworzenie relacji przed normalizacją może skutkować nieefektywnymi powiązaniami między danymi, co w dłuższej perspektywie prowadzi do problemów z integralnością danych. W praktyce, normalizacja powinna być przeprowadzana po utworzeniu relacji, aby można było odpowiednio zoptymalizować strukturę bazy. Często spotykanym błędem jest także mylenie etapy projektowania bazy danych z jej implementacją, co skutkuje brakiem klarowności w dalszych pracach. Kluczowe jest, aby każdy etap był przemyślany i oparty na solidnych podstawach analitycznych, co pozwala na uniknięcie problemów w przyszłości związanych z wydajnością i skalowalnością bazy danych.

Pytanie 36

Aby zmienić strukturę tabeli w bazie danych MySQL, należy użyć komendy

A. UPDATE
B. ALTER TABLE
C. GRANT
D. INSERT INTO
Odpowiedź 'ALTER TABLE' jest poprawna, gdyż to polecenie w MySQL służy do modyfikacji struktury istniejącej tabeli. Dzięki niemu możemy dodawać nowe kolumny, zmieniać typy danych kolumn, usuwać kolumny, a także zmieniać właściwości tabeli, takie jak klucze główne czy unikalne. Przykład zastosowania polecenia ALTER TABLE to dodanie kolumny do tabeli: 'ALTER TABLE pracownicy ADD COLUMN wiek INT;' co skutkuje dodaniem kolumny 'wiek' o typie INT do tabeli 'pracownicy'. Zgodnie z najlepszymi praktykami, przed wykonaniem takich operacji warto wykonać kopię zapasową bazy danych, aby uniknąć utraty danych w przypadku nieprawidłowego wykonania polecenia. Używanie ALTER TABLE jest kluczowe podczas rozwoju aplikacji, gdyż często zachodzi potrzeba dostosowania struktury bazy danych do zmieniających się wymagań biznesowych.

Pytanie 37

Co powinien umożliwiać edytor działający w trybie WYSIWYG?

A. uzyskanie wyglądu strony zbliżonego do jej obrazu w przeglądarce
B. obróbkę plików dźwiękowych
C. publikację strony przez wbudowany klient FTP
D. tworzenie podstawowej grafiki wektorowej
WYSIWYG (What You See Is What You Get) oznacza, że podczas edycji widać efekt zbliżony do finalnego wyglądu strony w przeglądarce - bez konieczności pisania kodu i podglądania osobno. Dlatego edytor WYSIWYG ma dawać wygląd zbliżony do obrazu strony w przeglądarce.

Pytanie 38

Jaki znak (lub znaki) rozpoczyna komentarz jednoliniowy w języku JavaScript?

A.
<!--
B.
//
C.
<?
D.
#
W JavaScript komentarz jednoliniowy rozpoczyna się od // - wszystko za nim, do końca wiersza, interpreter pomija. Komentarz wieloliniowy ujmuje się natomiast w /* ... */. Komentarze służą do opisu kodu i czasowego wyłączania fragmentów; nie wpływają na działanie programu. Dlatego komentarz jednoliniowy w JS otwiera //.

Pytanie 39

Element lub zestaw elementów, który jednoznacznie identyfikuje każdy pojedynczy rekord w tabeli bazy danych, nazywamy kluczem

A. obcy
B. inkrementacyjny
C. podstawowy
D. przestawny
Klucz podstawowy (ang. primary key) jest to pole lub zbiór pól w tabeli bazy danych, które jednoznacznie identyfikują każdy row w tej tabeli. Klucz podstawowy nie może zawierać wartości NULL i musi być unikalny dla każdego rekordu, co zapewnia integralność danych w bazie. Przykładem klucza podstawowego może być identyfikator użytkownika w tabeli użytkowników, gdzie każdy użytkownik ma unikalny numer ID. Zgodnie z normami projektowania baz danych, klucz podstawowy powinien być prosty, a jego wartość nie powinna się zmieniać w czasie, aby zachować stabilność odniesień do tego rekordu w innych tabelach. W dobrych praktykach projektowania baz danych dla kluczy podstawowych często stosuje się typy danych takie jak INTEGER z automatycznym inkrementowaniem, co umożliwia wygodne dodawanie nowych rekordów bez ryzyka kolizji wartości. Używanie kluczy podstawowych ułatwia również tworzenie relacji z innymi tabelami, znanych jako klucze obce, co jest fundamentem relacyjnych baz danych.

Pytanie 40

Wskaż wynik wykonania skryptu napisanego w języku PHP

<?php
$tablica = array(10 => "Perl", 14 => "PHP", 20 => "Python", 22 => "Pike");
asort($tablica);
print("<pre>");
print_r($tablica);
print("</pre>");
?>
A
Array
(
    [14] => PHP
    [10] => Perl
    [22] => Pike
    [20] => Python
)
B
Array
(
    [0] => PHP
    [1] => Perl
    [2] => Pike
    [3] => Python
)
C
Array
(
    [0] => Python
    [1] => Pike
    [2] => Perl
    [3] => PHP
)
D
Array
(
    [10] => Perl
    [14] => PHP
    [20] => Python
    [22] => Pike
)
A. C.
B. A.
C. D.
D. B.
Nieźle to ogarnąłeś z tym skryptem w PHP i funkcją asort(). Fajnie, że rozumiesz, jak działa ta tablica asocjacyjna z czterema elementami. Widzisz, asort() sortuje wartości, ale nie zmienia kluczy, co jest super przydatne. Po wykonaniu tej funkcji dostajemy na przykład: `[14] => PHP`, `[10] => Perl`, `[22] => Pike`, `[20] => Python`. Zrozumienie tego, jak to działa, naprawdę pomaga, gdy tworzysz bardziej skomplikowane aplikacje, które muszą porządkować dane. Polecam też zerknąć na inne funkcje sortujące w PHP, bo każda z nich ma swój styl i może znacznie ułatwić Ci życie jako programiście.