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: 22 czerwca 2026 11:14
  • Data zakończenia: 22 czerwca 2026 11:40

Egzamin niezdany

Wynik: 13/40 punktów (32,5%)

Wymagane minimum: 20 punktów (50%)

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

Który zbiór znaczników, określających projekt strony internetowej w sposób semantyczny, jest zgodny z normą HTML 5?

Ilustracja do pytania
A. Zbiór 3
B. Zbiór 4
C. Zbiór 2
D. Zbiór 1
Wykaz 4 jest zgodny ze standardem HTML 5, ponieważ poprawnie używa semantycznych znaczników do strukturyzacji zawartości strony. <header> jest używany do definiowania nagłówka dokumentu lub sekcji, co jest poprawne dla Bloku 1. Znacznik <main> w Bloku 2 wskazuje na główną treść strony, co jest zgodne z jego przeznaczeniem. <aside> w Bloku 3 jest trafnie używany do treści pobocznych, które są związane, ale niekonieczne dla głównego wątku treści, co odpowiada typowej strukturze witryny, gdzie treści poboczne są często wyświetlane obok głównej treści. Na koniec, <footer> w Bloku 4 jest poprawnie przypisany, gdyż zamyka i podsumowuje zawartość strony. HTML5 kładzie duży nacisk na semantykę, co pomaga w optymalizacji pod kątem SEO oraz ułatwia rozumienie struktury strony zarówno przez ludzi, jak i maszyny. Takie podejście poprawia dostępność, ułatwia stylizowanie za pomocą CSS oraz wspiera lepsze praktyki w zakresie zgodności z przyszłymi standardami.

Pytanie 2

Które wywołanie is_int() zwróci true?

A.
is_int(13.5)
B.
is_int(135)
C.
is_int("135")
D.
is_int(NULL)
is_int("135") to NAPIS, a nie liczba (cudzysłowy). is_int(13.5) to liczba zmiennoprzecinkowa (float). is_int(NULL) to wartość pusta. Wynik true daje tylko is_int(135).

Pytanie 3

Którego elementu nie powinno się umieszczać w nagłówku pliku HTML?

A. <link>
B. <h2>
C. <meta>
D. <title>
Udzielenie odpowiedzi na pytanie o znaczniki w nagłówku dokumentu HTML może prowadzić do nieporozumień, jeśli nie zrozumie się właściwego kontekstu użycia każdej z opcji. Znacznik <link>, używany do powiązania dokumentu HTML z zasobami zewnętrznymi, takimi jak arkusze stylów CSS, powinien być umieszczany w sekcji <head>, a nie w <body>. Jego zastosowanie ma kluczowe znaczenie dla ładowania stylów na stronie, co wpływa na jej wygląd i układ. Z kolei znaczniki <title> i <meta> również są przeznaczone do umieszczania w sekcji <head> i dostarczają istotnych informacji o stronie, takich jak tytuł, opis i słowa kluczowe. Tytuł wyświetlany jest na pasku tytułowym przeglądarki oraz w wynikach wyszukiwania, a metadane wpływają na SEO oraz udostępnianie treści w serwisach społecznościowych. Niepoprawne byłoby zatem umieszczanie tych znaczników w sekcji <body>, ponieważ nie spełniają swojej funkcji w kontekście strukturalnym dokumentu. Warto pamiętać, że nieprawidłowe umiejscowienie znaczników w HTML narusza standardy W3C, co może prowadzić do problemów z renderowaniem strony i jej użytecznością. Zrozumienie, gdzie i jak stosować różne znaczniki, jest niezbędne dla tworzenia poprawnych i efektywnych stron internetowych.

Pytanie 4

Po uruchomieniu zamieszczonego w ramce skryptu w języku JavaScript, w przeglądarce zostanie wyświetlona wartość:

var a = 5;
var b = a--;
a *= 3;
document.write(a + "," + b);
A. 15,4
B. 12,5
C. 12,4
D. 15,5
W tym skrypcie JavaScript mamy operator dekrementacji a--, gdzie najpierw wartość zmiennej a jest przypisana do zmiennej b, a dekrementacja następuje później. Jeśli tego nie rozumiesz, może to prowadzić do różnych nieporozumień co do wynikowych wartości. Czyli po a-- b przyjmuje pierwotną wartość a, która wynosi 5. Warto zrozumieć kolejność operacji, bo przy operatorze postfix zmiana wartości następuje po przypisaniu. Później, po dekrementacji, a staje się 4, co czasem jest źle interpretowane, bo ludzie myślą, że b też by się zmieniło. Potem jest a *= 3, gdzie 4 mnożymy przez 3 i dostajemy 12. Często ludzie popełniają błąd, zakładając, że operatory działają równocześnie w jednym wierszu kodu. Ważne jest, żeby znać te subtelności, bo pomaga to w lepszym programowaniu i kontrolowaniu, jak zmienne się zmieniają.

Pytanie 5

Pętla while ma działać, dopóki zmienna x należy do przedziału otwartego (-2, 5). Który warunek to zapisuje (PHP)?

A.
($x < -2) || ($x > 5)
B.
($x > -2) && ($x < 5)
C.
($x == -2) && ($x < 5)
D.
($x > -2) || ($x > 5)
Pozostałe warunki źle opisują przedział. ($x == -2) && ($x < 5) wymagałoby, by x był równy dokładnie -2 (a to wartość WYŁĄCZONA z przedziału otwartego). Warianty z || (($x > -2) || ($x > 5), ($x < -2) || ($x > 5)) opisują sumę zbiorów, czyli wartości POZA przedziałem albo zbyt szeroko. Przedział (-2, 5) to ($x > -2) && ($x < 5).

Pytanie 6

