Wyniki egzaminu

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

Egzamin zdany!

Wynik: 30/40 punktów (75,0%)

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 HTML, aby uzyskać następujący efekt formatowania
pogrubiony pochylony lub w górnym indeksie
należy zapisać kod:

A. <i>pogrubiony </i><b>pochylony </b>lub w <sub>górnym indeksie</sub>
B. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
C. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
D. <b>pogrubiony <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
Odpowiedź, w której użyłeś znaczników <b> i <i> w odpowiednich miejscach, jest całkiem dobra. Znak <b> jest świetny do pogrubiania tekstu, co przydaje się, gdy chcesz podkreślić coś ważnego. Natomiast <i> pozwala na pochylanie tekstu, co dodaje mu charakteru i może sugerować cytaty czy tytuły. Co ciekawe, znacznik <sup> stosujemy, gdy chcemy pokazać górny indeks, np. przy potęgach czy jednostkach miar. Przykład takiego użycia byłby taki: <b>Waga</b> <i>w kilogramach</i> wynosi <sup>2</sup> dla dwóch jednostek. Jak widać, stosowanie HTML w odpowiedni sposób pozwala robić czytelne i estetyczne prezentacje, co jest zgodne z dobrymi praktykami w web designie oraz standardami W3C. Warto też pamiętać, że dobrze dobrane znaczniki mają znaczenie nie tylko wizualne, ale także pomagają w indeksowaniu treści przez wyszukiwarki, co z kolei wpływa na SEO.

Pytanie 2

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, int wynik);
B. int potega(int x, int w);
C. void potega(int x, int w);
D. int potega(int x);
Zgadzasz się, że 'int potega(int x, int w);' to trafna odpowiedź. Funkcja do potęgowania faktycznie potrzebuje dwóch rzeczy: podstawy x i wykładnika w, a na końcu powinna zwrócić liczbę całkowitą, która jest wynikiem potęgowania. Jakby to wyglądało w praktyce? Można by to napisać jako 'int potega(int x, int w) { return pow(x, w); }'. Przy czym 'pow' pochodzi z biblioteki cmath i robi te wszystkie magiczne obliczenia. Ważne jest, by przy projektowaniu funkcji myśleć o ich użyteczności, czyli żeby miały jasno określone wejście i wyjście. A jak już mówimy o potęgowaniu, to musimy też pamiętać o specjalnych przypadkach, jak potęgowanie zera do zera, które w matematyce jest równe 1. Dlatego dobrze zrobiona funkcja powinna to uwzględniać. W programowaniu kluczowe jest, by obliczenia były efektywne i poprawne, zwłaszcza w naukowych i inżynieryjnych projektach, gdzie precyzja jest bardzo istotna.

Pytanie 3

Jakie sformułowanie najlepiej opisuje metodę POST do przesyłania formularzy?

A. Jest zalecana, gdy przesyłane są dane poufne, na przykład hasło, numer telefonu lub numer karty kredytowej
B. Dane są przesyłane przez adres URL, co czyni je widocznymi dla użytkownika
C. Ma dodatkowe ograniczenia związane z długością adresu - maksimum 255 znaków
D. Może być zarejestrowana jako zakładka w przeglądarce internetowej
Metoda POST jest jedną z podstawowych metod przesyłania danych w protokole HTTP, której głównym celem jest umożliwienie przesyłania dużych objętości danych, w tym informacji poufnych. Gdy używamy metody POST do wysyłania formularzy, dane nie są widoczne w adresie URL, co czyni tę metodę bardziej odpowiednią do przesyłania wrażliwych informacji, takich jak hasła, numery kart kredytowych czy dane osobowe. W przeciwieństwie do metody GET, która dodaje dane do adresu URL, metoda POST przesyła je w ciele zapytania, co ogranicza ryzyko przypadkowego ujawnienia informacji. Standardy bezpieczeństwa w branży webowej zalecają użycie metody POST do wszelkich operacji, które zmieniają stan serwera, jak dodawanie użytkowników, logowanie czy przesyłanie informacji finansowych. Przykładem może być formularz logowania, w którym dane użytkownika są przesyłane do serwera w sposób niewidoczny dla osób trzecich, co minimalizuje ryzyko przechwycenia tych informacji przez złośliwe oprogramowanie.

Pytanie 4

Który z poniższych formatów plików graficznych wspiera przejrzystość?

A. NEF
B. PNG
C. JPG
D. BMP
Format PNG (Portable Network Graphics) jest jednym z najpopularniejszych formatów plików graficznych obsługujących przezroczystość. Jego główną zaletą jest możliwość zachowania kanału alfa, który umożliwia tworzenie obrazów z przezroczystymi elementami. PNG wykorzystuje bezstratną kompresję, co oznacza, że jakość obrazu nie ulega pogorszeniu podczas zapisywania i otwierania pliku. Format ten jest szczególnie ceniony w aplikacjach internetowych, ponieważ pozwala na uzyskanie estetycznych efektów, takich jak cienie, przezroczystość i delikatne przejścia kolorów. Warto również zauważyć, że PNG obsługuje głębię kolorów do 48 bitów, co umożliwia uzyskanie bogatych i szczegółowych obrazów. Standard PNG został opracowany w 1996 roku jako alternatywa dla formatu GIF, który był ograniczony do 256 kolorów oraz nie obsługiwał przezroczystości w sposób, który byłby zadowalający dla projektantów. Dzięki swoim właściwościom, PNG jest szeroko stosowany w grafice komputerowej, w tym w tworzeniu logo, ikon oraz w elementach interfejsów użytkownika, a także w fotografii cyfrowej, gdzie zachowanie jakości jest kluczowe.

Pytanie 5

W relacyjnym modelu danych, krotki definiuje się jako

A. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
B. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
C. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
D. liczbę rekordów w tabeli
Krotka to taki ważny element w relacyjnych bazach danych, który odnosi się do konkretnych rekordów w tabeli. Każda krotka to jakby zestaw informacji, który dotyczy jednej jednostki, na przykład pojedynczego użytkownika w tabeli 'Użytkownicy'. Zawiera wartości atrybutów, które są przypisane do kolumn w tabeli. Te wartości są przechowywane w wierszach, a nagłówek z nazwami kolumn nie wchodzi w grę, jeśli chodzi o definicję krotek. Na przykład, w tabeli dotyczącej studentów, każdy wiersz mógłby zawierać dane jednego studenta, takie jak imię, nazwisko, wiek czy kierunek studiów. Myślę, że zrozumienie, czym jest krotka, jest kluczowe, żeby dobrze projektować bazy danych i używać SQL, bo w nim operacje na krotkach to podstawa większości zapytań. W praktyce, krotki pomagają również tworzyć relacje między tabelami w bazie danych, gdzie można je wykorzystać do przedstawiania powiązań między różnymi obiektami, na przykład 'Studenci' i 'Kursy'.

Pytanie 6

