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: 8 czerwca 2026 07:58
  • Data zakończenia: 8 czerwca 2026 08:19

Egzamin zdany!

Wynik: 32/40 punktów (80,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

Aby przywrócić bazę danych o nazwie Sklep z pliku towary.sql, należy w miejsce gwiazdek wpisać nazwę użytkownika. Polecenie wygląda następująco:

mysql -u ******* -p Sklep < towary.sql
A. nazwę użytkownika.
B. liczbę importowanych obiektów bazy.
C. adres IP bazy danych.
D. nazwę odzyskiwanej tabeli.
W tym poleceniu kluczowy jest fragment „-u *******”. Przełącznik -u w kliencie mysql zawsze oznacza nazwę użytkownika bazy danych, pod której kontem chcemy się połączyć z serwerem MySQL/MariaDB. Dlatego w miejsce gwiazdek wpisujemy konkretną nazwę użytkownika, np. root, admin, albo konto utworzone specjalnie do obsługi danej aplikacji, np. sklep_user. To jest standardowa składnia narzędzia wiersza poleceń mysql: mysql -u NAZWA_UŻYTKOWNIKA -p NAZWA_BAZY < plik.sql. Opcja -p mówi, że program ma poprosić o hasło dla tego użytkownika (nie podajemy hasła wprost w poleceniu, ze względów bezpieczeństwa). Nazwa bazy danych, do której importujemy dane, pojawia się dalej, w tym przykładzie jest to Sklep. Z kolei po znaku < podajemy plik z kopią bazy, czyli skryptem SQL zawierającym instrukcje CREATE TABLE, INSERT i inne potrzebne do odtworzenia struktury i danych. W praktyce przy przywracaniu baz danych zawsze łączymy się jako użytkownik, który ma odpowiednie uprawnienia: przynajmniej do tworzenia tabel i wstawiania danych w tej bazie (INSERT, CREATE, ALTER, czasem DROP). W środowiskach produkcyjnych dobrą praktyką jest nie używać konta root, tylko dedykowanego użytkownika z ograniczonymi uprawnieniami. Moim zdaniem warto też pamiętać, że adres IP serwera bazy (opcjonalnie podawany przez -h) i port (-P) to zupełnie inne parametry niż -u. One określają, z jakim serwerem się łączymy, a -u i -p – kim się logujemy. To rozróżnienie jest bardzo ważne przy codziennej administracji i automatyzacji backupów oraz importów.

Pytanie 2

Na przedstawionej tabeli samochody wykonano zapytanie SQL SELECT

SELECT model FROM samochody WHERE rocznik = 2016;
idmarkamodelrocznikkolorstan
1FiatPunto2016czerwonybardzo dobry
2FiatPunto2002czerwonydobry
3FiatPunto2007niebieskibardzo dobry
4OpelCorsa2016grafitowybardzo dobry
5OpelAstra2003niebieskiporysowany lakier
6ToyotaCorolla2016czerwonybardzo dobry
7ToyotaCorolla2014szarydobry
8ToyotaYaris2004granatowydobry
A. Punto, Corsa, Astra, Corolla, Yaris.
B. Czerwony, grafitowy.
C. Punto, Corsa, Corolla.
D. Fiat, Opel, Toyota.
Twoja odpowiedź jest prawidłowa. Zapytanie SQL 'SELECT model FROM samochody WHERE rocznik = 2016' miało na celu wydobycie informacji o modelach samochodów z rocznika 2016 z tabeli 'samochody'. SQL (Structured Query Language) jest standardowym językiem służącym do manipulowania danymi w bazach danych. W tym przypadku, użyliśmy klauzuli WHERE do nakierowania zapytania na konkretne rekordy - te, dla których wartość w kolumnie 'rocznik' to 2016. Dlatego też poprawna odpowiedź to 'Punto, Corsa, Corolla', ponieważ to właśnie te modele samochodów są z rocznika 2016. To jest praktyczne zastosowanie zapytań SQL - pozwalają one na filtrowanie danych na podstawie konkretnych kryteriów. Dobrym zwyczajem jest tworzenie zapytań SQL, które są jak najbardziej precyzyjne, co przekłada się na efektywność i wydajność pracy z bazą danych.

Pytanie 3

Wykonanie następującego polecenia PHP umożliwia:

$zapytanie = mysqli_query($db, "UPDATE ...");
A. zmianę struktury bazy
B. pobranie danych z bazy
C. zmianę danych w bazie
D. dodanie nowych danych do bazy
Polecenie PHP mysqli_query z użyciem instrukcji SQL UPDATE służy do modyfikacji danych w bazie danych. Funkcja mysqli_query umożliwia wykonywanie zapytań SQL na połączeniu z bazą danych reprezentowanym przez zmienną $db. Instrukcja UPDATE jest stosowana do aktualizacji istniejących rekordów w tabeli w bazie danych. Przykładowo, jeśli chcesz zaktualizować pole nazwa w tabeli użytkownicy, możesz użyć polecenia UPDATE users SET name='NowaNazwa' WHERE id=1. To podejście umożliwia dynamiczne zarządzanie danymi, co jest kluczowe w aplikacjach internetowych wymagających bieżącej aktualizacji informacji. W praktyce należy pamiętać o dobrych praktykach, takich jak walidacja danych wejściowych i zabezpieczenie przed atakami SQL injection, np. poprzez stosowanie przygotowanych zapytań. Aktualizowanie danych w bazie to jedna z podstawowych operacji CRUD (Create Read Update Delete), które są fundamentem zarządzania danymi w większości aplikacji obsługujących bazy danych. Poprawne użycie tej funkcji wymaga zrozumienia struktury SQL i znajomości specyfiki używanego systemu zarządzania bazą danych.

Pytanie 4

W SQL uprawnienie SELECT przydzielone za pomocą polecenia GRANT umożliwia użytkownikowi bazy danych

A. uzyskiwanie danych z tabeli
B. zmienianie danych w tabeli
C. usuwanie danych z tabeli
D. generowanie tabeli
Wybór odpowiedzi sugerujących modyfikowanie danych, tworzenie tabeli czy usuwanie danych z tabeli wskazuje na niepełne zrozumienie podstawowych przywilejów w SQL. Przywilej SELECT jest ściśle związany z dostępem do danych, co oznacza, że jego rola ogranicza się do umożliwienia użytkownikowi odczytu informacji, a nie ich modyfikowania. Modyfikowanie danych w tabeli zarezerwowane jest dla przywileju UPDATE, który pozwala na zmianę istniejących danych. Tworzenie tabeli wiąże się z przywilejem CREATE, który z kolei umożliwia użytkownikom dodawanie nowych struktur danych do bazy. Z kolei usunięcie danych z tabeli realizowane jest przez przywilej DELETE, pozwalający na eliminowanie zapisów z bazy. Te różnice są fundamentalne dla zrozumienia zarządzania dostępem w systemach baz danych. Typowe błędy w myśleniu o uprawnieniach mogą prowadzić do nieprawidłowego zarządzania danymi i naruszeń bezpieczeństwa. Użytkownicy muszą mieć jasną świadomość, że każdy przywilej w SQL ma swoje specyficzne zastosowanie, a nieprawidłowe przypisanie uprawnień może prowadzić do nieautoryzowanego dostępu lub utraty danych. Właściwe zrozumienie hierarchii i ról przywilejów jest kluczowe dla efektywnego i bezpiecznego zarządzania bazami danych.

Pytanie 5

Jak w języku strukturalnym przechować dane 50 uczniów (imię, nazwisko, średnia)?

A. tablicy 50 elementów o składowych łańcuchowych
B. klasy 50 elementów typu tablicowego
C. tablicy 50 elementów o składowych strukturalnych
D. struktury 50 elementów o składowych tablicowych
Pozostałe odpowiedzi nie pasują. Tablica o składowych łańcuchowych pomieściłaby jedną wartość tekstową na ucznia, a nie trzy różne pola. „Struktura 50 elementów o składowych tablicowych” odwraca role struktury i tablicy. Klasa należy do programowania OBIEKTOWEGO, a pytanie dotyczy strukturalnego. Właściwa jest tablica 50 struktur.

Pytanie 6

Który modyfikator dostępu sprawia, że pole klasy jest dostępne z dowolnego miejsca programu?

A.
private
B.
protected
C.
published
D.
public
Modyfikator public oznacza, że pole lub metoda są dostępne z każdego miejsca programu - z wnętrza klasy, z klas dziedziczących i z kodu zewnętrznego. To najszerszy poziom dostępu. Stosuje się go do elementów, które mają stanowić publiczny interfejs obiektu. Dlatego dostęp zewsząd zapewnia public.

Pytanie 7

Które reguły CSS poprawnie ustawiają dla akapitu czcionkę Arial, rozmiar 16 pt i pochylenie (kursywę)?

A.
p { font-family: Arial; font-size: 16px; font-variant: normal; }
B.
p { font-style: Arial; size: 16px; font-weight: normal; }
C.
p { font-family: Arial; font-size: 16pt; font-style: italic; }
D.
p { font-style: Arial; font-size: 16pt; font-variant: normal; }
Wygląd czcionki opisują w CSS trzy osobne właściwości: font-family ustala krój (np. Arial), font-size - rozmiar (tu 16pt, bo zadano punkty, a nie piksele), a font-style: italic włącza pochylenie. Razem daje to p { font-family: Arial; font-size: 16pt; font-style: italic; }. Warto pamiętać, że font-style odpowiada za kursywę, a font-weight za grubość - to częste źródło pomyłek. Dlatego poprawny jest ten zestaw reguł.

Pytanie 8

Zaproponowana baza danych składa się z trzech tabel oraz dwóch relacji. Żeby uzyskać listę wszystkich lekarzy przypisanych do danego pacjenta, konieczne jest porównanie kluczy

Ilustracja do pytania
A. Lekarze.id = Pacjenci.Lekarze_id
B. Lekarze.id = Pacjenci.Recepty_id
C. Lekarze.id = Pacjenci.id
D. Lekarze.id = Recepty.id
Poprawna odpowiedź polega na właściwym zrozumieniu relacji między tabelami Lekarze a Pacjenci w bazie danych. Aby wyświetlić wszystkich lekarzy przypisanych do konkretnego pacjenta konieczne jest użycie klucza obcego Lekarze_id w tabeli Pacjenci. Relacja ta jest kluczowa gdyż każda wizyta pacjenta jest przypisana konkretnemu lekarzowi dzięki temu kluczowi. W praktycznych zastosowaniach relacje takie są niezbędne do efektywnego zarządzania danymi w systemach zdrowotnych umożliwiając szybkie uzyskanie informacji o lekarzach opiekujących się pacjentem. Standardy baz danych zakładają użycie kluczy obcych w celu utrzymania integralności danych. Jest to zgodne z zasadą normalizacji polegającą na eliminacji redundancji i zapewnieniu spójności danych. W kontekście projektowania baz danych dobre praktyki wymagają jasno zdefiniowanych relacji co pozwala na łatwiejsze skalowanie i zarządzanie systemem. Zrozumienie i poprawne zastosowanie tej wiedzy umożliwia tworzenie wydajnych i elastycznych struktur danych.

Pytanie 9

Jakie imiona spełniają warunki klauzuli LIKE w podanym zapytaniu?

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Rafał, Rebeka, Renata, Roksana
B. Gerald, Jarosław, Marek, Tamara
C. Arleta, Krzysztof, Krystyna, Tristan
D. Krzysztof, Krystyna, Romuald
No, więc ta odpowiedź jest totalnie na miejscu, bo klauzula LIKE w SQL służy do szukania ciągów, które pasują do jakiegoś wzoru. W tym przypadku wzór '_r%' mówi nam, że przed literą 'r' musi być dokładnie jeden dowolny znak, a po 'r' może być cokolwiek. Jak spojrzymy na imiona, które wybrałeś, 'Arleta' i 'Krzysztof' mają 'r' na drugiej pozycji, a 'Krystyna' i 'Tristan' na trzeciej. Czyli wszystko się zgadza. W ogóle, klauzula LIKE jest super przydatna w wyszukiwaniu danych, na przykład w aplikacjach, gdy chcemy znaleźć kogoś po imieniu czy nazwisku. A ten symbol '%' to genialny sposób na dopasowywanie, bo pozwala na różne kombinacje. Fajna sprawa, nie?

Pytanie 10

W edytorze grafiki wektorowej stworzono przedstawiony kształt, który powstał z dwóch figur: trójkąta i koła. W celu stworzenia tego kształtu, po narysowaniu figur i odpowiednim ich ustawieniu, należy skorzystać z funkcji

Ilustracja do pytania
A. różnicy.
B. rozdzielenia.
C. wykluczenia.
D. sumy.
Dobrze, że wybrałeś odpowiedź 'Sumy'. W rzeczywistości, aby uzyskać efekt przedstawiony na zdjęciu w edytorze grafiki wektorowej, trzeba skorzystać z opcji 'Sumy'. Ta funkcja łączy dwie różne figury w jedną, co pozwala na tworzenie złożonych kształtów. W praktyce, po rysowaniu i odpowiednim ustawieniu figurek, funkcja 'Sumy' jest używana do ich połączenia, tworząc unikalny obiekt. Taka metoda jest często stosowana w przemyśle graficznym, zwłaszcza w projektowaniu logo, gdzie unikalne kształty są istotne. Jest to zgodne ze standardami i dobrymi praktykami w branży graficznej, które zalecają efektywne wykorzystanie narzędzi edytora grafiki wektorowej do tworzenia złożonych kształtów.

Pytanie 11

Jakie wyniki zostaną wyświetlone po wykonaniu podanej w ramce kwerendy SQL SELECT na tabeli pracownicy, która zawiera rekordy?

idimienazwiskopensja
1AnnaKowalska3400
2MonikaNowak1300
3EwelinaNowakowska2600
4AnnaPrzybylska4600
5MariaKowal2200
6EwaNowacka5400
SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;
A. Kwota 19500, czyli suma wszystkich pensji zatrudnionych
B. Kwota 10000, co stanowi sumę pensji pracowników o id=4 i id=6
C. Dwie kwoty: 4600 oraz 5400, jako wynagrodzenia pracowników przekraczające 4000
D. Kwota 5400, co oznacza najwyższą pensję wśród pracowników
W zapytaniu SQL użyto funkcji agregującej SUM, która służy do sumowania wartości w określonej kolumnie. Klauzula WHERE ogranicza zbiór rekordów do tych, które spełniają dany warunek. W tym przypadku, pensja musi być większa niż 4000. Analizując tabelę, znajdujemy dwie osoby z pensjami spełniającymi ten warunek: pracownik o id=4 z pensją 4600 oraz pracownik o id=6 z pensją 5400. SUM(4600 + 5400) daje 10000. Prawidłowe zrozumienie wykorzystania funkcji agregujących w SQL jest kluczowe w analizie danych i raportowaniu. Jest to standardowa praktyka w branży IT, gdzie analiza danych jest podstawą przy podejmowaniu decyzji biznesowych. Funkcje agregujące, takie jak SUM, AVG, MAX, są fundamentalnymi narzędziami analitycznymi w bazach danych. Przy pracy nad większymi zbiorami danych, takie zapytania pomagają szybko uzyskać podsumowania, co jest nieocenione w analizie finansowej czy tworzeniu raportów zarządczych.

Pytanie 12

Aby dołączyć kaskadowy arkusz stylów zapisany w zewnętrznym pliku, należy użyć następującego fragmentu kodu HTML:

A.
<div id="styl.css" relation="css">
B.
<meta charset="styl.css">
C.
<option value="styl.css" type="text/css">
D.
<link rel="stylesheet" type="text/css" href="styl.css">
Poprawny jest znacznik <link rel="stylesheet" type="text/css" href="styl.css">. Zewnętrzny arkusz stylów to osobny plik .css, który dołączasz do strony w sekcji <head> dokumentu HTML właśnie znacznikiem <link>. Atrybut rel="stylesheet" mówi przeglądarce, że powiązany plik to arkusz stylów, href wskazuje jego ścieżkę, a type="text/css" (opcjonalny w HTML5) określa typ zawartości. Taki sposób dołączania CSS oddziela wygląd od treści i pozwala użyć jednego arkusza na wielu podstronach.

Pytanie 13

Określ rodzaj relacji między tabelami: Tabela1 oraz Tabela3?

Ilustracja do pytania
A. Wiele do jednego
B. Wiele do wielu
C. Jeden do jednego
D. Jeden do wielu
Rozważając różne typy relacji pomiędzy tabelami w relacyjnych bazach danych, istotne jest zrozumienie konceptu kluczy i połączeń. Relacja jeden do jednego implikuje, że każdemu rekordowi w jednej tabeli odpowiada dokładnie jeden rekord w drugiej. Stosuje się ją tam, gdzie dane można logicznie podzielić na dwie części, jak np. dane osobowe i szczegółowe informacje kontaktowe danej osoby. Relacja jeden do wielu oznacza, że jeden rekord z pierwszej tabeli łączy się z wieloma rekordami w drugiej. Przykładowo, jeden autor może napisać wiele książek. Taka struktura jest typowa przy modelowaniu hierarchii danych i przy relacjach typu rodzic-dziecko. W przypadku relacji wiele do wielu, potrzebna jest trzecia tabela, która pośredniczy między dwoma głównymi tabelami, przechowując ich klucze obce. Umożliwia to powiązanie wielu rekordów z obu stron. Typowe błędy polegają na niepoprawnym wyborze typu relacji, co prowadzi do redundancji danych i problemów z integralnością. Zrozumienie i prawidłowe zastosowanie tych koncepcji jest kluczowe dla projektowania efektywnych i skalowalnych baz danych, wspierając jednocześnie złożone operacje i analizy. Wybór niewłaściwego typu relacji może prowadzić do trudności w zarządzaniu danymi i skomplikowanych zapytań, co jest znanym wyzwaniem w zarządzaniu bazami danych.

Pytanie 14

Jaką wartość wydrukuje na standardowe wyjście poniższy fragment kodu C++?

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

int main() {
std::cout<<obliczenia(32);
}
A. 32
B. 2
C. 0
D. 3
Program w języku C++ zawiera funkcję obliczenia która przyjmuje parametr x. Wewnątrz funkcji wykonuje się operacja modulo x %= 3 co oznacza że zmienna x zostanie zastąpiona resztą z dzielenia x przez 3. W przypadku liczby 32 reszta z dzielenia przez 3 wynosi 2 ponieważ 32 dzielone przez 3 daje 10 z resztą 2. Następnie wykonuje się operacja inkrementacji x++ co oznacza że wartość x zostanie zwiększona o 1. W efekcie końcowym x przyjmie wartość 3. Funkcja zwraca tę wartość a wynik zostanie wypisany na standardowym wyjściu za pomocą std::cout. Zrozumienie operacji modulo oraz inkrementacji jest kluczowe w wielu zastosowaniach programistycznych szczególnie w algorytmach które operują na cyklicznych strukturach danych lub wymagają regularnego zwiększania wartości liczbowych. Operacja modulo jest często wykorzystywana do ograniczania zakresu wartości do pewnego zakresu np. w implementacji cyklicznych kolejek lub obliczaniu dni tygodnia. Dobrą praktyką jest także zrozumienie jak operacje te wpływają na wydajność i czytelność kodu co jest istotne w kontekście dużych projektów programistycznych. Poprawna odpowiedź to 3 ponieważ odpowiada ona wyniku jaki zostanie wypisany przez program.

Pytanie 15

Zawarty w ramce fragment kodu w języku JavaScript

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

Pytanie 16

W CSS zapis selektora p > i { color: red; } wskazuje, że kolor czerwony zostanie zastosowany do

A. wszelkiego tekstu w znaczniku <p> lub wszelkiego tekstu w znaczniku <i>
B. wyłącznie tekstu w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
C. wszystkiego tekstu w znaczniku <p> z wyjątkiem tekstu w znaczniku <i>
D. tylko tego tekstu w znaczniku <p>, który ma przypisaną klasę o nazwie i
Zapis selektora CSS p > i { color: red; } jest precyzyjny i wskazuje, że kolor czerwony zostanie zastosowany wyłącznie do elementów <i>, które znajdują się bezpośrednio w obrębie elementu <p>. Warto zrozumieć, że symbol '>' oznacza selektor dziecka, co oznacza, że styl dotyczy tylko tych <i>, które są bezpośrednimi potomkami <p>. Przykładowo, jeśli mamy strukturę HTML:<p>To jest <i>przykład</i> tekstu <i>z <i>zagnieżdżonym</i> elementem</i>.</p>, to tylko pierwszy znacznik <i> (czyli "przykład") będzie miał kolor czerwony, ponieważ drugi znacznik <i> jest zagnieżdżony i nie jest bezpośrednim dzieckiem <p>. W kontekście standardów CSS, stosowanie selektorów dziecka jest zalecane, gdyż pozwala na precyzyjniejsze określenie, do których elementów styl ma być zastosowany, co w praktyce ułatwia zarządzanie stylami na stronach z bardziej złożoną strukturą HTML.

Pytanie 17

Który kod oznacza kolor o odcieniu NIEBIESKIM?

A.
#EE0000
B.
#00EE00
C.
#EE00EE
D.
#0000EE
W zapisie #RRGGBB ostatnia para to niebieski. #0000EE ma zerowy czerwony i zielony, a wysoką składową niebieską - więc kolor jest NIEBIESKI. Dlatego niebieski to #0000EE.

Pytanie 18

Określ rezultat działania podanego kodu PHP, przy założeniu, że zmienna tab jest tablicą.

$tab = explode(",", "jelenie,sarny,dziki,lisy,borsuki"); 
echo $tab[1]." ".$tab[2];
A. lisy borsuki
B. dziki lisy
C. sarny dziki
D. jelenie sarny
Wynik wykonania kodu PHP przedstawionego w pytaniu to 'sarny dziki', co odpowiada trzeciej opcji. Analizując kod, najpierw wykorzystujemy funkcję explode, która dzieli ciąg znaków na elementy tablicy, używając przecinka jako separatora. W rezultacie zmienna $tab stanie się tablicą składającą się z pięciu elementów: 'jelenie', 'sarny', 'dziki', 'lisy', 'borsuki'. Następnie w instrukcji echo odwołujemy się do drugiego i trzeciego elementu tablicy, co odpowiada indeksom 1 i 2, ponieważ indeksowanie w PHP zaczyna się od zera. Zatem $tab[1] to 'sarny', a $tab[2] to 'dziki'. W kontekście praktycznym, znajomość pracy z tablicami oraz funkcji do ich manipulacji jest kluczowa w programowaniu w PHP, zwłaszcza przy pracy z danymi w formacie CSV lub innymi formatami wymagającymi podziału ciągów. Opanowanie takich technik jest istotne dla programistów zajmujących się tworzeniem aplikacji webowych, gdzie przetwarzanie danych wejściowych jest na porządku dziennym.

Pytanie 19

W języku PHP znak "//" wskazuje na

A. operator alternatywny
B. operator dzielenia całkowitego
C. początek komentarza jednoliniowego
D. początek skryptu
W języku PHP znak '//' oznacza początek komentarza jednoliniowego. Komentarze w PHP są istotnym elementem kodu, pozwalającym programistom na dodawanie adnotacji, które nie wpływają na wykonywanie skryptu. Komentarze są niezwykle pomocne, gdyż umożliwiają wyjaśnienie złożonych fragmentów kodu, co ułatwia jego dalsze utrzymanie i rozwijanie. Dzięki używaniu '//', programista może opisać, co dany fragment kodu robi, dla siebie lub innych osób przeglądających kod w przyszłości. Przykład zastosowania: jeśli mamy kod 'echo "Hello World!";', możemy dodać komentarz wyjaśniający: '// Wyświetla tekst Hello World!'. Warto zaznaczyć, że PHP pozwala także na korzystanie z komentarzy wieloliniowych, które zaczynają się od '/**' i kończą na '*/'. Stosowanie komentarzy jest zgodne z najlepszymi praktykami programistycznymi, które zalecają dokumentowanie kodu oraz poprawne jego komentowanie, co jest częścią standardów kodowania, takich jak PSR-1 oraz PSR-2, promujących czytelność i spójność w kodzie.

Pytanie 20

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

A. gradientu
B. antyaliasingu
C. szumu
D. pikselizacji
Schodkowanie (aliasing) to widoczne „schodki” na ukośnych i zaokrąglonych krawędziach w grafice rastrowej, która składa się z kwadratowych pikseli. Antyaliasing usuwa ten efekt: na granicy kształtu wprowadza piksele o kolorach pośrednich między obiektem a tłem, dzięki czemu przejście wygląda płynnie i naturalnie. Stosuje się go przy renderowaniu czcionek, kształtów i krawędzi grafiki na strony internetowe. Dlatego to właśnie filtr antyaliasingu odpowiada za wygładzenie schodkowania.

Pytanie 21

W MS SQL Server predefiniowana rola o nazwie dbcreator umożliwia użytkownikowi

A. wykonywanie wszelkich operacji na serwerze oraz posiadanie praw do każdej bazy
B. zarządzanie plikami na nośniku
C. zarządzanie zabezpieczeniami systemu
D. tworzenie, aktualizowanie, usuwanie oraz przywracanie bazy danych
Wszystkie pozostałe odpowiedzi są niepoprawne z punktu widzenia funkcji przypisanych do roli dbcreator w MS SQL Server. Stwierdzenie, że rola ta pozwala na wykonywanie każdej operacji na serwerze i posiadanie prawa własności każdej bazy, jest błędne, ponieważ taka funkcjonalność jest zarezerwowana dla roli sysadmin, która ma pełne uprawnienia serwera. Użytkownicy z rolą sysadmin mogą wykonywać jakiekolwiek operacje, co stawia ich w pozycji pełnej kontroli, w przeciwieństwie do roli dbcreator, która jest ograniczona do zarządzania bazami danych. Odnośnie zarządzania bezpieczeństwem systemu, to również nie jest odpowiednia funkcja dla dbcreator, ponieważ zarządzanie bezpieczeństwem wymaga bardziej zaawansowanych uprawnień, które są przydzielane innym rolom, takim jak securityadmin. W końcu, zarządzanie plikami na dysku nie wchodzi w zakres kompetencji dbcreator, ponieważ ta rola skupia się na operacjach związanych z bazami danych, a nie na zarządzaniu systemem plików czy innymi zasobami systemowymi. Te nieprawidłowe wnioski mogą wynikać z nieporozumienia dotyczącego funkcji ról w SQL Server, a także z braku znajomości hierarchii uprawnień oraz ich zastosowania w praktyce. Zrozumienie różnic między rolami jest kluczowe w kontekście efektywnego zarządzania bezpieczeństwem i dostępem w środowisku baz danych.

Pytanie 22

Którego atrybutu użyć, aby scalić w POZIOMIE dwie sąsiednie komórki w wierszu tabeli?

A.
cellspacing
B.
rowspan
C.
colspan
D.
cellpadding
Atrybut colspan w komórce tabeli (<td>/<th>) scala ją z sąsiednimi w POZIOMIE - np. colspan="2" rozciąga komórkę na dwie kolumny. Dlatego poziome łączenie komórek daje colspan.

Pytanie 23

W relacyjnym modelu baz danych, termin krotka odnosi się do

A. wierszy tabeli, z wyjątkiem wiersza nagłówkowego, w którym znajdują się nazwy kolumn
B. wszystkich kolumn tabeli, które zawierają atrybuty danego obiektu
C. liczby rekordów w danej tabeli
D. wszystkich wierszy tabeli łącznie z wierszem nagłówkowym
W relacyjnym modelu baz danych, krotka odnosi się do jednego wiersza tabeli, który przechowuje zestaw atrybutów (kolumn) dla danego obiektu. Każda krotka jest zbiorem wartości, które są powiązane z określonymi kolumnami. Krotki stanowią fundamentalny element relacyjnych baz danych, w których dane są zorganizowane w formie tabel, co ułatwia ich przechowywanie, przetwarzanie oraz zapytania. Na przykład, w tabeli przechowującej informacje o klientach, każda krotka mogłaby zawierać dane takie jak imię, nazwisko, adres e-mail i numer telefonu. Wartości te są ze sobą powiązane i tworzą kompletny zestaw informacji dotyczący jednego klienta. Zgodnie z normami SQL, krotki są często przetwarzane za pomocą instrukcji SELECT, które umożliwiają pobieranie, modyfikację i zarządzanie danymi na poziomie pojedynczych wierszy. Krotki są nie tylko podstawą struktury danych, ale również fundamentem, na którym opierają się operacje na bazach danych, co czyni je kluczowym pojęciem w projektowaniu oraz zarządzaniu relacyjnymi bazami danych.

Pytanie 24

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Jakie zapytanie SQL należy zapisać, aby korzystając z tej relacji, prawidłowo wyświetlić nazwiska oraz przyporządkowane im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby, Adresy;
B. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
C. SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
D. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id = Adresy.id;
Prawidłowa odpowiedź opiera się na instrukcji SELECT z użyciem JOIN, co jest bardzo ważne przy pracy z relacyjnymi bazami danych. W tym przypadku, zapytanie SELECT jest używane do wyboru dwóch kolumn - 'nazwisko' i 'Miasto' - z połączonych tabel 'Osoby' i 'Adresy'. Wykorzystuje się tutaj złączenie (JOIN), które jest kluczowym konceptem w SQL umożliwiającym łączenie danych z różnych tabel w jednym zapytaniu. Odpowiednia składnia JOIN wymaga określenia dwóch tabel do połączenia oraz warunku łączenia, który w tym przypadku jest 'Osoby.Adresy_id = Adresy.id'. Ten warunek oznacza, że rekordy z obu tabel będą połączone, gdy wartość kolumny 'Adresy_id' w tabeli 'Osoby' będzie równa wartości kolumny 'id' w tabeli 'Adresy'. Jest to typowe użycie klucza obcego ('Adresy_id') do odwołania się do klucza głównego w innej tabeli ('id' w tabeli 'Adresy'). To jest dobry przykład pokazujący, jak praktycznie wykorzystuje się relacje pomiędzy tabelami w SQL.

Pytanie 25

W bazie danych MySQL utworzono tabelę. Aby jednoznacznie zdefiniować, że pole ID jest kluczem głównym, należy dopisać

CREATE TABLE Osoby (
  ID int NOT NULL,
  nazwisko varchar(255) NOT NULL,
  wiek int
);
A. PRIMARY KEY (ID) przed zamknięciem nawiasu.
B. PK (ID) przed zamknięciem nawiasu.
C. PK w linii, w której jest zdefiniowane pole ID.
D. FOREIGN KEY w linii, w której jest zdefiniowane pole ID.
Twoja odpowiedź jest prawidłowa. W języku SQL, i w szczególności w systemie baz danych MySQL, aby zdefiniować pole ID jako klucz główny, należy użyć klauzuli PRIMARY KEY. Składnia jest dość prosta i wymaga umieszczenia wyrażenia 'PRIMARY KEY (ID)' przed zamknięciem nawiasu definiującego strukturę tabeli. Klucz główny jest kluczem unikalnym, który identyfikuje rekord w tabeli. Nie mogą istnieć dwa rekordy w tabeli z tą samą wartością klucza głównego, co gwarantuje unikalność każdego rekordu. Klucze główne są też często używane do tworzenia powiązań między tabelami, co jest podstawą relacyjnych baz danych. Wykorzystanie kluczy głównych jest zgodne ze standardami i dobrą praktyką w projektowaniu baz danych.

Pytanie 26

Co nada polecenie

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
(anna nie miała wcześniej praw)?
A. prawa do dodawania kolumn i zmiany STRUKTURY tabeli klienci
B. prawa do danych we WSZYSTKICH tabelach bazy
C. prawa do wybierania, wstawiania i aktualizacji DANYCH w tabeli klienci
D. prawa do zmiany struktury wszystkich tabel bazy
GRANT SELECT, INSERT, UPDATE ON klienci TO anna; nadaje użytkowniczce anna prawa do operacji na DANYCH konkretnej tabeli klienci: odczytu (SELECT), wstawiania (INSERT) i aktualizacji (UPDATE). Dlatego nadaje prawa do wybierania, wstawiania i aktualizacji danych w tabeli klienci.

Pytanie 27

Jak nazywa się sytuacja, w której funkcja wywołuje samą siebie?

A. iteracja
B. dziedziczenie
C. hermetyzacja
D. rekurencja
Rekurencja to technika, w której funkcja wywołuje samą siebie, by rozwiązać problem przez sprowadzenie go do prostszego przypadku tego samego typu. Każda poprawna rekurencja musi mieć warunek bazowy (przypadek prosty, kończący wywołania), inaczej powstanie nieskończone wywoływanie i przepełnienie stosu. Klasyczne przykłady to silnia czy ciąg Fibonacciego. Często alternatywą jest iteracja (pętla). Dlatego wywołanie funkcji przez samą siebie to rekurencja.

Pytanie 28

Tabele: Firmy oraz Zamówienia są ze sobą powiązane relacją jeden do wielu. Aby uzyskać tylko identyfikatory zamówień wraz z odpowiadającymi im nazwami firm dla przedsiębiorstw, których poziom wynosi 4, należy użyć polecenia

Ilustracja do pytania
A. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy WHERE poziom = 4
B. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.Firmy_id = Firmy.id WHERE poziom = 4
C. SELECT id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.Firmy_id = Firmy.id WHERE poziom = 4
D. SELECT Zamówienia.id, nazwa FROM Zamówienia JOIN Firmy ON Zamówienia.id = Firmy.id WHERE poziom = 4
Odpowiedź numer 2 jest prawidłowa, ponieważ wykorzystuje poprawne połączenie między tabelami Zamowienia i Firmy przy użyciu klucza obcego Firmy_id, co jest zgodne z praktykami projektowania relacyjnych baz danych. Klucz obcy w tabeli Zamowienia wskazuje na klucz główny w tabeli Firmy, co odzwierciedla relację jeden do wielu, gdzie jedna firma może mieć wiele zamówień. Właściwe stosowanie kluczy obcych nie tylko poprawia integralność danych, ale także ułatwia zrozumienie struktury danych. Właściwe użycie klauzuli JOIN z warunkiem ON pozwala na efektywne powiązanie rekordów z obu tabel. Warunek WHERE poziom = 4 pozwala na filtrowanie wyników, co jest kluczowe w analizie danych, umożliwiając wyodrębnienie tylko tych rekordów, które spełniają określone kryteria. Dzięki temu możemy uzyskać zestaw danych zawierający tylko te zamówienia, które pochodzą od firm o określonym poziomie, co jest częstym wymogiem w raportach biznesowych. Praktyczne użycie tego typu zapytań jest niezastąpione w aplikacjach analitycznych i systemach raportowania, gdzie precyzyjne filtrowanie i łączenie danych ma kluczowe znaczenie dla podejmowania decyzji biznesowych. Dbając o zgodność z najlepszymi praktykami, takie zapytania powinny być dobrze testowane i optymalizowane, aby zapewnić ich efektywność w dużych zbiorach danych.

Pytanie 29

W jakim celu tworzy się w tabeli klucz OBCY?

A. aby jednoznacznie identyfikować rekord w tabeli
B. aby stworzyć formularz do wprowadzania danych
C. aby wiązać go z innymi kluczami obcymi tej samej tabeli
D. aby utworzyć relację (np. 1..n) z kluczem głównym innej tabeli
Klucz OBCY tworzy się, aby ustanowić RELACJĘ między tabelami - wskazuje klucz główny innej tabeli (np. w relacji 1..n). Pilnuje też spójności powiązań. Dlatego klucz obcy służy do utworzenia relacji z kluczem głównym innej tabeli.

Pytanie 30

Który efekt został zaprezentowany na filmie?

A. Zwiększenie ostrości zdjęcia.
B. Zmiana jasności zdjęć.
C. Przenikanie zdjęć.
D. Zmniejszenie kontrastu zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 31

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

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

Pytanie 32

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

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

Pytanie 33

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

A. CIE
B. HSV
C. CMY
D. CMYK
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 34

Który paragraf w przedstawionym kodzie zostanie wyświetlony czcionką o kolorze niebieskim?

<!DOCTYPE html>
<html>
<head>
<style>
div~p { color: blue; }
</style>
</head>
<body>
  <div>
    <p>pierwszy paragraf</p>
      <div>
        <p>drugi paragraf</p>
        <p>trzeci paragraf</p>
      </div>
    <p>czwarty paragraf</p>
  </div>
</body>
</html>
A. Drugi.
B. Trzeci.
C. Czwarty.
D. Pierwszy.
Poprawnie wskazany został czwarty paragraf, bo dokładnie tak działa selektor CSS użyty w tym przykładzie. Zapis `div~p` to tzw. selektor rodzeństwa (general sibling selector). Oznacza on: „wybierz każdy element `<p>`, który jest młodszym rodzeństwem jakiegokolwiek elementu `<div>` i znajduje się z nim na tym samym poziomie drzewa DOM (ma tego samego rodzica)”. Kluczowe są tu dwie rzeczy: ten sam rodzic oraz to, że dany element musi występować w kodzie **po** elemencie `div`. W podanym fragmencie HTML wszystkie paragrafy znajdują się wewnątrz jednego głównego `<div>`. Jednak tylko „czwarty paragraf” jest rodzeństwem zewnętrznego `<div>` i jednocześnie pojawia się po nim jako element `<p>` na tym samym poziomie zagnieżdżenia. „Pierwszy”, „drugi” i „trzeci” paragraf są zagnieżdżone wewnątrz divów, więc nie są rodzeństwem dla tagu `div`, do którego odnosi się selektor. W praktyce selektor `A~B` często stosuje się np. do stylowania elementów formularza i opisów, które pojawiają się po jakimś polu, albo do tworzenia efektów typu: „wszystkie akapity po tym bloku mają inny kolor”. Warto też znać różnicę między `div p` (wszystkie potomne akapity w divie), `div>p` (tylko bezpośrednie dzieci) oraz `div+p` (tylko pierwszy akapit bezpośrednio po divie). To są podstawowe narzędzia przy precyzyjnym stylowaniu struktury HTML zgodnie z dobrymi praktykami CSS i zaleceniami specyfikacji W3C.

Pytanie 35

W systemie MySQL należy użyć polecenia REVOKE, aby odebrać użytkownikowi anna możliwość wprowadzania zmian tylko w definicji struktury bazy danych. Odpowiednie polecenie do zrealizowania tej operacji ma formę

A. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
D. REVOKE ALL ON tabela1 FROM 'anna'@'localhost'
Poprawna odpowiedź to 'REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost''. To polecenie skutecznie odbiera użytkownikowi 'anna' prawo do wykonywania zmian w strukturze bazy danych, w tym do tworzenia nowych tabel, modyfikowania istniejących oraz usuwania tabel. W kontekście MySQL, polecenie REVOKE jest kluczowym narzędziem w zarządzaniu uprawnieniami użytkowników. W praktyce, gdy administrator bazy danych chce ograniczyć możliwości danej osoby, aby nie mogła na przykład zmieniać struktury bazy, musi precyzyjnie określić, które uprawnienia chce cofnąć. Dobrym przykładem byłoby zastosowanie tego polecenia w sytuacji, gdy użytkownik nie przestrzega zasad bezpieczeństwa lub nieautoryzowanie modyfikuje dane. Warto również zauważyć, że użycie 'ALTER' w poleceniu wskazuje na prawo do zmiany definicji tabeli, co jest kluczowe w kontekście bezpieczeństwa danych. Użycie polecenia REVOKE jest zgodne z najlepszymi praktykami w zakresie zarządzania dostępem, które zalecają minimalizację uprawnień przyznawanych użytkownikom, aby zredukować ryzyko przypadkowych lub złośliwych działań.

Pytanie 36

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

A. ustawienie bloku na lewo względem innych
B. wyrównanie tekstu do lewej strony
C. umieszczanie bloków jeden pod drugim
D. dopasowanie elementów tabeli do lewej krawędzi
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 37

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

class Owoc {
    public $nazwa;
    private $kolor;
    function set_nazwa($nazwa) {
        $this->nazwa = $nazwa;
    }
}
A. Zawiera dwa pola i jedną metodę, a pole kolor ma zasięg widzialności ograniczony wyłącznie do metod klasy.
B. Zawiera dwa pola oraz jeden konstruktor, oba pola mają zasięg widzialności ograniczony wyłącznie do metod klasy.
C. Zawiera dwa pola i jedną metodę, a pole nazwa ma zasięg widzialności ograniczony wyłącznie do metod klasy.
D. Zawiera jedno pole i dwie metody, z których jedna ma ograniczony zasięg prywatny.
Wiele z błędnych odpowiedzi opiera się na niewłaściwej interpretacji widoczności pól oraz liczby metod w klasie. Klasa Owoc ma jedno publiczne pole o nazwie nazwa oraz jedno prywatne pole kolor, co oznacza, że tylko metody wewnątrz klasy mogą uzyskiwać dostęp do pola kolor. Pierwsza odpowiedź sugeruje, że klasa ma jedno pole i dwie metody, co jest niezgodne z rzeczywistością, ponieważ nie zdefiniowano drugiej metody. Z kolei odpowiedzi wskazujące na istnienie konstruktora są również błędne, ponieważ klasa Owoc nie definiuje żadnego konstruktora, co oznacza, że PHP automatycznie generuje domyślny konstruktor, ale nie jest on jawnie widoczny w kodzie. Istotnym błędem jest również założenie, że pole nazwa ma ograniczoną widoczność, co nie jest prawdziwe, gdyż jest ono publiczne i dostępne z zewnątrz klasy. Takie nieprawidłowe wnioski mogą wynikać z braku zrozumienia podstawowych zasad programowania obiektowego oraz widoczności w PHP, co jest kluczowe dla poprawnego projektowania aplikacji. W szczególności, umiejętność rozróżnienia między różnymi poziomami widoczności (publiczne, prywatne, chronione) jest niezbędna dla efektywnego korzystania z obiektów i klas w tym języku.

Pytanie 38

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. SUM
B. NUMBER
C. COUNT
D. AVG
Funkcja COUNT jest naprawdę ważna w SQL, bo pozwala nam zliczać rekordy w naszych zbiorach danych. Używa się jej w różnych sytuacjach, na przykład przy robieniu raportów czy analizie danych. Możesz na przykład napisać zapytanie: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska'. Dzięki temu dowiesz się, ilu klientów jest z Polski. To bardzo przydaje się do analizy demograficznej czy oceniania rynku. Co też warto wiedzieć, COUNT działa na wszystkich rekordach, bez względu na to, co jest w kolumnach. Takie wszechstronne narzędzie z pewnością ułatwia pracę z danymi. A jeśli dodasz klauzulę GROUP BY do COUNT, to możesz zliczać rekordy w różnych kategoriach, co jest mega pomocne przy skomplikowanych raportach. Ogólnie rzecz biorąc, używanie funkcji agregujących jak COUNT to dobra praktyka w SQL, bo sprawia, że kod jest bardziej efektywny i czytelny.

Pytanie 39

Aby usunąć wybrane wiersze (rekordy) z tabeli, należy użyć polecenia:

A.
DELETE
B.
ALTER
C.
GRANT
D.
SELECT
Wiersze z tabeli usuwa polecenie DELETE, zwykle z warunkiem WHERE wskazującym, które rekordy skasować, np. DELETE FROM klienci WHERE id = 5. Bez warunku usunęłoby wszystkie wiersze, dlatego stosuje się je ostrożnie. Tabela i jej struktura pozostają - znikają tylko dane. Dlatego do usuwania rekordów służy DELETE.

Pytanie 40

Jak nazywa się proces, w trakcie którego identyfikuje się oraz eliminuje błędy w kodzie źródłowym aplikacji?

A. Kompilacja
B. Normalizacja
C. standaryzacja
D. Debugowanie
Kompilowanie to proces, który przekształca kod źródłowy napisany w języku wysokiego poziomu w kod maszynowy, który jest zrozumiały dla komputera. W trakcie kompilacji mogą wystąpić błędy składniowe, jednak kompilacja nie zajmuje się usuwaniem błędów logicznych, które mogą pojawić się w działającym programie. Stąd też nie jest to tożsame z procesem debugowania, który koncentruje się na wykrywaniu oraz eliminacji błędów w kodzie już skompilowanym. Standaryzacja odnosi się do procesu ustalania norm i standardów dla określonych praktyk lub produktów, co ma na celu zapewnienie ich jakości i interoperacyjności, ale nie dotyczy bezpośrednio błędów w kodzie. Normalizacja z kolei jest terminem używanym w różnych kontekstach, ale w programowaniu odnosi się często do formatu danych lub struktury, co również nie ma bezpośredniego związku z procesem wykrywania i usuwania błędów. Wybierając niewłaściwe odpowiedzi, można popaść w pułapkę myślenia, które nie uwzględnia różnicy pomiędzy różnymi etapami tworzenia oprogramowania. Każdy z wymienionych procesów ma swoje unikalne funkcje i cel, które są istotne w kontekście inżynierii oprogramowania, ale tylko debugowanie koncentruje się na naprawie błędów w kodzie, co czyni je kluczowym elementem w utrzymaniu jakości produktów programistycznych.