Poprzez zdefiniowanie var x="true"; w języku JavaScript powstaje zmienna należąca do typu

A. nieokreślonego (undefined)
B. string (ciąg znaków)
C. logicznym
D. liczbowym
Wybór odpowiedzi związanej z typem logicznym jest wynikiem nieporozumienia co do podstawowych zasad typizacji w JavaScript. Wartości logiczne w tym języku, takie jak true i false, są używane do reprezentowania stanów prawdy i fałszu, ale nie mają nic wspólnego z tekstem. Deklaracja zmiennej z wartością "true" w cudzysłowach tworzy ciąg znaków, a nie wartość logiczną. Wynika to z faktu, że użycie podwójnych cudzysłowów oznacza, że wartość jest traktowana jako tekst, a nie jako typ logiczny. Odpowiedź dotycząca typu liczbowego również jest błędna, ponieważ "true" nie jest liczbą, a JavaScript nie interpretuje wartości tekstowych jako liczb, chyba że zostaną poddane konwersji. Typ nieokreślony (undefined) odnosi się do zmiennych, które zostały zadeklarowane, ale nie mają przypisanej wartości, co nie ma zastosowania w omawianym przypadku. Zrozumienie różnicy między typami danych jest kluczowe, ponieważ pozwala programistom unikać typowych pułapek i błędów, które mogą wystąpić podczas programowania w JavaScript. Stosowanie dobrych praktyk w zakresie deklaracji i zarządzania typami danych przyczynia się do bardziej przejrzystego i efektywnego kodu.

Pytanie 7

Której wartości właściwości background-attachment użyć, aby tło pozostało nieruchome względem okna przeglądarki?

A.
inherit
B.
scroll
C.
local
D.
fixed
Pozostałe wartości zachowują się inaczej. scroll (domyślna) przewija tło razem z treścią - odwrotnie do wymagania. local wiąże tło z przewijaniem zawartości elementu, a inherit dziedziczy ustawienie po rodzicu. Tło nieruchome względem okna daje fixed.

Pytanie 8

Aby wyeliminować nienaturalne odwzorowanie ukośnych krawędzi w grafice rastrowej, czyli tak zwane schodkowanie, należy zastosować filtr:

A. antyaliasingu
B. szumu
C. pikselizacji
D. gradientu
Każda z tych odpowiedzi nazywa realne pojęcie z grafiki, ale tylko jedno dotyczy wygładzania krawędzi. Filtr szumu pracuje na ziarnistości całego obrazu - dodaje lub redukuje losowe zakłócenia, a nie ostre schodki. Gradient to technika płynnego przejścia kolorów, używana do teł i efektów, która z problemem ukośnych linii nie ma nic wspólnego. Pikselizacja działa wręcz odwrotnie do tego, czego szukamy: celowo powiększa piksele, by ukryć szczegóły, więc krawędzie stają się jeszcze bardziej kanciaste. Wygładzeniem schodkowania zajmuje się antyaliasing, który na granicy kształtu wstawia piksele pośrednich kolorów i sprawia, że ukośna krawędź wydaje się gładka.

Pytanie 9

Proces przetwarzania sygnału wejściowego w czasie, wykorzystujący zasadę superpozycji, jest związany z filtrem

A. o skończonej odpowiedzi impulsowej
B. liniowym
C. niezmiennym w czasie
D. przyczynowym
Wybór odpowiedzi związanej z filtrami przyczynowymi, niezmiennymi w czasie i o skończonej odpowiedzi impulsowej może prowadzić do nieporozumień w kontekście filtracji sygnałów. Filtr przyczynowy, chociaż może być liniowy, niekoniecznie musi spełniać wszystkie założenia dotyczące superpozycji, ponieważ jego odpowiedź impulsowa ogranicza się do przeszłych wartości sygnału, co może wprowadzać dodatkowe zniekształcenia w analizie sygnałów. Stosowanie filtrów niezmiennych w czasie w kontekście superpozycji również wymaga ostrożności, ponieważ mogą one wprowadzać zmiany w amplitudzie i fazie sygnałów, co prowadzi do złożonych interakcji. Z kolei filtry o skończonej odpowiedzi impulsowej (FIR) są typem filtru liniowego, ale nie zawsze są przyczynowe; można je zaprojektować jako filtry nieprzyczynowe, co podważa ich użyteczność w kontekście rzeczywistych zastosowań przetwarzania sygnałów. Warto zauważyć, że w praktyce, projektowanie filtrów wymaga zrozumienia i analizy zarówno ich właściwości liniowych, jak i nieliniowych, a także wpływu na jakość przetwarzanych sygnałów. Kluczowe jest również uwzględnienie spektrum sygnału oraz jego cech, co jest zgodne z najlepszymi praktykami inżynieryjnymi, aby uzyskać optymalne wyniki w aplikacjach inżynieryjnych.

Pytanie 10

$x = 0; while($x < 5) { echo "$x,"; $x++; } Wskaż instrukcję, która jest funkcjonalnie równoważna dla podanej pętli while w języku PHP.