Grafik chce przekształcić bez utraty jakości obraz formatu JPEG w format PNG w ten sposób, żeby wszędzie tam, gdzie w pierwotnym obrazie jest kolor biały, w obrazie docelowym była przezroczystość. Aby to zrobić, powinien

A. przekształcić obraz w odcienie szarości.
B. dodać kanał alfa.
C. zaimportować obraz do edytora grafiki wektorowej.
D. zmniejszyć rozdzielczość obrazu.
Prawidłowa odpowiedź wynika z samej idei przezroczystości w grafice rastrowej. Żeby w PNG jakikolwiek piksel mógł być przezroczysty, obraz musi mieć kanał alfa, czyli dodatkową składową opisującą stopień przeźroczystości (opacity) dla każdego piksela. Standardowe RGB ma trzy kanały: R (czerwony), G (zielony), B (niebieski). Format PNG bardzo często używa wariantu RGBA, gdzie A (alpha) definiuje, na ile piksel jest widoczny: 0 oznacza całkowitą przezroczystość, 255 (albo 1.0 przy wartościach zmiennoprzecinkowych) pełną nieprzezroczystość. Dopiero po dodaniu kanału alfa można w programie graficznym zaznaczyć wszystkie białe obszary i ustawić im wartość alfa na 0. To właśnie realizuje wymaganie: „tam gdzie biały – ma być przezroczystość”. Z mojego doświadczenia w pracy z grafiką na potrzeby WWW, typowy workflow wygląda tak: otwierasz JPEG w edytorze rastrowym (np. GIMP, Photoshop, Krita), konwertujesz obraz do trybu z kanałem alfa (w Photoshopie: „Layer > New > Layer from Background” i „Add Layer Mask” albo „Add Alpha Channel” w GIMP-ie), następnie za pomocą narzędzia zaznaczania koloru (Magic Wand / Select by Color) wybierasz białe fragmenty i je usuwasz lub zmniejszasz im krycie. Dopiero potem zapisujesz jako PNG, który natywnie wspiera przezroczystość zgodnie ze specyfikacją formatu. Ważne też, że przy takim przekształceniu nie zwiększasz strat kompresji, bo PNG jest formatem bezstratnym. Straty są już w JPEG-u i ich się nie cofnie, ale samo przejście do PNG z kanałem alfa nie pogorszy jakości bardziej. W praktyce to jest standardowa procedura przygotowania ikon, logotypów i elementów UI na strony WWW, gdzie tło strony „prześwituje” przez przezroczyste fragmenty grafiki.

Pytanie 7

Funkcją zaprezentowanego kodu PHP jest napełnienie tablicy $tab 10 losowymi liczbami z przedziału od -100 do 100, a następnie wypisanie liczb ujemnych. Kod prezentuje się następująco:

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

foreach ($tab as $x)
{
    if ($x < 0)
        echo "$x ";
}
A. kolejnymi liczbami od -100 do 100 oraz wypisanie liczb ujemnych
B. 100 losowymi liczbami, a następnie wypisanie liczb dodatnich
C. kolejnymi liczbami od 0 do 9 i ich wyświetlenie
D. 10 losowymi wartościami, a następnie wypisanie liczb ujemnych
Przedstawiony kod w języku PHP ma na celu wypełnienie tablicy dziesięcioma losowymi wartościami i wypisanie tych, które są ujemne. Funkcja rand(-100, 100) generuje liczby losowe z zakresu od -100 do 100. W pętli for wykonujemy dziesięć iteracji, co umożliwia dodanie dziesięciu takich liczb do tablicy. Następnie, za pomocą pętli foreach, iterujemy przez wszystkie elementy tablicy. Instrukcja warunkowa if sprawdza, czy każda z wartości jest mniejsza od zera. Jeśli warunek jest spełniony, liczba jest wypisywana na ekran. Takie podejście jest często stosowane w programowaniu, gdy wymagana jest praca z losowymi danymi w celu testowania lub symulacji. W praktycznych zastosowaniach można użyć tej metody do filtrowania danych lub analizy wyników eksperymentalnych, gdzie konieczne jest zidentyfikowanie i obsługa wartości o określonych właściwościach. Dobre praktyki programistyczne nakazują dokumentowanie takich fragmentów kodu, aby ułatwić zrozumienie i utrzymanie projektu przez innych deweloperów.

Pytanie 8

W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie

A. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
B. wszystkie operacje na bazach danych serwera
C. zakładanie użytkowników serwera oraz definiowanie ich haseł
D. nadzór nad serwerem
Wybór odpowiedzi, która sugeruje, że rola DBManager przyznaje prawa do monitorowania serwera, tworzenia użytkowników serwera oraz wykonywania wszystkich operacji na bazach danych i użytkownikach, może prowadzić do mylnych wniosków na temat rzeczywistych możliwości tej roli. Monitorowanie serwera jako funkcja nie jest bezpośrednio związane z rolą DBManager. Chociaż monitorowanie jest istotnym aspektem zarządzania bazami danych, odpowiednie uprawnienia związane z tą funkcjonalnością są przyznawane innym rolom lub użytkownikom posiadającym konkretne przywileje, takie jak rola DBMonitor. Tworzenie użytkowników serwera i ustawianie im haseł również wykracza poza standardowe uprawnienia roli DBManager. Zwykle te czynności są przypisane administratorom systemu, którzy mają kontrolę nad bezpieczeństwem całego środowiska bazodanowego. Odpowiedzi sugerujące możliwość wykonywania wszelkich operacji na bazach danych i użytkownikach mogą sugerować, że rola DBManager obejmuje pełne uprawnienia administracyjne, co nie jest zgodne z praktykami bezpieczeństwa, które zalecają ograniczanie uprawnień w oparciu o zasadę najmniejszych uprawnień. Takie zrozumienie jest kluczowe, ponieważ przyznawanie zbyt szerokich uprawnień może prowadzić do luk w zabezpieczeniach i nadużyć, co narusza standardy zarządzania danymi i bezpieczeństwa w organizacjach. Dlatego ważne jest, aby dokładnie rozumieć zakres dostępnych ról i ich odpowiedzialności, aby zapewnić właściwe zarządzanie dostępem i bezpieczeństwem danych.

Pytanie 9

Jak utworzyć w PHP cookie o nazwie "owoce" i wartości "jabłko", ważne przez godzinę?

A.
cookie("jabłko", "owoce", 3600);
B.
cookie("owoce", "jabłko", 3600);
C.
setcookie("jabłko", "owoce", time()+3600);
D.
setcookie("owoce", "jabłko", time()+3600);
Cookie tworzy w PHP funkcja setcookie(nazwa, wartość, czas_wygaśnięcia), przy czym czas podaje się jako moment w przyszłości - stąd time()+3600 (bieżąca chwila plus godzina). Daje to setcookie("owoce", "jabłko", time()+3600);, gdzie „owoce” to nazwa, a „jabłko” wartość. Dlatego ta funkcja jest poprawna.