Ilustracja do pytania
A. Instrukcja 3
B. Instrukcja 1
C. Instrukcja 4
D. Instrukcja 2
W programowaniu często spotyka się różne sposoby implementacji pętli, jednak nie wszystkie z nich są równie efektywne czy poprawne w kontekście stawianych wymagań. W przypadku zaproponowanych instrukcji for, które miałyby być równoważne funkcjonalnie do podanej pętli while, kluczowym aspektem jest zachowanie identycznych warunków początkowych, warunku końcowego oraz sposobu inkrementacji zmiennej sterującej. Podczas gdy instrukcja 3 dokładnie odwzorowuje działanie pętli while pod względem inicjalizacji wartości $x, warunku kontynuacji ($x < 5) oraz kroku inkrementacyjnego ($x++), inne opcje różnią się w tych aspektach. Instrukcja 1 zawiera podwójną inkrementację zmiennej w każdym kroku pętli, co skutkuje zbyt szybkim osiągnięciem warunku końcowego. Instrukcja 2 zmienia krok inkrementacji na $x+=2, co prowadzi do pominięcia wartości i skrócenia pętli. Instrukcja 4 modyfikuje warunek początkowy, startując z $x równym 1, zamiast 0, co również wpływa na zakres wyświetlanych wartości. Te modyfikacje mogą wprowadzać w błąd i generować nieprzewidywalne wyniki, co jest niepożądane w kontekście pisania stabilnego i przewidywalnego kodu. Zrozumienie różnic w tych implementacjach jest kluczowe dla skutecznego programowania i unikania typowych błędów, które mogą prowadzić do niezamierzonych konsekwencji w działaniu aplikacji. Dlatego ważne jest, aby każda z pętli była precyzyjnie dostosowana do zamierzonej funkcjonalności i zgodna z założonymi celami projektu, co jest podstawą dobrych praktyk w branży inżynierii oprogramowania.

Pytanie 11

Aby w wyniku zapytania wyeliminować powtarzające się wiersze, należy użyć klauzuli

A.
DISTINCT
B.
ORDER BY
C.
LIMIT
D.
UNIQUE
Najczęstsze pomyłki w tym pytaniu biorą się z mylenia ról poszczególnych słów kluczowych. LIMIT jedynie ogranicza liczbę zwróconych wierszy (np. pierwszych dziesięć) i w ogóle nie sprawdza, czy się powtarzają, więc duplikaty nadal mogą trafić do wyniku. ORDER BY ustawia wiersze w określonej kolejności; powtórzenia po posortowaniu znajdą się obok siebie, ale wciąż tam będą - sortowanie ich nie kasuje. UNIQUE bywa kojarzone ze słowem „unikalny”, jednak to ograniczenie integralności (więz lub indeks) zakładane na kolumnę przy projektowaniu tabeli, a nie klauzula używana w zapytaniu SELECT. Do usunięcia powtarzających się wierszy z wyniku służy wyłącznie DISTINCT, która porównuje wiersze i zostawia tylko unikalne.

Pytanie 12

Emblemat systemu CMS o nazwie Joomla! to

Ilustracja do pytania
A. Rys. D
B. Rys. B
C. Rys. C
D. Rys. A
Logo przedstawione na Rys. A nie jest związane z Joomla!, ale z systemem Drupal. Drupal, podobnie jak Joomla!, jest systemem zarządzania treścią, ale różnią się one filozofią i strukturą. Drupal często wybierany jest do bardziej złożonych projektów, które wymagają dużej elastyczności i skalowalności, jednak jego administracja może być bardziej skomplikowana w porównaniu do Joomla!. Rys. C przedstawia logo mniej znanego systemu CMS o nazwie Mambo, który był pierwowzorem Joomla!, ale obecnie jest rzadko używany z powodu społeczności, która przeniosła się do Joomla!. Z kolei Rys. D to logo WordPressa, najpopularniejszego CMS na świecie, znanego z prostoty użycia i ogromnej liczby dostępnych wtyczek oraz motywów, co czyni go idealnym wyborem dla blogów i stron komercyjnych. Łatwość, z jaką można zmieniać wygląd i funkcjonalności WordPressa, przyciąga użytkowników, którzy preferują szybkie wdrożenie i łatwość obsługi. Rozpoznanie, które logo reprezentuje dany CMS, jest ważne dla specjalistów IT, ponieważ pozwala na szybki wybór odpowiedniej platformy do określonych potrzeb projektowych oraz unikanie potencjalnych błędów związanych z wyborem nieodpowiedniego narzędzia do realizacji zamierzonych celów. Zrozumienie tych różnic jest kluczowe dla efektywnego zarządzania projektami webowymi i dostosowania technologii do specyfiki zadania oraz wymagań klienta. Wybór odpowiedniego systemu CMS powinien być oparty na analizie potrzeb projektu oraz kompetencjach zespołu, co pozwala na optymalizację workflow i osiągnięcie zamierzonych celów biznesowych w sposób efektywny i zrównoważony.

Pytanie 13

Język HTML oferuje nagłówki, które służą do tworzenia hierarchii zawartości. Te nagłówki występują wyłącznie w zakresie

A. h1 - h4
B. h1 - h8
C. h1 - h10
D. h1 - h6
Odpowiedź h1 - h6 jest poprawna, ponieważ w języku HTML nagłówki są definiowane w ramach sześciu poziomów, od h1 do h6. Nagłówki te pełnią kluczową rolę w organizacji treści na stronie internetowej, umożliwiając tworzenie hierarchii oraz struktury dokumentu. h1 jest najważniejszym nagłówkiem i powinien być używany do oznaczania głównego tytułu strony, podczas gdy h2, h3, h4, h5 i h6 służą do tworzenia podtytułów i hierarchii treści w miarę potrzeby. Na przykład, nagłówek h2 może być użyty do oznaczenia sekcji podrzędnej w stosunku do h1, a h3 do następnej sekcji podrzędnej. Takie zrozumienie hierarchii nagłówków jest istotne z punktu widzenia SEO, ponieważ wyszukiwarki korzystają z tych struktur do indeksowania treści. Dobrze zorganizowane nagłówki poprawiają również dostępność strony, co jest zgodne z najlepszymi praktykami webowymi, a także ułatwiają nawigację użytkownikom, zarówno ludziom, jak i robotom wyszukiwarek.

Pytanie 14

Kompresja bezstratna pliku graficznego zapewnia:

A. wyższą jakość niż oryginał
B. plik większy niż oryginał
C. zachowanie pierwotnej jakości grafiki
D. mniejszą liczbę warstw
Kompresja bezstratna zmniejsza rozmiar pliku, ale w taki sposób, że po dekompresji odzyskuje się dane identyczne z oryginałem - jakość obrazu nie spada. Działa, eliminując nadmiarowość danych (np. powtarzające się ciągi), a nie odrzucając informacje. Stosują ją formaty takie jak PNG i GIF; przeciwieństwem jest kompresja stratna (JPEG), która dla mniejszego pliku odrzuca część szczegółów. Dlatego kompresja bezstratna zachowuje pierwotną jakość grafiki.

Pytanie 15

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

A. wykluczenia.
B. grupowania.
C. sumy.
D. części wspólnej.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów.
Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna.
Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 16

Które z wymienionych stwierdzeń na temat zasad programowania w PHP jest prawdziwe?

A. W nazwach zmiennych nie rozróżnia się wielkości liter
B. Deklaracja zmiennych następuje po słowie var
C. Jest to język o słabej kontroli typów
D. Nazwy zmiennych poprzedza znak !
PHP jest językiem o słabej kontroli typów, co oznacza, że zmienne mogą zmieniać swój typ w trakcie działania programu, co nie jest typowe dla języków o silnej kontroli typów. Na przykład, w PHP możemy przypisać do zmiennej wartość liczbową, a następnie tę samą zmienną nadpisać tekstem. To daje programistom dużą elastyczność, jednak wymaga również ostrożności, aby unikać błędów związanych z nieoczekiwanym typem danych. W praktyce oznacza to, że programiści muszą być czujni na typy danych, aby nie wprowadzać błędów, które mogą prowadzić do trudnych do zdiagnozowania błędów w kodzie. Zasady projektowania w PHP zachęcają do stosowania funkcji typu is_int(), is_string() i innych, aby upewnić się, że zmienne mają oczekiwany typ przed ich użyciem. Współczesne standardy programowania, takie jak PHP-FIG, promują dobre praktyki kodowania, które mogą pomóc zminimalizować problemy związane z dynamiczną typizacją.

Pytanie 17

Instrukcja REVOKE SELECT ON nazwa1 FROM nazwa2 w SQL pozwala na

A. pozbawianie użytkownika uprawnień
B. przyznawanie uprawnień za pomocą ustalonego schematu
C. usuwanie konta użytkownika z bazy danych
D. przyznawanie praw dostępu do tabeli
Polecenie REVOKE SELECT ON nazwa1 FROM nazwa2 w SQL służy do cofnięcia uprawnień, które wcześniej przyznaliśmy jakiejś osobie albo roli. W kontekście baz danych, uprawnienia SELECT to po prostu możliwość oglądania danych w tabeli (nazwa1). To dosyć ważna sprawa, jeśli mówimy o bezpieczeństwie bazy. Dzięki temu możesz kontrolować, kto ma dostęp do jakich danych, co jest szczególnie istotne w przypadku różnych regulacji prawnych, jak RODO. Przykładowo, jeśli użytkownik (nazwa2) miał dostęp do tej tabeli, a później uznaje się, że nie powinien go mieć, to używasz REVOKE, żeby to cofnąć. To normalne podejście w administrowaniu bazami danych, bo bezpieczeństwo danych to bardzo ważny aspekt. Warto również czasami przeglądać, kto ma jakie uprawnienia, żeby zminimalizować ryzyko, że ktoś niepowołany dostanie się do wrażliwych informacji.

Pytanie 18

Na czym polega analiza ścieżek w testach jednostkowych?

A. na utworzeniu kilku zbiorów danych o podobnym przetwarzaniu i przetestowaniu nimi
B. na badaniu inicjacji i zwalniania pamięci obiektów
C. na wyznaczeniu punktu początkowego i końcowego oraz zbadaniu dróg między nimi
D. na testowaniu wartości brzegowych danych
Pozostałe opisy dotyczą innych technik testowania. Testowanie wartości brzegowych sprawdza skrajne dane wejściowe. Badanie inicjacji i zwalniania pamięci to kontrola zarządzania zasobami. Tworzenie zbiorów danych o podobnym przetwarzaniu to klasy równoważności. Analiza ścieżek bada drogi między początkiem a końcem kodu.

Pytanie 19

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 20

W języku SQL, jaki będzie efekt wykonania poniższego zapytania?

ALTER TABLE osoba DROP COLUMN grupa;
A. Usunięta zostanie kolumna grupa.
B. Dodana zostanie kolumna grupa.
C. Zmieniona zostanie nazwa tabeli na grupa.
D. Zmieniona zostanie nazwa kolumny na grupa.
Wybrana odpowiedź jest niepoprawna, ale nie martw się, to jest okazja do nauki. Zapytanie SQL w pytaniu nie dotyczyło zmiany nazwy tabeli ani kolumny, a także nie dotyczyło dodawania nowej kolumny. W języku SQL do zmiany nazwy tabeli używamy zapytania 'RENAME', natomiast do zmiany nazwy kolumny używamy 'ALTER TABLE' z dodatkiem 'RENAME COLUMN'. Dodawanie nowej kolumny wymaga natomiast użycia 'ALTER TABLE' z dodatkiem 'ADD COLUMN'. Wszystkie te operacje są ważne i niezbędne w różnych scenariuszach pracy z bazą danych. Jednak w tym przypadku mieliśmy do czynienia z instrukcją 'ALTER TABLE' z dodatkiem 'DROP COLUMN', które służy do usunięcia kolumny. Pamiętaj, że każde z tych zapytań ma inne skutki i odpowiednie zastosowania, więc ważne jest dokładne zrozumienie różnic między nimi.