Pytanie 10

Zadanie polecenia w języku SQL ALTER TABLE USA ... polega na

A. stworzeniu nowej tabeli USA
B. zamianie starej tabeli USA
C. usunięciu tabeli USA
D. modyfikacji tabeli USA
Odpowiedź dotycząca modyfikacji tabeli USA za pomocą polecenia ALTER TABLE jest prawidłowa, ponieważ ALTER TABLE jest standardowym poleceniem SQL, które pozwala na wprowadzanie zmian w istniejącej tabeli. W praktyce możemy za jego pomocą dodawać nowe kolumny, modyfikować istniejące kolumny (np. zmieniając ich typ danych), lub usuwać kolumny, co jest kluczowe w procesie optymalizacji struktury bazy danych. Przykładem zastosowania tego polecenia może być dodanie kolumny 'wiek' do tabeli 'USA', co można osiągnąć poprzez wywołanie komendy: ALTER TABLE USA ADD wiek INT; Takie zmiany są częścią cyklu życia bazy danych, gdzie w odpowiedzi na nowe wymagania biznesowe lub techniczne dostosowujemy strukturę bazy. Warto przestrzegać dobrych praktyk, takich jak tworzenie kopii zapasowych przed wprowadzeniem zmian oraz testowanie modyfikacji w środowisku deweloperskim przed ich wdrożeniem na produkcji, co minimalizuje ryzyko utraty danych lub błędów w aplikacji.

Pytanie 11

W języku CSS atrybut font-size przyjmuje, zgodnie z nazwami, wartości

A. wyłącznie small, medium, large
B. zaledwie big oraz small
C. jedynie small, smaller, large, larger
D. z zestawu xx-small, x-small, medium, large, x-large, xx-large
Właściwość font-size w CSS pozwala na określenie rozmiaru czcionki za pomocą różnych wartości, w tym predefiniowanych słów kluczowych, które umożliwiają łatwe dostosowanie wielkości tekstu w dokumentach HTML. Oprócz typowych wartości takich jak small, medium i large, CSS oferuje również bardziej szczegółowe opcje, takie jak xx-small, x-small, x-large oraz xx-large. Dzięki temu projektanci mogą lepiej dopasować rozmiar tekstu do kontekstu wizualnego strony. Użycie tych wartości pozwala na uniknięcie problemów z uniwersalnością, gdyż są one zrozumiałe i zgodne z różnymi rozdzielczościami ekranów. Na przykład, podczas projektowania responsywnej witryny, zastosowanie wartości xx-large dla nagłówków oraz x-small dla przypisów skutecznie poprawia czytelność i estetykę. Zgodnie z najlepszymi praktykami, warto również rozważyć użycie jednostek względnych, takich jak em czy rem, co pozwala na jeszcze większą elastyczność w dostosowywaniu rozmiarów tekstu do preferencji użytkownika oraz rozmiaru ekranu.

Pytanie 12

W języku JavaScript, aby zweryfikować, czy liczba leży w zakresie 100,200>, należy użyć:

A. if(liczba>100 && liczba <=200)
B. if(liczba<100 && liczba<=200)
C. if (liczba>100 || liczba<=200)
D. if(liczba<100 || liczba>=200)
Aby sprawdzić, czy liczba znajduje się w przedziale od 100 do 200 włącznie w języku JavaScript, należy użyć operatora logicznego AND (&&). Wyrażenie if(liczba > 100 && liczba <= 200) oznacza, że liczba musi być większa niż 100 oraz jednocześnie mniejsza lub równa 200. Przykład: jeśli mamy liczby 150 i 250, to 150 spełnia warunki tego warunku (jest większa od 100 i mniejsza lub równa 200), podczas gdy 250 nie spełnia (jest większa od 200). Kluczowe jest zrozumienie operatorów porównania oraz logicznych w JavaScript. Zgodnie z ECMAScript, językiem, na którym oparty jest JavaScript, użycie operatora AND w tym kontekście jest standardowym podejściem do określenia, czy wartość znajduje się w danym przedziale. Poprawne użycie tych operatorów jest istotne dla logiki programów oraz dostosowywania warunków do różnych sytuacji, co jest niezbędne w codziennej pracy programisty.

Pytanie 13

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. grupowania.
B. sumy.
C. wykluczenia.
D. części wspólnej.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno.
Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji.
Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 14

Strona internetowa została wyświetlona przez przeglądarkę w poniższy sposób. Wskaż kod HTML, który prawidłowo reprezentuje zaprezentowaną hierarchiczną strukturę tekstu:

Ilustracja do pytania
A. <h1>Rozdział 1<p>tekst <h2>Podrozdział 1.1<p>tekst <h2>Podrozdział 1.2
B. <ul><li>Rozdział 1<li>tekst<li>Podrozdział 1.1<li>tekst<li>Podrozdział 1.2</ul>
C. <h1>Rozdział 1</h1> <p>tekst</p> <h2>Podrozdział 1.1</h2> <p>tekst</p> <h2>Podrozdział 1.2</h2>
D. <big>Rozdział 1</big>tekst<big>Podrozdział 1.1</big>tekst<big>Podrozdział 1.2</big>
Odpowiedź jest w porządku! Użycie znaczników <h1> i <h2> wraz z <p> to dobry krok, bo to właśnie tak powinno wyglądać semantyczne formatowanie w HTML. Znacznik <h1> to taki główny nagłówek, który mówi, o czym jest cała strona lub sekcja, a to naprawdę kluczowe dla porządku w treści i SEO. Dzięki nagłówkom w HTML łatwiej jest zrozumieć, co jest na stronie, zarówno dla ludzi, jak i programów, które przeszukują internet. Jak już masz <h2>, to świetnie, bo to pokazuje podrozdziały, a więc hierarchię informacji. Użycie <p> dla tekstu to też dobry pomysł, bo sprawia, że tekst jest bardziej czytelny. Warto pamiętać, że semantyczne znaczniki HTML pomagają osobom z niepełnosprawnościami korzystać z internetu. Według wytycznych WCAG powinno się je stosować, żeby poprawić dostępność. A jak to robić z głową, to łatwiej potem stylować stronę przy użyciu CSS, bo możesz zmieniać wygląd bez bawienia się w treść HTML. Generalnie, dobrze jest, gdy dokumenty są jasne zarówno dla ludzi, jak i dla maszyn – to standard w nowoczesnym webdesignie.

Pytanie 15

Jeden klient może mieć wiele zamówień, a każde zamówienie należy do jednego klienta. Jaka to relacja?

A.
1 .. n
B.
n .. n
C.
n .. 1
D.
1 .. 1
Jeden klient i wiele jego zamówień, przy czym każde zamówienie należy do JEDNEGO klienta - to klasyczna relacja jeden-do-wielu, zapisywana 1..n. W bazie realizuje ją klucz obcy klient_id w tabeli zamówień. Zapamiętaj: „jeden ma wiele, każde z wielu wraca do jednego” = 1..n.