Pytanie 21

Na ilustracji przedstawiono dwie tabele. Aby ustanowić między nimi relację jeden do wielu, gdzie jedna strona to Klienci, a druga strona to Zamowienia, należy

Ilustracja do pytania
A. stworzyć trzecią tabelę z dwoma kluczami obcymi. Jeden klucz połączyć z ID tabeli Klienci, a drugi klucz połączyć z ID tabeli Zamowienia.
B. powiązać relacją pola ID z obu tabel.
C. wprowadzić pole klucza obcego do tabeli Zamowienia i powiązać je z ID tabeli Klienci.
D. dodać pole klucza obcego do tabeli Klienci i powiązać je z ID tabeli Zamowienia.
Zrozumienie, dlaczego inne podejścia do tworzenia relacji jeden do wielu są błędne, wymaga wyjaśnienia działania kluczy podstawowych i obcych. Połączenie pól ID z obu tabel nie tworzy poprawnej relacji jeden do wielu, ponieważ nie definiuje, które pole służy jako klucz obcy. Tego typu połączenie może prowadzić do niejednoznaczności i problemów z integralnością danych. Dodanie klucza obcego do tabeli Klienci i połączenie go z ID tabeli Zamowienia również nie jest prawidłowe, ponieważ przeczyłoby to logice relacji jeden do wielu, gdzie jeden klient może mieć wiele zamówień, a nie odwrotnie. W praktyce takie podejście mogłoby prowadzić do powielania danych w tabeli Klienci i komplikacji przy zarządzaniu danymi. Zdefiniowanie trzeciej tabeli z dwoma kluczami obcymi jest podejściem stosowanym przy relacjach wiele do wielu, a nie jeden do wielu, jak w tym przypadku. Takie rozwiązanie byłoby nieefektywne w tej sytuacji i niepotrzebnie skomplikowałoby strukturę bazy danych. Poprawne zrozumienie tych koncepcji jest kluczowe dla projektowania wydajnych i spójnych systemów baz danych, zgodnych z zasadami normalizacji i dobrych praktyk inżynierii danych.

Pytanie 22

Który zapis CSS ustawi punktor listy NUMEROWANEJ na wielkie cyfry rzymskie, a PUNKTOWANEJ na kwadraty?

A.
ol { list-style-type: upper-alpha; } ul { list-style-type: disc; }
B.
ol { list-style-type: square; } ul { list-style-type: upper-roman; }
C.
ol { list-style-type: disc; } ul { list-style-type: upper-alpha; }
D.
ol { list-style-type: upper-roman; } ul { list-style-type: square; }
Trzeba dopasować wartości do list. disc to wypełnione kółko, a upper-alpha to wielkie litery - nie spełniają warunku (rzymskie cyfry i kwadraty). Mylące jest też zamienienie reguł <ol> i <ul> miejscami. Poprawne jest ol { list-style-type: upper-roman; } ul { list-style-type: square; }.

Pytanie 23

W jakim bloku powinien być umieszczony warunek pętli?

Ilustracja do pytania
A. Opcja C
B. Opcja A
C. Opcja D
D. Opcja B
Odpowiedź C jest prawidłowa ponieważ blok w kształcie rombu jest powszechnie stosowany w schematach blokowych do przedstawiania warunków decyzyjnych W kontekście pętli programistycznych warunek decyzyjny kontroluje jej wykonanie określając kiedy pętla powinna się zakończyć lub kontynuować Romb jako symbol decyzyjny umożliwia zadanie pytania logicznego którego wynik decyduje o dalszym przebiegu algorytmu Na przykład w pętli while warunek jest oceniany przed każdym wykonaniem bloków kodu w pętli co zapewnia że pętla działa dopóki warunek jest spełniony Podobnie w pętli for warunek kontroluje liczbę iteracji poprzez ocenę wyrażenia logicznego przed każdą iteracją Stosowanie rombu do przedstawiania warunków pętli jest zgodne ze standardami modelowania procesów i zwiększa czytelność oraz zrozumiałość schematów blokowych dla programistów i analityków Właściwe umiejscowienie warunku w rombie w strukturze pętli pokazuje zdolność do logicznego modelowania algorytmów co jest kluczowe dla tworzenia efektywnego i niezawodnego oprogramowania

Pytanie 24

Który typ relacji wymaga utworzenia tabeli pośredniczącej, łączącej klucze główne obu tabel?

A.
1..n
B.
n..n
C.
1..1
D.
n..1
Pozostałe relacje nie potrzebują takiej tabeli. 1..1 i 1..n (a także n..1, czyli 1..n z drugiej strony) realizuje się kluczem obcym umieszczonym we właściwej tabeli. Tabela pośrednicząca jest konieczna wyłącznie dla n..n.

Pytanie 25

Który model barw opisuje kolor za pomocą stożka przestrzeni barw?

A. CMY
B. CIE
C. CMYK
D. HSV
Pozostałe modele mają inną reprezentację. CMY i CMYK to modele druku oparte na mieszaniu farb, a CIE to przestrzeń barw oparta na percepcji (diagram chromatyczności). Stożek przestrzeni barw opisuje HSV.

Pytanie 26

Styl ten generuje pojedyncze obramowanie, które charakteryzuje się następującymi właściwościami:

border: solid 1px;
border-color: red blue green yellow;
A. krawędź prawa jest koloru czerwonego, krawędź dolna ma kolor niebieski, krawędź lewa ma kolor zielony, krawędź górna ma kolor żółty
B. krawędź górna jest czerwonego koloru, krawędź lewa jest w kolorze niebieskim, krawędź dolna ma kolor zielony, krawędź prawa ma kolor żółty
C. krawędź lewa ma kolor czerwony, krawędź dolna jest w kolorze niebieskim, krawędź prawa jest koloru zielonego, krawędź górna ma kolor żółty
D. krawędź górna ma kolor czerwony, krawędź prawa jest w kolorze niebieskim, krawędź dolna ma kolor zielony, krawędź lewa jest koloru żółtego
Błędne zrozumienie przypisania kolorów do krawędzi obramowania w CSS wynika z niewłaściwego interpretowania kolejności, w jakiej te kolory są przypisywane. W standardach CSS, kiedy używamy składni takiej jak border-color: red blue green yellow; kolory są przypisywane zaczynając od krawędzi górnej, a następnie zgodnie z kierunkiem wskazówek zegara. Stąd czerwona krawędź to górna, niebieska to prawa, zielona to dolna, a żółta to lewa. Błędne odpowiedzi wynikają z niepoprawnego przypisania kolorów do krawędzi w innej kolejności. Typowym błędem jest myślenie, że kolory są przypisane w porządku lewa-prawa-dół-góra, co jest sprzeczne z domyślną kolejnością CSS. Bez poprawnego zrozumienia tej logiki, projektanci mogą doświadczyć trudności w przewidywaniu jakich efektów wizualnych oczekiwać od swojej pracy, co może prowadzić do błędów w projektach. Aby uniknąć takich problemów, kluczowe jest zapoznanie się i zrozumienie zasad określających jak style CSS są interpretowane przez przeglądarki, co pozwala na pełne wykorzystanie możliwości jakie oferują style kaskadowe. Poprawne stosowanie tych zasad jest niezbędne do tworzenia profesjonalnych i spójnych projektów internetowych, które są zgodne z najlepszymi praktykami w branży.

Pytanie 27

Jaką funkcję w języku PHP należy wykorzystać, aby nawiązać połączenie z bazą danych o nazwie 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')
Odpowiedzi takie jak $polacz = db_connect('localhost', 'root','','zwierzaki'); oraz $polacz = sql_connect('localhost', 'root','','zwierzaki'); są niepoprawne, ponieważ nie istnieją takie funkcje w standardowym zestawie funkcji PHP. Użycie nieodpowiednich nazw funkcji może prowadzić do nieporozumień oraz błędów w kodzie, które mogą być trudne do zdiagnozowania, zwłaszcza dla nowicjuszy. Dodatkowo, funkcja db_connect sugeruje, że mogłaby być częścią jakiegoś frameworka lub biblioteki, co wprowadza w błąd, gdyż w standardowym PHP nie są one dostępne. Podobna sytuacja ma miejsce z sql_connect, która również nie jest częścią standardowej biblioteki PHP. Użycie tych funkcji w kodzie bez zaimplementowania ich definicji spowoduje błąd wykonania. Z kolei $polacz = server_connect('localhost', 'root','','zwierzaki'); również nie jest poprawną odpowiedzią, ponieważ server_connect nie jest zdefiniowaną funkcją w PHP. Kluczowym błędem, jaki można popełnić, jest poleganie na przestarzałych metodach lub funkcjach, które nie są już wspierane przez PHP, co może prowadzić do problemów z bezpieczeństwem i wydajnością aplikacji. Programiści powinni być świadomi aktualnych standardów i korzystać z obiektowych interfejsów, takich jak MySQLi lub PDO, które oferują większe bezpieczeństwo i elastyczność w zarządzaniu połączeniami z bazą danych.

Pytanie 28

Aby sprawdzić poprawność składni kodu CSS, można skorzystać z:

A. optymalizatora
B. konsolidatora
C. walidatora
D. debuggera
Poprawność składni CSS sprawdza walidator - na przykład walidator CSS organizacji W3C (jigsaw.w3.org/css-validator). Analizuje arkusz pod kątem zgodności ze standardem i wypisuje błędy oraz ostrzeżenia: literówki we właściwościach, nieprawidłowe wartości czy brakujące średniki. Dlatego do kontroli składni CSS służy walidator.

Pytanie 29

W wyniku walidacji strony został wygenerowany błąd. Oznacza on, że

Ilustracja do pytania
A. w znaczniku meta nie występuje atrybut charset.
B. oznaczenie kodowania znaków powinno być zapisane bez myślników.
C. w atrybucie charset jest dozwolona wyłącznie wartość "utf-8".
D. oznaczenie ISO-8859-2 nie istnieje.
No niestety, odpowiedź nie jest poprawna. Ten błąd walidacji wynika z tego, że przy atrybucie charset w znaczniku meta tylko 'utf-8' jest akceptowane. Inne oznaczenia, jak 'iso-8859-2', mimo że są poprawne jako typy kodowania, nie mogą być używane w tym kontekście. Również pamiętaj, że atrybut charset nie może być pusty, co sugeruje jedna z Twoich odpowiedzi. HTML5 wymaga, żeby ten atrybut zawsze był obecny i miał wartość 'utf-8'. A tak w ogóle, nie można podawać kodowania bez myślników. Prawdziwy zapis to 'utf-8'. Z kolei 'iso-8859-2' jest wprawdzie realnym typem kodowania, ale w tym przypadku to nie przechodzi.

Pytanie 30

Ile razy zostanie wykonana pętla w zamieszczonym skrypcie PHP?