Pytanie 16

Integralność referencyjna w relacyjnych bazach danych oznacza, że

A. każdemu kluczowi głównemu przyporządkowany jest dokładnie jeden klucz obcy w powiązanych tabelach
B. wartość klucza głównego oraz klucza obcego nie może być pusta
C. wartość klucza obcego w danej tabeli musi być albo równa wartości klucza głównego w związanej z nią tabeli albo równa wartości NULL
D. klucz główny lub klucz obcy nie mogą zawierać wartości NULL
Integralność referencyjna jest kluczowym pojęciem w modelu relacyjnych baz danych, które zapewnia spójność i wiarygodność danych. Odpowiedź dotycząca wartości klucza obcego w danej tabeli, która musi być równa wartości klucza głównego w powiązanej tabeli lub NULL, jest zgodna z zasadami projektowania baz danych. Klucz obcy stanowi odniesienie do klucza głównego w innej tabeli, co umożliwia utrzymanie relacji między danymi. Na przykład, w bazie danych dotyczącej szkoły, tabela 'Uczniowie' może mieć kolumnę 'KlasaID', która jest kluczem obcym odnoszącym się do 'KlasaID' w tabeli 'Klasy'. Integralność referencyjna zapewnia, że każdy uczeń jest przypisany do istniejącej klasy, a jeśli uczeń nie jest przypisany do żadnej klasy, wartość ta może być NULL. Praktyczne zastosowanie tej zasady pozwala uniknąć błędów, takich jak pozostawienie ucznia bez przypisania do klasy, co mogłoby prowadzić do nieporozumień w analizach danych. Zgodnie z dobrymi praktykami, integralność referencyjna powinna być implementowana na poziomie bazy danych, aby automatycznie wymuszać te zasady, co zwiększa jakość i spójność gromadzonych danych.

Pytanie 17

Jakiej funkcji w języku PHP należy użyć, aby nawiązać połączenie z bazą danych pod nazwą zwierzaki?

A. $polacz = sql_connect('localhost', 'root', '', 'zwierzaki')
B. $polacz = server_connect('localhost', 'root', '', 'zwierzaki')
C. $polacz = mysqli_connect('localhost', 'root', '', 'zwierzaki')
D. $polacz = db_connect('localhost', 'root', '', 'zwierzaki')
Odpowiedź $polacz = mysqli_connect('localhost', 'root', '', 'zwierzaki'); jest poprawna, ponieważ wykorzystuje funkcję mysqli_connect, która jest dedykowana do nawiązywania połączeń z bazami danych MySQL w języku PHP. Funkcja ta przyjmuje cztery argumenty: adres serwera (w tym przypadku 'localhost'), nazwę użytkownika ('root'), hasło (które jest puste w tym przykładzie) oraz nazwę bazy danych ('zwierzaki'). Użycie mysqli jest zgodne z aktualnymi standardami i dobrą praktyką w programowaniu, ponieważ oferuje szereg usprawnień w porównaniu do starszych metod, takich jak mysql_connect, które zostały usunięte w nowszych wersjach PHP. Mysqli (MySQL Improved) wspiera zarówno programowanie obiektowe, jak i proceduralne, co czyni go bardziej elastycznym. W przypadku nawiązywania połączenia warto również pamiętać o obsłudze błędów, co można osiągnąć poprzez dodatkowe sprawdzenie, czy połączenie zostało nawiązane pomyślnie za pomocą funkcji mysqli_connect_error(). Przykład poprawnego użytkowania w kodzie mógłby wyglądać następująco: $polacz = mysqli_connect('localhost', 'root', '', 'zwierzaki'); if (!$polacz) { die('Connection failed: ' . mysqli_connect_error()); }

Pytanie 18

Który ze skrótów oznacza sieć bezprzewodową?

A. WAN
B. LAN
C. MAN
D. WLAN
WLAN (Wireless Local Area Network) to bezprzewodowa sieć lokalna - litera „W” (Wireless) wskazuje brak kabli, a łączność zapewnia technologia Wi-Fi (standardy IEEE 802.11). Pozostałe skróty opisują sieci według zasięgu, nie sposobu transmisji: LAN to sieć lokalna (np. w biurze), MAN obejmuje miasto, a WAN to sieć rozległa, jak internet. Dlatego sieć bezprzewodową oznacza skrót WLAN.

Pytanie 19

Co robi polecenie:

ALTER TABLE miasta ADD kod text;
?
A. zmienia nazwę kolumny kod na text
B. zmienia nazwę tabeli miasta na kod
C. dodaje dwie kolumny: kod i text
D. dodaje do tabeli kolumnę kod typu text
Polecenie ALTER TABLE miasta ADD kod text; rozszerza istniejącą tabelę miasta o jedną nową kolumnę o nazwie kod i typie text. ALTER TABLE zmienia strukturę tabeli, a ADD wskazuje dodanie kolumny (nazwa plus typ). Dlatego polecenie dodaje kolumnę kod typu text.

Pytanie 20

Co można powiedzieć o zmiennej predefiniowanej $_POST w języku PHP?

A. zawiera dane przesłane do skryptu z formularza
B. zawiera dane przesłane do skryptu z ciasteczka
C. jest rozszerzoną wersją tablicy $_SESSION
D. jest kopią tablicy $_COOKIE
Zmienna predefiniowana $_POST zawiera dane przesłane do skryptu z FORMULARZA wysłanego metodą POST - trafiają one w treści żądania, a nie w adresie URL. Odczytuje się je np. $_POST['login']. Dlatego $_POST zawiera dane z formularza.

Pytanie 21

W języku JavaScript zapis w ramce oznacza, że

x = przedmiot.nazwa();
A. nazwa jest atrybutem klasy przedmiot
B. nazwa jest cechą obiektu przedmiot
C. zmienna x będzie zawierać wynik działania metody nazwa
D. zmienna x będzie przechowywać wynik działania funkcji przedmiot
Instrukcja x = przedmiot.nazwa(); w JavaScripcie oznacza wywołanie metody nazwa na obiekcie przedmiot, a do zmiennej x zostaje podstawiony zwrócony wynik. Kluczowe są tu dwa elementy: kropka oraz nawiasy okrągłe. Zapis przedmiot.nazwa bez nawiasów odnosiłby się tylko do samej funkcji (referencji do metody), natomiast dodanie () powoduje jej wykonanie i dopiero rezultat tego wywołania trafia do zmiennej.
W praktyce wygląda to tak: jeśli obiekt przedmiot ma zdefiniowaną metodę nazwa, np. const przedmiot = { nazwa() { return "Monitor"; } }; to po instrukcji x = przedmiot.nazwa(); zmienna x będzie równa tekstowi "Monitor". To jest bardzo typowy wzorzec: obiekt.metoda() zwraca jakąś wartość (string, liczbę, obiekt, tablicę, czasem też undefined), a my ją przechwytujemy do zmiennej, żeby dalej z nią pracować. W dobrych praktykach programistycznych rozdziela się metody, które coś zwracają (tzw. query) od metod, które tylko wykonują akcję (np. zmieniają stan obiektu, ale nic nie zwracają). W tym pytaniu zakładamy, że nazwa zwraca wartość, więc przypisanie do x ma sens. Moim zdaniem warto od początku wyrabiać nawyk czytania takiego kodu: po lewej zmienna, po prawej wyrażenie, które jest obliczane. Najpierw wykonywana jest metoda nazwa(), a dopiero potem wynik trafia do x. Taki schemat pojawia się non stop w realnych projektach frontendowych i backendowych w JS, np. const wynik = koszyk.policzSume(); albo const tytul = dokument.getElementById("id").textContent; – w obu przypadkach zmienna przechowuje rezultat działania metody.

Pytanie 22

W języku PHP funkcja trim służy do

A. porównywania dwóch tekstów i wyświetlania ich wspólnej części
B. usuwania białych znaków lub innych określonych w parametrze znaków z obu końców tekstu
C. podawania długości tekstu
D. redukcji tekstu o liczbę znaków określoną w parametrze
Funkcja <i>trim</i> w języku PHP ma na celu usuwanie białych znaków oraz innych znaków, które są określone w jej parametrach, z obu końców napisu. To niezwykle przydatne narzędzie w programowaniu, szczególnie podczas przetwarzania danych wejściowych, gdzie użytkownicy mogą nieświadomie dodawać zbędne spacje, tabulatory lub nowe linie. Na przykład, gdy przetwarzamy dane formularzy, może się zdarzyć, że użytkownik wprowadzi swoje imię z dodatkowymi spacjami na początku lub końcu. Użycie <i>trim</i> pozwala na zapewnienie, że dane będą miały odpowiednią formę przed dalszym przetwarzaniem, co jest kluczowe w kontekście walidacji i normalizacji danych. Dodatkowo, funkcja ta wspiera podawanie własnych znaków do usunięcia, co czyni ją bardzo elastycznym narzędziem w codziennym programowaniu. Używanie <i>trim</i> jako standardowej praktyki przy obróbce danych tekstowych jest rekomendowane przez wielu ekspertów, ponieważ zwiększa to jakość i spójność przetwarzanych informacji.

Pytanie 23

DELETE FROM Pracownicy ORDER BY rok_urodzenia LIMIT 1;
W wyniku wykonania powyższego zapytania SQL zostanie:
A. usunięta tabela Pracownicy.
B. usunięta kolumna rok_urodzenia z tabeli Pracownicy.
C. usunięty rekord z danymi pracownika, który miał wpisaną datę urodzenia.
D. usunięty rekord najstarszego pracownika.
Poprawnie – to polecenie SQL usuwa dokładnie jeden rekord, i to taki, który odpowiada najstarszemu pracownikowi w tabeli. Kluczowe są tu dwie rzeczy: klauzula ORDER BY oraz LIMIT 1. Najpierw baza danych sortuje wiersze z tabeli Pracownicy po kolumnie rok_urodzenia rosnąco, czyli od najstarszego do najmłodszego (mniejszy rok urodzenia = starsza osoba). Dopiero na tak posortowanym zbiorze polecenie DELETE z LIMIT 1 usuwa pierwszy rekord z góry, czyli właśnie najstarszego pracownika.
Warto zauważyć, że taka składnia (DELETE ... ORDER BY ... LIMIT ...) jest charakterystyczna m.in. dla MySQL i MariaDB. W standardowym SQL nie zawsze można użyć ORDER BY bezpośrednio w DELETE, ale w praktyce, w aplikacjach webowych, bardzo często pracuje się właśnie na tych silnikach, więc to rozwiązanie jest jak najbardziej realne. W innych systemach (np. PostgreSQL) podobny efekt robi się przez podzapytanie lub CTE.
Moim zdaniem to jest bardzo przydatny wzorzec, gdy chcemy usuwać „najstarsze” lub „najmłodsze” rekordy, np. najstarszy log systemowy, najstarsze zamówienie w statusie roboczym, najstarszy wpis w kolejce zadań. Ważna dobra praktyka: takie operacje powinny opierać się na jednoznacznym kryterium sortowania (np. rok_urodzenia + id), żeby uniknąć sytuacji, że przy tych samych wartościach pola baza wybierze losowo któryś rekord. W projektach produkcyjnych często dodaje się dodatkową kolumnę typu data_utworzenia albo używa klucza głównego w ORDER BY, żeby zachować deterministyczne zachowanie.
Zwróć też uwagę, że DELETE operuje na wierszach (rekordach), a nie na strukturze tabeli. Do usuwania kolumn służy ALTER TABLE, a do kasowania całej tabeli – DROP TABLE. To rozróżnienie jest absolutna podstawa pracy z SQL w każdej większej aplikacji.

Pytanie 24

W załączonym kodzie CSS, kolor został zapisany w formacie