$a = $x = 0;
do{
    $a++;
    $x = $x + $a;
}while($x != 21);
A. 6
B. 5
C. 7
D. 0
Pętla typu do-while jest specyficzna w tym że jej ciało wykonuje się przynajmniej raz przed sprawdzeniem warunku pętli. To różni ją od pętli while gdzie warunek jest sprawdzany przed wykonaniem kodu wewnątrz pętli. W analizowanym skrypcie zmienne $a i $x są inicjalizowane wartością 0 i najpierw $a jest inkrementowane co powoduje że w pierwszej iteracji $x przyjmuje wartość 1. W każdej kolejnej iteracji do $x dodaje się aktualną wartość $a która rośnie o 1 w każdym kroku. Częstym błędem jest zakładanie że pętla do-while wykona się tyle razy ile wskazuje różnica między wartościami początkowymi zmiennych a wartością końcową warunku. Jednak w tym przypadku każda iteracja przyczynia się do sumowania wartości rosnącej $a z $x co wpływa na liczbę iteracji. Przy złym zrozumieniu mechanizmu może się wydawać że pętla wykona mniej lub więcej iteracji zwłaszcza gdy nie prześledzimy krok po kroku wartości zmiennych. Obliczenia są kluczowe aby określić że pętla do momentu osiągnięcia $x równego 21 wykonuje się dokładnie 6 razy a nie 5 czy 7 co podkreśla znaczenie dokładności w analizie kodu i zrozumieniu jego działania w kontekście iteracji i warunków kończących pętlę.

Pytanie 31

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 32

W języku JavaScript zapisano poniższy fragment kodu:

var x=10;
x++;
console.log(x);
Po uruchomieniu skryptu zmienna x
A. będzie miała wartość 11 i zostanie wyświetlona w konsoli przeglądarki internetowej
B. będzie miała wartość 11 i zostanie wyświetlona w oknie popup
C. będzie miała wartość 10 i zostanie pokazana w dokumencie HTML
D. będzie miała wartość 10 i zostanie wyświetlona w głównym oknie przeglądarki internetowej
Analizując niepoprawne odpowiedzi, można zauważyć, że opierają się one na nieprawidłowym rozumieniu działania kodu JavaScript. W pierwszej niewłaściwej odpowiedzi wskazuje się, że zmienna x będzie równa 11 i zostanie wypisana w oknie popup. Pomimo, że wartość zmiennej x rzeczywiście wynosi 11 przed próbą jej wyświetlenia, brak poprawnej składni w wywołaniu console.log skutkuje błędem, a kod nie zadziała zgodnie z zamierzeniem. Kolejne stwierdzenie sugeruje, że zmienna x pozostanie równa 10 i zostanie wypisana w dokumencie HTML. To jest również niepoprawne, ponieważ zmiana wartości zmiennej poprzez inkrementację miała miejsce, a jeśli kod działałby poprawnie, zmienna x by wynosiła 11. Wreszcie, ostatni błąd polega na twierdzeniu, że zmienna x będzie miała wartość 10 i zostanie wypisana w głównym oknie przeglądarki. To również jest niezgodne z rzeczywistością, ponieważ zmiana wartości zmiennej x przez operator inkrementacji prowadzi do uzyskania wartości 11. Dodatkowo, aby wyświetlić tę wartość w głównym oknie przeglądarki, należałoby użyć metody document.write lub innej odpowiedniej metody, co nie ma miejsca w analizowanym kodzie. W związku z tym, wszystkie te odpowiedzi nie są zgodne z rzeczywistością z powodu błędnej analizy kodu oraz pominięcia kluczowych elementów składniowych.

Pytanie 33

Który ze znaczników HTML NIE służy do formatowania tekstu?

A. <sub>
B. <em>
C. <div>
D. <strong>
Pozostałe znaczniki formatują tekst. <em> oznacza fragment z naciskiem (emfazą), wyświetlany domyślnie kursywą. <strong> wskazuje treść ważną i domyślnie ją pogrubia. <sub> obniża i pomniejsza znaki, tworząc indeks dolny (np. we wzorach). Wszystkie one wpływają na wygląd lub znaczenie tekstu, podczas gdy <div> jedynie grupuje elementy w blok, nie zmieniając samego tekstu. Dlatego to <div> nie służy do formatowania, co czyni tę odpowiedź poprawną.

Pytanie 34

Do ilu pól edycyjnych zostanie przypisane tło Teal dla przedstawionego fragmentu dokumentu HTML i stylu CSS?

<input type="text">
<input type="number">
<input type="email">
<input type="number">
<input>

input[type="number"] {
    background-color: Teal;
}
A. Do dwóch.
B. Do wszystkich.
C. Do trzech.
D. Do żadnego.
Wybór niepoprawnej odpowiedzi sugeruje pewne nieporozumienia dotyczące zasad działania CSS i tego, jak style są aplikowane do elementów HTML. Wszystkie niepoprawne odpowiedzi sugerują, że tło Teal zostanie przypisane do innej liczby pól edycyjnych niż faktycznie. W tym przypadku, tło Teal jest zdefiniowane w stylu CSS i ma być zastosowane tylko do pól typu 'number'. W HTML, możemy określić różne typy pól edycyjnych, takie jak 'text', 'number', 'email' i inne. Typy te są używane przez przeglądarki, aby dostarczyć odpowiednie interfejsy użytkownika dla różnych typów danych. Niezrozumienie tego może prowadzić do błędnych wniosków, jak na przykład ten, że wszystkie pola edycyjne otrzymają styl, czy że żadne pole nie otrzyma stylu. Ważne jest, aby zrozumieć, jak selektory atrybutów w CSS pozwalają na precyzyjne określenie, do jakich elementów powinien być zastosowany dany styl.

Pytanie 35

Zapytanie z użyciem klauzuli JOIN jest wykorzystywane w celu

A. uzyskania wyników tylko z jednej tabeli
B. określenia klucza obcego dla tabeli
C. wywołania funkcji agregującej
D. pozyskania wyników z dwóch tabel, które są ze sobą powiązane
Kiedy używasz klauzuli JOIN w SQL, to tak naprawdę odblokowujesz potencjał swoich relacyjnych baz danych. Dzięki temu możesz łączyć dane z różnych tabel, co jest mega przydatne, gdy trzeba przeanalizować informacje z wielu źródeł. Na przykład, jeżeli masz dwie tabele – 'Klienci' i 'Zamówienia' – to z pomocą JOIN możesz łatwo stworzyć listę zamówień razem z danymi o klientach. Kluczowe jest to, by wiedzieć, które kolumny chcesz zestawić, bo wtedy otrzymasz jasne i uporządkowane wyniki. Z własnego doświadczenia powiem, że umiejętne korzystanie z JOIN znacznie poprawia szybkość zapytań i ułatwia analizę danych. Tak naprawdę, to dla programistów szansa na pełne wykorzystanie SQL przy tworzeniu różnorodnych raportów. W dzisiejszych czasach, gdy tak dużo danych krąży wokół, znajomość tych technik to must-have.

Pytanie 36

Dla którego akapitu zastosowano przedstawioną właściwość stylu CSS?

Ilustracja do pytania
A. Akapit 1
B. Akapit 4
C. Akapit 2
D. Akapit 3
Wybrana przez Ciebie odpowiedź jest nieprawidłowa. Właściwość CSS 'border-radius: 20%;' nie została zastosowana do akapitu, który wybrałeś. Wskazuje na to fakt, że rogi akapitu są prostokątne, a nie zaokrąglone. Zaokrąglenie rogów jest efektem działania tej właściwości CSS. Warto pamiętać, że 'border-radius' to ważna właściwość, która daje możliwość manipulowania kształtem elementów HTML. Można za jej pomocą tworzyć różne efekty estetyczne, takie jak zaokrąglone rogi, elipsy czy okręgi. Jednak jej użycie powinno być zawsze przemyślane i dostosowane do ogólnego stylu strony. W przeciwnym razie, niewłaściwe użycie tej właściwości może zaburzyć harmonię projektu. Pamiętaj, że rozumienie i umiejętność zastosowania różnych właściwości CSS jest kluczem do tworzenia atrakcyjnych i funkcjonalnych stron internetowych.

Pytanie 37

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 0 do 9 i ich wyświetlenie
B. 10 losowymi wartościami, a następnie wypisanie liczb ujemnych
C. kolejnymi liczbami od -100 do 100 oraz wypisanie liczb ujemnych
D. 100 losowymi liczbami, a następnie wypisanie liczb dodatnich
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 38

Jaki typ relacji powstaje, gdy połączymy dwie tabele przez ich KLUCZE GŁÓWNE?

A. wiele do wielu
B. jeden do wielu
C. jeden do jednego
D. wiele do jednego
Gdy dwie tabele łączymy przez ich KLUCZE GŁÓWNE (oba unikalne), każdemu rekordowi jednej odpowiada dokładnie jeden rekord drugiej - to relacja JEDEN DO JEDNEGO (1:1). Stosuje się ją np. do rozdzielenia rzadko używanych pól. Zapamiętaj: dwa klucze główne naprzeciw siebie = 1:1.

Pytanie 39

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

A. klasy mogą mieć metody wirtualne implementowane w klasach pochodnych
B. pola i metody używane tylko wewnątrz klasy ogranicza się zasięgiem private lub protected
C. klasy i obiekty mogą współdzielić funkcjonalność
D. typy pól mogą zmieniać się dynamicznie w zależności od danych
Hermetyzacja (enkapsulacja) to zasada programowania obiektowego polegająca na ukrywaniu wewnętrznych szczegółów obiektu: pola i metody przeznaczone tylko do użytku wewnątrz klasy oznacza się modyfikatorami private lub protected, a na zewnątrz udostępnia jedynie potrzebny interfejs (public). Dostęp do ukrytych pól odbywa się przez metody (np. gettery i settery), co pozwala kontrolować poprawność danych. Dzięki temu zmiana wnętrza klasy nie psuje kodu, który z niej korzysta. Dlatego hermetyzacja oznacza ograniczanie zasięgu pól i metod do private/protected.

Pytanie 40

W języku PHP, przy pracy z bazą MySQL, aby zakończyć sesję z bazą, należy wywołać

A. mysqli_close()
B. mysqli_commit()
C. mysqli_exit()
D. mysqli_rollback()
Inne odpowiedzi na to pytanie wprowadzają w błąd, ponieważ każda z nich ma inne znaczenie i zastosowanie w kontekście operacji na bazie danych MySQL. Na przykład, mysqli_exit() nie jest standardową funkcją w bibliotece MySQLi i nie istnieje w dokumentacji PHP, co czyni ją nieprawidłową. Funkcje mysqli_commit() i mysqli_rollback() służą do zarządzania transakcjami w bazach danych. mysqli_commit() zapisuje wszystkie zmiany dokonane w bieżącej transakcji, podczas gdy mysqli_rollback() przywraca stan bazy danych do momentu rozpoczęcia transakcji w przypadku, gdy wystąpił błąd lub gdy zdecydujemy się nie akceptować dokonanych zmian. Użycie tych funkcji jest kluczowe w kontekście zapewnienia integralności danych, zwłaszcza w aplikacjach, gdzie wiele operacji zmienia stan bazy danych. Typowy błąd myślowy, który prowadzi do wyboru tych odpowiedzi, to mylenie zamknięcia połączenia z bazą z zarządzaniem transakcjami. Ważne jest, aby zrozumieć, że mimo iż zarówno zamknięcie połączenia, jak i zarządzanie transakcjami są ważnymi aspektami pracy z bazą danych, pełnią one zupełnie różne funkcje. Właściwe zamknięcie połączenia jest kluczowe, aby uniknąć problemów z wydajnością i dostępnością zasobów, które mogą wystąpić, jeśli połączenia nie zostaną prawidłowo zakończone.