color: #008000;
A. dziesiętnej
B. HSL
C. szesnastkowej
D. CMYK
W CSS kolory często zapisywane są w postaci szesnastkowej ponieważ jest to krótki i precyzyjny sposób definiowania koloru. Kod szesnastkowy składa się zazwyczaj z sześciu znaków poprzedzonych znakiem hash (#) gdzie pierwsze dwa znaki odpowiadają czerwonej składowej następne dwa zielonej a ostatnie dwa niebieskiej. Na przykład #008000 oznacza kolor zielony gdzie czerwona składowa wynosi 0 zielona 128 a niebieska 0. Wartości te są zapisane w systemie szesnastkowym co oznacza że mogą przyjmować wartości od 00 do FF odpowiadające wartościom dziesiętnym od 0 do 255. Korzystanie z formatu szesnastkowego jest powszechnie uznawane za dobrą praktykę w web designie ponieważ jest szeroko wspierane przez przeglądarki internetowe i umożliwia łatwe definiowanie szerokiej gamy kolorów. Dzięki swojej zwięzłości i jednoznaczności jest preferowane w projektach gdzie każda linijka kodu ma znaczenie. Przy wyborze koloru warto korzystać z narzędzi które mogą pomóc w konwersji wartości RGB na szesnastkowe co ułatwia dokładne odwzorowanie wybranych kolorów

Pytanie 25

Jakiego rodzaju oprogramowanie narzędziowe jest wymagane, aby użytkownik mógł przeprowadzać operacje na zebranych danych?

A. Obiektowy System Zarządzania Bazą Danych
B. System Zarządzania Bazą Danych (SZBD)
C. Otwarty mechanizm komunikacji bazy danych
D. Klucz obcy
System Zarządzania Bazą Danych (SZBD) to kluczowy element w architekturze aplikacji, który umożliwia użytkownikom przechowywanie, modyfikowanie i zarządzanie danymi. Dzięki SZBD użytkownicy mogą wykonywać operacje takie jak dodawanie, usuwanie, modyfikacja danych oraz wykonywanie zapytań, co jest niezbędne w każdym systemie informacyjnym. Przykłady powszechnie stosowanych SZBD to MySQL, PostgreSQL oraz Oracle Database. W praktyce, SZBD obsługuje relacje między danymi, co pozwala na zapewnienie integralności i spójności danych. Dodatkowo, SZBD implementują standardy takie jak ACID (Atomicity, Consistency, Isolation, Durability), co jest gwarancją niezawodności transakcji. Aby efektywnie korzystać z SZBD, warto zapoznać się z językiem SQL, który jest standardem do komunikacji z bazą danych. W kontekście dobrych praktyk, umiejętność projektowania prawidłowej struktury bazy danych oraz znajomość zasad normalizacji danych są kluczowe dla optymalizacji wydajności aplikacji oraz minimalizacji ryzyka błędów danych.

Pytanie 26

Podany kod źródłowy ma na celu pokazanie:

$liczba = 1;
while ($liczba != 0)
{
  $liczba = rand(0, 100);
  echo $liczba;
}
A. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
B. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
C. kolejne liczby od 1 do 100
D. wylosowane liczby od 1 do 99
Odpowiedź "losowe liczby od 0 do 100 tak długo, aż nie zostanie wylosowana wartość 0" jest poprawna, ponieważ kod źródłowy wykorzystuje funkcję rand(), która generuje losowe liczby z zadanego zakresu, w tym przypadku od 0 do 100. Pętla while działa w taki sposób, że kontynuuje swoje działanie, dopóki zmienna $liczba nie przyjmie wartości 0. Oznacza to, że wszystkie wylosowane liczby, niezależnie od tego, czy są to liczby parzyste, nieparzyste, czy wartości graniczne, będą wyświetlane na ekranie do momentu, aż wylosowana zostanie wartość 0, która przerwie działanie pętli. Przykładem zastosowania tego typu kodu może być generowanie próbki danych w celu testowania algorytmów lub symulacji. Praktyka ta jest zgodna z dobrymi standardami programowania, gdzie często wykorzystuje się losowe dane do różnych celów, takich jak testowanie, analizy statystyczne lub gry. Ponadto, rozumienie jak działa generowanie liczb losowych i kontrola pętli jest podstawową umiejętnością w programowaniu, która pomaga w rozwoju bardziej zaawansowanych aplikacji.

Pytanie 27

W języku HTML zapis < spowoduje w przeglądarki wyświetlenie znaku

A. >
B. "
C. <
D. &
Znak < w HTML ma specjalne znaczenie, ponieważ jest używany do oznaczania początku znaczników, które są fundamentem struktury dokumentów HTML. Aby prawidłowo wyświetlić ten znak w przeglądarce, należy użyć encji HTML, która dla znaku mniejszości to &lt;. Użycie encji pozwala na uniknięcie nieporozumień, ponieważ przeglądarka mogłaby zinterpretować znak < jako początek nowego znacznika. Przykładowo, aby wyświetlić tekst 'A < B' w HTML, kod powinien wyglądać następująco: A &lt; B. Zgodnie z dokumentacją W3C, stosowanie encji jest kluczowe dla zachowania poprawności kodu. Dzięki temu użytkownicy mogą zobaczyć zamierzony tekst, zamiast nieprawidłowo interpretowanego oznaczenia. Warto również zauważyć, że istnieją inne encje, takie jak &gt; dla znaku większości oraz &amp; dla znaku ampersand, które również pełnią istotne funkcje w kontekście HTML. Poprawne użycie encji przyczynia się do lepszej dostępności i zobrazowania treści na stronach internetowych."

Pytanie 28

Który symbol oznacza w CSS jednostkę miary wyrażoną w punktach edytorskich?

A.
pt
B.
em
C.
px
D.
in
Jednostka pt to PUNKT typograficzny (edytorski), równy 1/72 cala - używana m.in. do rozmiaru czcionki w druku. Dlatego punkty edytorskie oznacza pt.

Pytanie 29

W CSS zastosowano regułę: float:left; dla bloku. Jakie będzie jej zastosowanie?

A. ustawienie bloku na lewo względem innych
B. umieszczanie bloków jeden pod drugim
C. dopasowanie elementów tabeli do lewej krawędzi
D. wyrównanie tekstu do lewej strony
Reguła CSS 'float: left;' jest kluczowym narzędziem do zarządzania układem elementów na stronach internetowych. Gdy zastosujemy tę regułę do bloku, powoduje to, że blok zostaje przesunięty do lewej strony swojego kontenera, co pozwala na przyleganie innych elementów po prawej stronie. Przykładowo, jeżeli mamy obrazek jako blok z regułą 'float: left;', tekst umieszczony obok tego obrazka będzie 'przeplatał' się z nim, co jest często wykorzystywane w projektowaniu stron dla uzyskania efektu estetycznego i funkcjonalnego. Stosowanie floata jest zgodne z dobrymi praktykami CSS, ale należy pamiętać, że może prowadzić do problemów z układem, szczególnie w przypadku elementów o różnej wysokości. Aby zniwelować efekty uboczne, często stosuje się regułę 'clear', aby kontrolować przepływ elementów. Warto również zwrócić uwagę, że w nowoczesnym CSS często zyskują na znaczeniu flexbox i grid, które oferują bardziej elastyczne i wydajne metody układania elementów, jednak 'float' nadal pozostaje istotnym narzędziem w arsenale front-end developera.

Pytanie 30

Aby zdefiniować krój czcionki w stylu CSS, należy użyć właściwości:

A.
text-family
B.
font-style
C.
font-family
D.
text-style
Łatwo tu wybrać nazwę, która brzmi logicznie, ale nie istnieje albo robi co innego. text-style oraz text-family wyglądają sensownie, jednak takich właściwości w CSS po prostu nie ma - przeglądarka je zignoruje. font-style to z kolei prawdziwa właściwość, lecz odpowiada za odmianę pisma, czyli pochylenie tekstu (wartość italic), a nie za wybór samego kroju. Rodzinę czcionki ustawia font-family, w której wskazuje się nazwę czcionki wraz z listą zapasowych - i dlatego to ona jest poprawną odpowiedzią.

Pytanie 31

W CSS zdefiniowano styl dla pola edycji. Taki obszar będzie miał jasnozielone tło

input:focus { background-color: LightGreen; }
A. jeśli jest to pierwsze wystąpienie tego elementu w dokumencie
B. po kliknięciu myszą w celu wprowadzenia tekstu
C. w każdej sytuacji
D. gdy zostanie na niego najechane kursorem myszy bez kliknięcia
W języku CSS pseudoklasa :focus jest używana do definiowania stylów dla elementów, które są w stanie aktywnego fokusu. W przypadku elementów formularza, takich jak pola tekstowe input, fokus uzyskuje się poprzez kliknięcie myszą lub użycie klawisza tab, co pozwala na wprowadzenie tekstu. Pseudoklasa :focus umożliwia stylizację elementu tylko wtedy, gdy jest aktywny, co jest kluczowe dla poprawy użyteczności interfejsu użytkownika. W przykładzie podanym w pytaniu, gdy pole edycyjne input uzyska fokus, jego tło zmieni się na jasnozielone dzięki właściwości background-color ustawionej na LightGreen. Takie zastosowanie stylów CSS jest powszechne w projektowaniu formularzy, gdzie wizualne wskazanie aktywnego elementu jest istotne dla użytkownika. Dobre praktyki projektowania interfejsów kładą nacisk na czytelność i intuicyjność, co zwiększa dostępność i wygodę użytkowania aplikacji webowych. Stylowanie z wykorzystaniem pseudoklasy :focus pozwala projektantom i deweloperom tworzyć interfejsy, które są nie tylko estetyczne, ale także funkcjonalne, wspierając użytkowników w efektywnym korzystaniu z aplikacji.

Pytanie 32

Jaką złożoność obliczeniową ma algorytm wyszukiwania elementu w nieposortowanej tablicy jednowymiarowej?

A. kwadratową, O(n²)
B. liniową, O(n)
C. stała, O(1)
D. silnia, O(n!)
W nieposortowanej tablicy nie ma porządku, który pozwoliłby pominąć część elementów, więc element szuka się przeglądając kolejne pozycje (wyszukiwanie liniowe). W najgorszym przypadku trzeba sprawdzić wszystkie n elementów, dlatego złożoność wynosi O(n) - liniowa. Dlatego poprawna jest złożoność liniowa, O(n).

Pytanie 33

Wskaż zdanie, które jest fałszywe w odniesieniu do poniższej definicji funkcji w języku C++?

void zamien(float &x, float &y) {
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja ma dwa argumenty
B. Funkcja zwraca wartość
C. Funkcja korzysta z parametrów przez referencję
D. Funkcja nie zwraca żadnej wartości
Jednym z typowych nieporozumień jest mylne interpretowanie funkcji deklarowanych z użyciem 'void'. Wbrew niektórym założeniom, taka funkcja nie zwraca żadnych wartości. Jej celem jest wykonanie pewnych operacji na danych wejściowych, często poprzez modyfikację ich wartości, jak w tym przypadku, gdzie funkcja dokonuje zamiany. Pojęcie zwracania wartości należy do funkcji o określonym typie zwracanym, takich jak 'int', 'float', itp. Zrozumienie różnicy między przekazywaniem przez wartość a przekazywaniem przez referencję jest kluczowe. W sytuacji, gdy parametry są przekazywane przez referencję, jak w omawianym przykładzie, funkcja ma bezpośredni dostęp do zmiennych zewnętrznych, umożliwiając ich modyfikację bez zwracania żadnej wartości. To podejście jest często stosowane w przypadku operacji na dużych strukturach danych, gdzie kopiowanie może być kosztowne. Niepoprawne założenie, że funkcja nie posiada parametrów lub że nie operuje na nich przez referencję, wynika z braku zrozumienia odnośnie technik efektywnego zarządzania pamięcią i zasobami w C++. Programowanie z użyciem referencji jest bardziej wydajne i pozwala na tworzenie kodu, który jest zarówno szybki, jak i czytelny. Ważne jest, aby nie mylić pojęcia parametrów funkcji z wartością zwrotną, ponieważ prowadzi to do błędnych założeń i niepoprawnego działania kodu w praktyce.

Pytanie 34

W CSS zapisana reguła

css
p::first-line {font-size: 150%;}
wykorzystana na stronie z wieloma paragrafami, z których każdy składa się z kilku linijek, spowoduje, że
A. pierwsza linia każdego z paragrafów będzie miała większy rozmiar czcionki niż pozostałe linie
B. cały tekst w paragrafie zostanie powiększony o 150%
C. pierwszy paragraf na stronie będzie miał całą czcionkę powiększoną
D. pierwsza linia każdego z paragrafów będzie miała mniejszy rozmiar czcionki niż pozostałe linie
Wszystkie trzy niepoprawne opcje nie zrozumiały właściwego działania pseudoelementu ::first-line. Pierwsza z tych odpowiedzi sugeruje, że pierwsza linia każdego paragrafu będzie miała mniejszą czcionkę niż następne linie, co jest błędne. Efekt zastosowania powyższego stylu CSS jest odwrotny; pierwsza linia zyskuje większy rozmiar czcionki. Drugie nieporozumienie polega na stwierdzeniu, że pierwszy paragraf na stronie będzie w całości miał powiększoną czcionkę. Pseudoelement ::first-line działa tylko na pierwszą linię tekstu w każdym paragrafie, a nie na cały paragraf. Ponadto, trzecia odpowiedź twierdzi, że całość tekstu paragrafu będzie powiększona o 150%, co również jest niezgodne z działaniem ::first-line. Ta reguła CSS nie wpływa na resztę tekstu, lecz jedynie na pierwszą linię, pozostawiając pozostałe linie w oryginalnym rozmiarze czcionki. Umiejętność poprawnego interpretowania działania pseudoelementów CSS jest kluczowa dla web developerów oraz projektantów stron internetowych, ponieważ pozwala na efektywniejsze stylizowanie i organizowanie treści w sposób, który poprawia doświadczenia użytkowników.

Pytanie 35

Jakie zadania programistyczne mogą być realizowane wyłącznie po stronie klienta w przeglądarce?

A. Weryfikacja hasła użytkownika w bazie danych powiązanej z aplikacją internetową
B. Bezpieczne wyświetlenie spersonalizowanej treści strony na podstawie uprawnień użytkownika aplikacji
C. Zapis danych z formularza w bazie danych związanej z aplikacją internetową
D. Weryfikacja danych wprowadzanych do pola tekstowego w czasie rzeczywistym
Wszystkie pozostałe zadania wymagają interakcji z serwerem, co czyni je niewykonalnymi po stronie klienta. Bezpieczne wyświetlenie personalizowanej zawartości strony zgodnie z prawami użytkownika aplikacji wiąże się z koniecznością weryfikacji danych na serwerze. Ta operacja wymaga zrozumienia roli serwera w kontekście bezpieczeństwa i autoryzacji, ponieważ każdy użytkownik może mieć różne uprawnienia do przeglądania zawartości. Zapisanie danych pobranych z formularza w bazie danych również odbywa się po stronie serwera, gdzie następuje walidacja i przetwarzanie danych. Bazy danych są złożonymi systemami, które zapewniają integralność i bezpieczeństwo, a ich użycie wymaga odpowiednich zapytań SQL, które są wykonywane na serwerze. Podobnie, sprawdzenie hasła użytkownika w bazie danych wymaga komunikacji z serwerem, gdzie hasło jest porównywane z zapisanym hasłem w sposób bezpieczny, zazwyczaj poprzez haszowanie. To podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych, a wszelkie operacje dotyczące integralności danych powinny być wykonywane w środowisku serwerowym, aby zapobiec potencjalnym atakom, takim jak SQL Injection. Właściwe zrozumienie rozróżnienia między operacjami po stronie klienta i serwera jest kluczowe dla tworzenia wydajnych, bezpiecznych aplikacji internetowych.

Pytanie 36

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

A. klasy i obiekty mogą współdzielić funkcjonalność
B. typy pól mogą zmieniać się dynamicznie w zależności od danych
C. klasy mogą mieć metody wirtualne implementowane w klasach pochodnych
D. pola i metody używane tylko wewnątrz klasy ogranicza się zasięgiem private lub protected
Pozostałe odpowiedzi opisują inne pojęcia obiektowe. Współdzielenie funkcjonalności między klasami to raczej dziedziczenie lub kompozycja, a nie ukrywanie szczegółów. Metody wirtualne implementowane w klasach pochodnych dotyczą polimorfizmu i dziedziczenia - pozwalają różnie realizować tę samą metodę w klasach potomnych. Dynamiczna zmiana typu pola w zależności od danych to cecha typowania dynamicznego języka, niezwiązana z zasadami OOP. Hermetyzacja polega na ograniczaniu dostępu do wewnętrznych pól i metod (private/protected), dlatego ta odpowiedź jest poprawna.

Pytanie 37

Dana jest tabela uczniowie, do której wpisano rekordy jak na rysunku. Co będzie wynikiem działania przedstawionego zapytania SQL?

SELECT AVG(ocena) FROM uczniowie;

NazwiskoImieocena
KowalskiSebastian4
KaczmarekMarta3
BaryłaZenon4
GotaAnna3
A. Liczba wierszy równa 4
B. Suma ocen równa 14
C. Dane 4, 3, 4, 3
D. Wartość 3.5
Widzę, że popełniłeś parę błędów w odpowiedziach. Stwierdzenie 'Suma ocen równa 14' pokazuje, że mogłeś nie do końca zrozumieć, jak działa AVG, bo ta funkcja nie sumuje wartości, ale liczy średnią. Z kolei odpowiedzi 'Dane 4, 3, 4, 3' i 'Liczba wierszy równa 4' też sugerują, że coś nie tak z interpretacją wyników. Pierwsza sugeruje, że zapytanie wyciąga konkretne liczby, a to nieprawda, bo AVG zwraca tylko jedną wartość – średnią. A druga odpowiedź wprowadza w błąd, mówiąc o liczbie wierszy, podczas gdy AVG operuje na wartościach, a nie ich ilości. Tego typu pomyłki mogą wynikać z nieznajomości funkcji agregujących w SQL. Ważne jest, żeby zrozumieć, co każda funkcja robi i jakie zwraca wyniki.

Pytanie 38

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

A. ALTER TABLE
B. GRANT
C. UPDATE
D. INSERT INTO
Wybór odpowiedzi 'INSERT INTO' jest błędny, ponieważ to polecenie służy do wstawiania nowych danych do tabeli, a nie do modyfikacji jej struktury. W praktyce, jeśli chcemy dodać nowy rekord do tabeli, użyjemy składni 'INSERT INTO tabela (kolumna1, kolumna2) VALUES (wartość1, wartość2);'. Z kolei 'UPDATE' również nie jest właściwym poleceniem w kontekście zmiany struktury tabeli, ponieważ to polecenie jest używane do modyfikacji istniejących danych w tabeli, a nie do zmiany jej budowy. Na przykład, aby zmienić wartość w kolumnie, użyjemy 'UPDATE tabela SET kolumna = nowa_wartość WHERE warunek;'. Dodatkowo, odpowiedź 'GRANT' jest nieodpowiednia, ponieważ to polecenie dotyczy przyznawania uprawnień do bazy danych, a nie zmiany jej struktury. Przyznawanie uprawnień jest kluczowe w kontekście bezpieczeństwa bazy danych, ale nie ma związku z modyfikowaniem struktury tabel. Typowymi błędami, które prowadzą do takich niepoprawnych wyborów, są pomylenie operacji na danych z operacjami na strukturze bazy danych oraz brak zrozumienia specyfiki poleceń SQL.

Pytanie 39

Który zapis to poprawny SKŁADNIOWO warunek PHP sprawdzający błąd połączenia z bazą?

A.
if (mysqli_connect_errno()}{
B.
if (mysqli_connect_error()}{
C.
if (mysqli_connect_error())()
D.
if (mysqli_connect_errno()){}
Pozostałe zapisy mają błędnie pozamykane nawiasy. if (...)() dokłada zbędne okrągłe nawiasy zamiast bloku {}. if (...}{ i if (...}{ mieszają i odwracają nawiasy okrągłe z klamrowymi. Poprawna struktura to if (mysqli_connect_errno()){}.

Pytanie 40

Skrypt w języku JavaScript, który zajmuje się płacami pracowników, ma na celu stworzenie raportu dla osób zatrudnionych na umowę o pracę, które otrzymują wynagrodzenie w przedziale 4000 do 4500 zł, w tym przedziale obustronnie domkniętym. Jakie jest kryterium do wygenerowania raportu?

A. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
B. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
C. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
D. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
Wielu uczniów ma kłopoty z poprawnym rozumieniem operatorów logicznych i jak je łączyć. Na przykład, odpowiedź umowa == 'praca' || (pensja >= 4000 || pensja <= 4500) jest niepoprawna, bo mówi, że wystarczy spełnić chociaż jeden z warunków, co nie zgadza się z tym, czego chcieliśmy. W tej sytuacji, jeśli pracownik nie ma umowy o pracę, a jego pensja wynosi 5000 zł, to raport i tak może się wygenerować, co jest sprzeczne z zamysłem pytania. Inny błąd to użycie '||' w odpowiedzi umowa == 'praca' && (pensja >= 4000 || pensja <= 4500) – to znowu prowadzi do nieprawidłowego wniosku. Gdy pensja wynosi 3500 zł, raport ma szansę na generację, mimo że nie spełnia wymogu dotyczącego płac. W odpowiedzi umowa == 'praca' || (pensja >= 4000 && pensja <= 4500) też widać błędne zrozumienie operatorów, co prowadzi do sytuacji, w której raport może być generowany dla pracowników z pensjami poniżej 4000 zł, tylko dlatego, że mają umowę o pracę. Kluczowy błąd to brak dostrzegania, że w takich sytuacjach wszystkie warunki muszą być spełnione, co oznacza, że trzeba używać operatora '&&'. Zrozumienie operatorów logicznych to podstawa w programowaniu i bardzo ważny element przy tworzeniu skutecznych skryptów.