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: 14 czerwca 2026 09:06
  • Data zakończenia: 14 czerwca 2026 09:42

Egzamin zdany!

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

Fragment kodu w języku HTML zawarty w ramce ilustruje zestawienie

Ilustracja do pytania
A. numerowaną.
B. skrótów.
C. wypunktowaną.
D. odnośników.
Kod HTML zawierający znaczniki <ol> oraz <li> tworzy listę numerowaną ponieważ <ol> oznacza ordered list czyli listę uporządkowaną co skutkuje automatycznym numerowaniem każdego elementu w przeglądarkach internetowych. Znaczniki <li> reprezentują pojedyncze elementy listy zapewniając organizację danych w czytelnej formie. Taki sposób przedstawiania informacji jest powszechnie stosowany w tworzeniu dokumentów HTML i stron internetowych gdzie hierarchia i kolejność elementów ma kluczowe znaczenie. Za pomocą CSS można dodatkowo dostosować styl numerowania oraz wizualne aspekty listy co pozwala na większą elastyczność w projektowaniu interfejsu użytkownika. Standardy internetowe takie jak te rekomendowane przez W3C zachęcają do stosowania semantycznych znaczników co poprawia dostępność i SEO strony. Ponadto listy numerowane są użyteczne w sytuacjach gdy wymagana jest jasna kolejność wykonywania zadań lub prezentacja kroków w procesie co czyni je idealnym narzędziem zarówno w dokumentacji technicznej jak i w interaktywnych przewodnikach online.

Pytanie 2

Który obiekt bazy danych z graficznym interfejsem służy do wprowadzania danych?

A. formularz
B. encja
C. raport
D. kwerenda
Formularz to obiekt bazy danych z graficznym interfejsem, który ułatwia WPROWADZANIE i edycję danych - zamiast wpisywać je wprost do tabeli, użytkownik korzysta z czytelnych pól. Dlatego do wprowadzania danych służy formularz.

Pytanie 3

Jaki jest efekt wielokrotnego wykonywania kodu PHP?

if (!isset($_COOKIE["ciastko"]))
    $zm = 1;
  else
    $zm = intval($_COOKIE["ciastko"]) + 1;
setcookie("ciastko", $zm);
A. dodanie danych do ciasteczka tylko przy pierwszym wejściu na stronę
B. pokazanie ciasteczka z zapisanym parametrem
C. zapisanie do ciasteczka wartości 1 przy każdym odświeżeniu witryny
D. zliczanie liczby wizyt na stronie
Program w PHP pokazany w pytaniu wykorzystuje mechanizm ciasteczek do zliczania liczby odwiedzin strony przez użytkownika. Mechanizm ten opiera się na zmiennej 'ciastko', która jest przechowywana w ciasteczku w przeglądarce użytkownika. Przy pierwszym uruchomieniu strony, jeśli ciasteczko nie istnieje, ustawiana jest jego wartość na 1. W kolejnych odwiedzinach wartość ta jest odczytywana i zwiększana o 1, a następnie ponownie zapisywana do ciasteczka. Dzięki temu użytkownik, odświeżając stronę, widzi aktualizowaną liczbę odwiedzin. Takie rozwiązanie jest skuteczne w śledzeniu aktywności użytkownika na stronie, ale ma swoje ograniczenia. Na przykład, jeśli użytkownik wyczyści ciasteczka w swojej przeglądarce, licznik zostanie zresetowany, co może być niepożądane w niektórych aplikacjach. Zliczanie odwiedzin z wykorzystaniem ciasteczek jest jednak popularnym podejściem ze względu na prostotę implementacji i brak potrzeby skomplikowanej infrastruktury serwerowej. W praktyce, dla bardziej zaawansowanej analizy odwiedzin, często korzysta się również z narzędzi analitycznych, jak Google Analytics, które pozwalają na śledzenie użytkowników bez wpływu na ich lokalne ustawienia przeglądarki

Pytanie 4

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

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

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

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

Pytanie 5

Czym jest DBMS?

A. obiektowym językiem programowania do tworzenia stron
B. systemem zarządzania bazą danych
C. strukturalnym językiem zapytań do bazy danych
D. kaskadowym arkuszem stylów do opisu wyglądu strony
DBMS (Database Management System) to system zarządzania bazą danych - oprogramowanie, które przechowuje dane, udostępnia je wielu użytkownikom, kontroluje dostęp i wykonuje zapytania (np. SQL). Przykłady to MySQL, MariaDB, PostgreSQL czy MS SQL Server. Dlatego DBMS to system zarządzania bazą danych.

Pytanie 6

Którego słowa kluczowego użyć w języku C, aby zdefiniować stałą?

A.
#CONST
B.
#INCLUDE
C.
static
D.
const
W języku C stałą definiuje się słowem kluczowym const, np. const int max = 100; - wartości takiej zmiennej nie można potem zmienić. Dlatego stałą tworzy const.

Pytanie 7

Wskaż blok sformatowany poniższym stylem CSS:

background: linear-gradient(to right, LightBlue, DarkBlue);
Ilustracja do pytania
A. Blok 1.
B. Blok 2.
C. Blok 4.
D. Blok 3.
Niestety, wybrana odpowiedź nie jest poprawna. Zrozumienie jak działają style CSS, zwłaszcza gradienty, jest kluczowe dla tworzenia atrakcyjnych stron internetowych. W stylach CSS, 'background: linear-gradient(to right, LightBlue, DarkBlue);' tworzy gradient liniowy, który przechodzi od koloru jasnoniebieskiego (LightBlue) do ciemnoniebieskiego (DarkBlue) od lewej do prawej strony. Ważnym aspektem jest zrozumienie, że gradient liniowy to płynne przejście kolorów wzdłuż linii prostej, co oznacza, że kolor tła danego elementu stopniowo zmienia się od jednego koloru do drugiego w określonym kierunku. Pomyłka mogła wynikać z niezrozumienia tego, jak działa gradient liniowy lub z błędnego zidentyfikowania kierunku gradientu. Pamiętaj, że kierunek gradientu może być określany za pomocą słów (jak 'to right') lub za pomocą stopni. Przykładowo, 'to right' odpowiada '90deg'. Spośród przedstawionych bloków, tylko Blok 2. ma gradient, który przechodzi poziomo od jasnoniebieskiego do ciemnoniebieskiego, co oznacza, że jest on sformatowany zgodnie z podanym stylem CSS.

Pytanie 8

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)
Odpowiedź, którą wybrałeś, to umowa == 'praca' && (pensja >= 4000 && pensja <= 4500). To jest faktycznie odpowiednia opcja, bo spełnia warunki do wygenerowania raportu. To ważne, żeby oba warunki były spełnione – pracownik musi mieć umowę o pracę i pensja powinna być w zakresie od 4000 do 4500 zł. Na przykład, jeśli ktoś zarabia 4200 zł, to wtedy wszystko gra i raport się pojawi. W programowaniu używanie operatorów logicznych, takich jak '&&', jest kluczowe, bo pozwalają one precyzyjnie ustalić kryteria. Dobrze zrozumiane operatory '&&' i '||' pomagają unikać niejasności i błędów w logice, a to jest podstawa dobrego pisania kodu.

Pytanie 9

Do czego służy w PHP funkcja trim()?

A. do skracania tekstu o podaną liczbę znaków
B. do wyświetlania części wspólnej dwóch tekstów
C. do usuwania białych (lub podanych) znaków z obu końców tekstu
D. do podawania długości tekstu
Funkcja trim() usuwa białe znaki (spacje, tabulatory, znaki nowej linii) z OBU końców tekstu - a po podaniu drugiego argumentu także wskazane znaki. Dlatego trim() usuwa białe lub podane znaki z obu końców tekstu.

Pytanie 10

Jaką wartość zwróci funkcja zoo zdefiniowana w języku C++, wywołana z aktualnym parametrem 3.55

int zao(float x){
    return (x + 0.5);
}
A. 4
B. 3
C. 4.05
D. 3.5
Niestety, wybrana odpowiedź jest niepoprawna. Możliwe, że zapomniano o specyficznych zasadach konwersji typów danych w języku C++. W języku tym, jeśli mamy do czynienia z wartościami zmiennoprzecinkowymi (float) i konwertujemy je do wartości całkowitych (int), część ułamkowa jest zawsze odrzucana. Nie ma tutaj zaokrąglenia do najbliższej liczby całkowitej. Dlatego, nawet jeśli wynik działania wewnątrz funkcji wynosi 4.05, po konwersji do typu int, zostaje z tego tylko 4. To jest typowy błąd, który może prowadzić do nieoczekiwanych wyników, szczególnie w programach, gdzie precyzja obliczeń jest kluczowa. Pamiętaj zawsze o tej specyfice języka C++ i dokładnie określaj typy danych, z którymi pracujesz.

Pytanie 11

Który typ danych w języku C++ ma najszerszy zakres wartości całkowitych?

A. short
B. int
C. long long
D. long int
Spośród wymienionych typów całkowitych C++ najszerszy zakres ma long long (zwykle 64-bitowy). Dlatego największy zakres daje long long.

Pytanie 12

Zmienna należąca do typu integer lub int jest w stanie przechować

A. liczbę rzeczywistą
B. ciąg znaków
C. znak
D. liczbę całkowitą
Typ zmiennych integer, czyli int, jest super ważny w programowaniu, bo służy do przechowywania liczb całkowitych. To takie liczby, co nie mają części dziesiętnych. Jest sporo języków programowania, które go używają, na przykład C++, Java czy Python. Głównie dzięki nim możemy efektywnie przechowywać i operować na tych liczbach. Wartości tego typu mogą być różne w zależności od systemu, na przykład w 32-bitowym typ int przechowuje liczby od -2 147 483 648 do 2 147 483 647. Używamy liczb całkowitych w różnych algorytmach, zwłaszcza tam, gdzie liczy się precyzja, jak w zliczaniu elementów albo w operacjach matematycznych. W standardzie C99 mamy różne typy całkowite, co pomaga w dokładnym określeniu, co potrzebujemy. Moim zdaniem, ogarnięcie typu integer to podstawa dla każdego, kto chce coś programować, bo na tym buduje się operacje matematyczne i logiczne.

Pytanie 13

Jakie polecenie należy zastosować, aby w trakcie tworzenia tabeli dodać klucz obcy obejmujący wiele kolumn?

A. CONSTRAINT fk_osoba_uczen FOREIGN KEY ON (nazwisko, imie) REFERENCES osoby (nazwisko,imie)
B. CONSTRAINT fk_osoba_uczen FOREIGN KEY (nazwisko, imie) REFERENCES osoby (nazwisko,imie)
C. CONSTRAINT(nazwisko,imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
D. CONSTRAINT(nazwisko,imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
Odpowiedź 'CONSTRAINT fk_osoba_uczen FOREIGN KEY (nazwisko, imie) REFERENCES osoby (nazwisko,imie)' jest poprawna, ponieważ poprawnie definiuje klucz obcy na wielu kolumnach. Klucz obcy jest używany do ustanawiania relacji między tabelami, co jest kluczowe w modelowaniu danych w relacyjnych bazach danych. W tym przypadku, 'fk_osoba_uczen' to nazwa ograniczenia, która pozwala na łatwe identyfikowanie klucza obcego w przyszłości. Wskazanie wielu kolumn w nawiasach po słowie kluczowym 'FOREIGN KEY' jasno określa, które kolumny tworzą klucz obcy w tabeli, podczas gdy 'REFERENCES osoby (nazwisko, imie)' precyzuje, że te kolumny odnoszą się do kolumn w tabeli 'osoby'. Tego rodzaju konstrukcja jest zgodna ze standardami SQL i dobrymi praktykami, ponieważ umożliwia zachowanie integralności danych oraz zapewnia spójność między związaną tabelą a tabelą główną. Przykładowo, gdy mamy rekordy ucznia i chcemy, aby każdy uczeń był powiązany z jego rodzicem w tabeli 'osoby', dobrze zdefiniowany klucz obcy z użyciem wielu kolumn zapobiegnie wprowadzeniu nieprawidłowych danych. Zastosowanie tej techniki ułatwia także późniejsze zapytania do bazy danych oraz zapewnia lepszą organizację danych.

Pytanie 14

Wskaż warunek w języku JavaScript, który ma na celu sprawdzenie, czy przynajmniej jeden z poniższych przypadków jest spełniony: 1) dowolna naturalna liczba a jest liczbą trzycyfrową 2) dowolna liczba całkowita b jest liczbą ujemną

A. ((a>99)&&(a<1000))||(b<0)
B. ((a>99)||(a<1000))||(b<0)
C. ((a>99)||(a<1000))&&(b<0)
D. ((a>99)&&(a<1000))&&(b<0)
Wszystkie pozostałe odpowiedzi zawierają błędy w logice warunków, które prowadzą do niepoprawnych wywołań logicznych. W przypadku pierwszego zapisu ((a>99)||(a<1000))||(b<0) użycie operatora '||' w pierwszej części oznacza, że wystarczy, aby a było większe niż 99 lub mniejsze niż 1000, co w praktyce nigdy nie wyklucza a z zakresu liczb naturalnych, ponieważ wszystkie liczby naturalne (w tym te jedno- i dwu-cyfrowe) spełniają ten warunek. To powoduje, że wynik będzie zawsze prawdziwy, niezależnie od wartości a. Kolejny zapis ((a>99)&&(a<1000))&&(b<0) również jest błędny, ponieważ wymaga, aby obie części były prawdziwe równocześnie. Oznacza to, że zarówno warunek trzycyfrowości liczby a, jak i warunek, że b musi być liczbą ujemną, muszą być spełnione, aby całość była prawdziwa. W sytuacji, gdy a jest liczbą trzycyfrową, ale b jest liczbą dodatnią, wynik będzie fałszywy, co nie spełnia założonych wymagań, które mówią o tym, że wystarczy, aby jeden z przypadków był prawdziwy. Wreszcie, ostatni zapis ((a>99)&&(a<1000))&&(b<0) jest identyczny w swej logice do poprzedniego, jedynie potwierdza, że oba warunki muszą być spełnione jednocześnie, co z kolei ogranicza możliwości otrzymania prawdziwego wyniku. W kontekście programowania i analizy logicznej, kluczowe jest zrozumienie operatorów logicznych oraz ich zastosowanie w konstrukcjach warunkowych, aby uzyskać zamierzony efekt działania.

Pytanie 15

Który z poniższych obrazów został sformatowany przy użyciu zaprezentowanego stylu CSS?

Ilustracja do pytania
A. A
B. C
C. D
D. B
Odpowiedź A jest prawidłowa, ponieważ zastosowane style CSS dokładnie odzwierciedlają podany kod. Styl img { padding: 5px; border: 1px solid grey; border-radius: 10px; } oznacza, że obrazek otrzymuje wewnętrzny margines o wartości 5 pikseli, szary, jednopikselowy, ciągły obramowanie oraz zaokrąglenie narożników o promieniu 10 pikseli. Efektem tego jest estetyczny wygląd, który umożliwia lepszą prezentację treści graficznych w projektach webowych. Padding pozwala na uzyskanie równowagi wizualnej, natomiast border-radius zapewnia miękkość krawędzi, co jest często stosowane w nowoczesnym web designie. Praktycznym zastosowaniem takich stylów jest m.in. tworzenie kart wizualnych na stronach internetowych, gdzie estetyka i czytelność są kluczowe. Dobrym przykładem jest stosowanie tych technik w responsywnych projektach, gdzie obrazy muszą dobrze współgrać z różnymi elementami interfejsu użytkownika. CSS umożliwia tworzenie atrakcyjnych wizualnie stron, które przyciągają uwagę i poprawiają interakcję użytkownika z treścią.

Pytanie 16

Który znacznik wyświetli tekst jako PRZEKREŚLONY (np. nieaktualny)?

A.
<b>
B.
<em>
C.
<s>
D.
<sub>
Pozostałe znaczniki dają inny efekt. <b> pogrubia tekst, <em> wyświetla go kursywą, a <sub> tworzy indeks dolny. Przekreślenie tekstu daje <s> (lub semantyczny <del>).

Pytanie 17

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

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

Pytanie 18

Która z metod wyświetlenia tekstu nie jest określona w języku JavaScript?

A. Funkcja window.alert()
B. Właściwość innerHTML
C. Funkcja MessageBox()
D. Metoda document.write()
Każda z podanych odpowiedzi, oprócz Funkcji MessageBox(), jest technicznie poprawna w kontekście języka JavaScript. Własność innerHTML pozwala na manipulację zawartością HTML elementów na stronie, co jest powszechnie stosowane w aplikacjach webowych do dynamicznego aktualizowania treści. Przykład użycia innerHTML: document.getElementById('elementId').innerHTML = '<p>Nowy tekst!</p>'; co zmienia zawartość elementu o określonym identyfikatorze na nowy tekst. Metoda window.alert() jest również powszechnie używana do informowania użytkowników o ważnych informacjach w prosty sposób, chociaż może być uważana za nieco przestarzałą w kontekście nowoczesnego UX. Dobrą praktyką jest unikanie nadmiernego korzystania z alertów, które mogą irytować użytkowników. Metoda document.write() z kolei, choć używana do dodawania treści do strony, jest zalecana do stosowania wyłącznie w kontekście ładowania strony, ponieważ użycie tej metody po załadowaniu strony może prowadzić do nadpisania całego dokumentu, co może być mylące i problematyczne. Dlatego ważne jest, aby zrozumieć kontekst użycia różnych metod JavaScript, aby uniknąć typowych pułapek i poprawić jakość interakcji użytkownika z aplikacjami webowymi.

Pytanie 19

W języku JavaScript zapisano funkcję. Co ona ma za zadanie?

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
A. wypisać wartość odwrotną do f
B. zwrócić wartość bezwzględną z f
C. wypisać wartość bezwzględną z f
D. zwrócić wartość odwrotną do f
Twoja odpowiedź jest poprawna. Funkcja, o której mówi pytanie, zwraca wartość bezwzględną z argumentu f. W języku programowania JavaScript wartość bezwzględną możemy obliczyć w różny sposób. W tym przypadku, dla f mniejszego od zera funkcja mnoży f przez -1, co jest równoznaczne z obliczeniem wartości bezwzględnej dla liczby ujemnej. Dla liczby nieujemnej, funkcja zwraca jej wartość bez zmian. To jest zgodne z definicją wartości bezwzględnej, która mówi, że jest to odległość liczby od zera na osi liczb rzeczywistych, bez względu na kierunek. W praktyce, wartość bezwzględna często jest używana w algorytmach, w których interesuje nas tylko 'rozmiar' wartości, a nie jej kierunek, np. w algorytmach statystycznych, graficznych czy fizycznych.

Pytanie 20

Jaką funkcję pełni atrybut name w polu formularza, np. <input type="text" name="login">?

A. określa wartość domyślną pola
B. określa nazwę pola, pod którą dane trafiają na serwer
C. ustawia pole jako tylko do odczytu
D. ogranicza maksymalną długość pola
Atrybut name nadaje polu formularza nazwę, pod którą jego wartość jest przesyłana na serwer. To po niej skrypt odbierający (np. w PHP przez $_POST["login"]) rozpoznaje konkretne pole. Bez name wartość pola zwykle nie zostanie wysłana. Dlatego name określa nazwę pola w formularzu.

Pytanie 21

Jakim systemem do zarządzania wersjami oprogramowania jest

A. TotalCommander
B. Eclipse
C. GIT
D. FileZilla
GIT to system kontroli wersji, który jest niezwykle popularny wśród programistów i zespołów developerskich, umożliwiający śledzenie zmian w kodzie źródłowym oraz współpracę nad projektami. GIT jest rozproszonym systemem, co oznacza, że każdy programista ma pełną kopię repozytorium na swoim lokalnym komputerze. Dzięki temu, praca w trybie offline jest możliwa, a zmiany można synchronizować później z centralnym repozytorium. GIT wspiera również wiele funkcji, takich jak branching, co pozwala na równoległe rozwijanie funkcjonalności bez wpływu na główną wersję kodu. Przykładowo, zespół może pracować nad nowymi funkcjami w osobnych gałęziach i łączyć je z główną wersją po zakończeniu prac. GIT jest również zgodny z najlepszymi praktykami, takimi jak Continuous Integration (CI) i Continuous Deployment (CD), co pozwala na automatyzację procesów testowania i wdrażania oprogramowania. W branży IT GIT stał się standardem, a jego znajomość jest kluczowa dla efektywnej pracy w zespołach. Warto również wspomnieć o platformach takich jak GitHub czy GitLab, które oferują zintegrowane narzędzia do zarządzania projektami opartymi na GIT.

Pytanie 22

Funkcja przedstawiona w kodzie JavaScript ma na celu

Ilustracja do pytania
A. wyświetlić kolejne liczby od a do n
B. pokazać wynik mnożenia a przez n
C. zwrócić wynik potęgowania an
D. zwrócić iloczyn kolejnych liczb od 1 do a
Funkcja w języku JavaScript przedstawiona w pytaniu wykonuje operację potęgowania poprzez iteracyjne mnożenie liczby a przez siebie n razy. Jest to klasyczny sposób realizacji potęgowania, polegający na zastosowaniu pętli for. W momencie inicjalizacji zmiennej wynik przypisujemy jej wartość 1, co jest typowym sposobem rozpoczęcia mnożenia w algorytmach iteracyjnych. Następnie pętla for iteruje n razy, za każdym razem mnożąc wynik przez a, co odpowiada matematycznemu działaniu a razy a razy a, aż do n razy. Po zakończeniu pętli funkcja zwraca wynik, który jest wartością an. Takie podejście jest stosowane w przypadkach, gdy nie mamy bezpośredniego dostępu do wbudowanych funkcji potęgowania, jak Math.pow, jednak w praktyce, dla lepszej wydajności i czytelności kodu, zaleca się korzystanie z wbudowanych metod. Potęgowanie jest powszechnie stosowane w obliczeniach matematycznych, fizyce oraz w algorytmach wymagających szybkiego przetwarzania dużych ilości danych. Zrozumienie mechaniki działania pętli for i operacji iteracyjnych jest kluczowe w programowaniu, co czyni to pytanie istotnym elementem egzaminu certyfikacyjnego.

Pytanie 23

W przedstawionym kodzie HTML ukazany styl CSS to styl:

<p style="color: red;">To jest przykładowy akapit.</p>
A. nagłówkowy.
B. zewnętrzny.
C. lokalny.
D. dynamiczny.
Odpowiedź "lokalnym" jest prawidłowa, ponieważ styl CSS zastosowany w podanym kodzie HTML definiuje właściwości stylu bezpośrednio w elemencie HTML, co określamy jako styl lokalny (inline style). W tym przypadku, styl "color: red;" został zastosowany bezpośrednio w tagu <p>, co wpływa wyłącznie na ten konkretny akapit. Praktyczne zastosowanie lokalnych stylów polega na tym, że można je szybko dodać do pojedynczych elementów, ale należy pamiętać, że nadmiar lokalnych stylów może prowadzić do problemów z utrzymywaniem i zarządzaniem kodem. Zamiast tego zaleca się stosowanie zewnętrznych arkuszy stylów CSS, co pozwala na centralne zarządzanie stylami dla całej strony. Warto zauważyć, że lokalne style mają wyższy priorytet niż style zewnętrzne, co może prowadzić do konfliktów, jeśli nie zostaną odpowiednio użyte. Aby zapewnić zgodność z najlepszymi praktykami, zaleca się ograniczanie stosowania lokalnych stylów tam, gdzie to możliwe, na rzecz bardziej zorganizowanego podejścia z użyciem klas i identyfikatorów w zewnętrznych arkuszach stylów.

Pytanie 24

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. Klucz obcy
D. Otwarty mechanizm komunikacji bazy danych
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 25

Z przedstawionych tabel Klienci i Uslugi należy wybrać jedynie imiona klientów oraz odpowiadające im nazwy usług, które są droższe niż 10 zł. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id;
B. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10;
C. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id;
D. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10;
Dobra robota, wybrałeś sprawdzoną odpowiedź! To zapytanie SQL, które zaznaczyłeś, łączy tabele 'Klienci' i 'Usługi' przy pomocy klucza obcego 'uslugi_id'. To, co robią takie JOINy, to po prostu łączenie tabel na podstawie wspólnych elementów. W tym przypadku 'uslugi_id' to ten wspólny element, który pozwala na powiązanie obu tabel. A ten warunek 'WHERE cena > 10'? To świetny sposób na to, żeby z ograniczać wyniki do tych, które są droższe niż 10 zł. Fajnie jest mieć pod ręką tylko te informacje, które są dla nas najistotniejsze, szczególnie w większych bazach danych. Pamiętaj, że umiejętność pisania zapytań SQL, jak to, jest naprawdę przydatna, gdy pracujemy z relacyjnymi bazami danych.

Pytanie 26

Jak, wykorzystując język PHP, można zapisać w ciasteczku wartość znajdującą się w zmiennej dane na okres jednego dnia?

A. setcookie("dane", $dane, time());
B. setcookie("dane", "dane", 0);
C. setcookie("dane", $dane, time() + (3600*24));
D. setcookie("dane", $dane, 0);
Poprawna odpowiedź to setcookie("dane", $dane, time() + (3600*24));, ponieważ umożliwia ona zapisanie wartości zmiennej $dane w ciasteczku o nazwie "dane" na okres jednego dnia. Funkcja setcookie() w PHP przyjmuje trzy podstawowe argumenty: nazwę ciasteczka, jego wartość oraz czas wygaśnięcia. W tym przypadku, używając time() + (3600*24), ustawiamy czas wygaśnięcia ciasteczka na aktualny czas plus 24 godziny (3600 sekund w godzinie razy 24). Jest to zgodne z najlepszymi praktykami zarządzania sesjami i danymi użytkowników, ponieważ pozwala na przechowywanie informacji, które są dostępne dla użytkownika przez dłuższy czas, co może być przydatne w różnych scenariuszach, takich jak zapamiętywanie preferencji użytkownika lub stanu logowania. Użycie odpowiednich czasów wygaśnięcia wpływa na bezpieczeństwo i prywatność danych. Dobre praktyki sugerują także, aby ciasteczka były używane w sposób przemyślany, aby nie obniżać wydajności aplikacji ani nie narażać danych użytkowników na nieautoryzowany dostęp.

Pytanie 27

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

Ilustracja do pytania
A. Efekt 1.
B. Efekt 3.
C. Efekt 2.
D. Efekt 4.
Dobra robota! Odpowiedź, którą wybrałeś, to Efekt 2. W formularzu HTML masz różne elementy, które służą do zbierania danych od użytkownika. Tutaj mamy pole tekstowe i dwa checkboxy. Jak wpiszesz 'Przykładowy text' w pole tekstowe i wyślesz formularz, to właśnie to się wyświetli w przeglądarce. Efekt 2 pokazuje, że pole tekstowe ma wpisany tekst i dwa niezaznaczone checkboxy. Dlatego to jest zgodne z tym, co zobaczysz w przeglądarce. A to oznacza, że Efekt 2 jest poprawną odpowiedzią. Właściwie to wszystko jest zgodne z tym, jak HTML działa, czyli jak powinny wyglądać i działać różne elementy formularza.

Pytanie 28

Wskaż pole edycyjne sformatowane przedstawionym stylem CSS

input {
  border: none;
  border-bottom: 2px solid Blue;
  color: Gray;
  font-weight: 900;
}

Input 1. Podaj imię:

Input 2. Podaj imię:

Input 3. Podaj imię:

Input 4. Podaj imię: Agnieszka

A. Input 1.
B. Input 2.
C. Input 4.
D. Input 3.
Dobrze wybrałeś! Odpowiedź 'Input 2.' jest rzeczywiście poprawna. To, co oferuje ten element, to wszystko, co potrzebne do spełnienia wymagań stylu CSS, czyli ma niebieskie dolne obramowanie o grubości 2px, szary tekst oraz pogrubioną czcionkę. Wygląd elementów formularza jest mega ważny, bo to właśnie od niego zależy, jak użytkownicy będą się poruszać po stronie. Dzięki CSS możemy to wszystko kontrolować, co daje nam spójność i ładny wygląd. Różne właściwości CSS, takie jak 'border-bottom', 'color' czy 'font-weight', pozwalają na dokładne dostosowanie stylu każdego elementu strony. W sumie, jak już się bardziej wkręcisz w CSS, zauważysz, że można dodać też różne efekty, jak hover, focus czy active, co dodatkowo wzbogaca interakcję. Rozumienie, jak te różne właściwości działają, jest kluczowe, żeby tworzyć fajne i funkcjonalne interfejsy.

Pytanie 29

Wskaż poprawne stwierdzenie dotyczące poniższej definicji stylu:

<style>
<!--
P{color:blue; font-size:14pt; font-style:italic}
A{font-size: 16pt ; text-transform:lowercase;}
TD.niebieski {color: blue}
TD.czerwony {color: red}
-->
</style>
A. Określono dwie kategorie
B. To jest styl lokalny
C. Odnośnik będzie napisany czcionką 14 punktów
D. Akapit będzie konwertowany na małe litery
Styl lokalny to takie style, które dodaje się bezpośrednio w plikach HTML, często w tagu style lub jako atrybut style w elementach HTML. W tym przypadku mamy do czynienia z osobnym blokiem CSS, więc nie jest to styl lokalny. Co do rozmiaru czcionki linku, to stwierdzenie, że ma 14 punktów, jest błędne. W kodzie CSS widzimy, że rozmiar czcionki dla elementu P to 14 punktów, ale dla elementu A jest ustawiony na 16 punktów. Często takie nieporozumienia wynikają z tego, że nie analizuje się dokładnie kodu źródłowego albo myli się różne selektory. Odnośnie transponowania akapitu na małe litery, to też nie jest poprawne, bo właściwość text-transform: lowercase dotyczy odnośników, nie akapitów. W nauce o CSS ważne jest, żeby dobrze rozumieć zasady działania i umieć rozróżniać, które selektory i właściwości stosują się do konkretnych elementów HTML. To wymaga praktyki i dokładnej analizy kodu. Zrozumienie tych rzeczy jest kluczowe w pracy nad stronami internetowymi, bo pozwala na efektywne zarządzanie stylami. Dobrze stosowane style to podstawa dla każdego, kto zajmuje się tworzeniem i utrzymywaniem stron, żeby wszystko wyglądało spójnie i działało jak trzeba.

Pytanie 30

W systemie baz danych zdefiniowano tabelę Mieszkancy, która zawiera dane. W celu usunięcia tej tabeli oraz jej zawartości, należy użyć polecenia

A. ALTER TABLE Mieszkancy;
B. DELETE FROM Mieszkancy;
C. DROP TABLE Mieszkancy;
D. TRUNCATE TABLE Mieszkancy;
Polecenie 'DROP TABLE Mieszkancy;' jest odpowiednie do usunięcia tabeli z bazy danych, wraz ze wszystkimi jej danymi i strukturą. W przeciwieństwie do innych poleceń, takich jak 'DELETE' czy 'TRUNCATE', które modyfikują zawartość tabeli, 'DROP TABLE' usuwa całą tabelę z systemu. Użycie tego polecenia jest nieodwracalne, dlatego przed jego zastosowaniem warto upewnić się, że posiadamy kopię zapasową danych, jeśli będą one w przyszłości potrzebne. W praktyce, jeśli jesteś administratorem bazy danych i chcesz usunąć zbędną tabelę, polecenie to jest niezwykle efektywne i pozwala na zwolnienie zasobów. Zgodnie z najlepszymi praktykami, przed wykonaniem operacji na bazie danych, zawsze warto przeprowadzić analizę wpływu na inne powiązane obiekty, takie jak relacje między tabelami. Dobrą praktyką jest również włączenie kontroli dostępu, aby nieuprawnione osoby nie mogły wykonywać takich operacji.

Pytanie 31

Brak którego elementu spowoduje błąd walidatora dokumentu HTML5?

A. <body>
B. prologu <!DOCTYPE html>
C. przynajmniej jednego <h1>
D. <meta name="author" content="...">
Każdy poprawny dokument HTML5 musi zaczynać się od deklaracji typu dokumentu <!DOCTYPE html>. Mówi ona przeglądarce i walidatorowi, że dokument jest w standardzie HTML5, i włącza tryb zgodny ze standardem. Jej brak walidator zgłosi jako błąd. Dlatego niezbędny jest prolog <!DOCTYPE html>.

Pytanie 32

Który zapis tworzy w PHP tablicę ASOCJACYJNĄ (z kluczami) i przypisuje ją do zmiennej?

A.
$tab = array("a" => 1, "b" => 2, "c" => 3);
B.
$tab = array(array(1, 2), array(3, 4));
C.
$tab = array(); $tab[] = array(1, 2, 3, 4);
D.
$tab = array(1, 2, 3, 4);
Tablicę asocjacyjną w PHP tworzy się, podając pary klucz => wartość: $tab = array("a" => 1, "b" => 2, "c" => 3);. Każdy element ma wtedy własny, nazwany klucz, po którym się do niego odwołujemy. Dlatego ten zapis jest poprawny.

Pytanie 33

W JavaScript, wynik operacji przyjmuje wartość NaN, gdy skrypt usiłuje przeprowadzić

A. funkcję parseInt zamiast parseFloat na zmiennej numerycznej
B. operację arytmetyczną na dwóch dodatnich zmiennych liczbowych
C. operację arytmetyczną, a zawartość zmiennej była tekstem
D. funkcję, która sprawdza długość stringa, a zawartość zmiennej była liczba
W JavaScript, wartość NaN (Not-a-Number) jest wynikiem nieudanej operacji arytmetycznej, szczególnie gdy jedna z operandów jest napisem, a nie liczbą. Przykładem może być sytuacja, gdy próbujemy dodać liczbę do napisu: let result = 5 + 'abc';. W tym przypadku, JavaScript nie może przeprowadzić operacji arytmetycznej na liczbie i napisie, co skutkuje wartością NaN. Konwersja napisu na liczbę w kontekście arytmetyki jest kluczowa; funkcje takie jak parseFloat lub parseInt mogą być użyte do uzyskania liczby z napisu. Dobre praktyki sugerują, aby zawsze sprawdzać typ danych przed wykonaniem operacji arytmetycznych, co można osiągnąć za pomocą operatora typeof lub funkcji Number.isNaN(). W ten sposób unika się nieprzewidzianych rezultatów i poprawia się stabilność kodu. Zrozumienie, jak JavaScript radzi sobie z różnymi typami danych, jest fundamentalne dla każdego programisty, ponieważ błędy związane z typami danych mogą prowadzić do poważnych problemów w aplikacjach.

Pytanie 34

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

A. <title>Moja strona</title>
B. <head>Moja strona</head>
C. <meta title="Moja strona">
D. <meta name="title" content="Moja strona">
Odpowiedzi <meta title="Moja strona"> oraz <meta name="title" content="Moja strona"> są niepoprawne, ponieważ element <meta> nie jest odpowiedni do definiowania tytułu dokumentu w HTML. Element <meta> służy do przechowywania metadanych, które dostarczają dodatkowych informacji o stronie, ale nie wyświetlają się one na pasku tytułowym przeglądarki. Z kolei podanie tytułu w formie <head>Moja strona</head> jest błędne, gdyż element <head> służy do grupowania elementów dotyczących dokumentu, takich jak tytuł, skrypty czy style, ale nie może być użyty do wyświetlania treści bezpośrednio. Element <head> nie ma również tytułu, dlatego jego użycie w ten sposób jest niezgodne z normami HTML. Typowym błędem w myśleniu jest mylenie metadanych z treścią, co prowadzi do nieprawidłowego wnioskowania, że elementy <meta> mogą określać tytuł strony. Właściwe zrozumienie struktury dokumentu HTML oraz roli poszczególnych elementów jest kluczowe dla poprawnego zbudowania strony internetowej i optymalizacji pod kątem wyszukiwarek, co może wpłynąć na widoczność strony w internecie.

Pytanie 35

Dla których imion klauzula LIKE jest prawdziwa?

SELECT imie FROM mieszkancy WHERE imie LIKE 'o_%_a';
A. Oda, Oksana, Oktawia
B. Oktawia, Oktawian, Olga
C. Oksana, Oktawia, Olga
D. Oksana, Ola, Olga
Wybrana odpowiedź nie jest prawidłowa. Przeanalizujmy dokładnie wzorzec użyty w klauzuli LIKE, aby zrozumieć, które imiona faktycznie spełniają podany warunek. Wzorzec 'o_%_a' składa się z pięciu elementów: litery „o" na początku, znaku podkreślenia oznaczającego dokładnie jeden dowolny znak, symbolu procentu reprezentującego zero lub więcej dowolnych znaków, kolejnego znaku podkreślenia (znów dokładnie jeden znak) oraz litery „a" na końcu. Z tej struktury wynikają trzy warunki, które musi spełnić prawidłowe imię: musi zaczynać się od litery „o", kończyć się na literę „a" oraz mieć co najmniej cztery znaki długości. Ten ostatni warunek jest kluczowy i często pomijany - dwa znaki podkreślenia wymuszają obecność minimum dwóch znaków pomiędzy pierwszą a ostatnią literą. Dlatego imiona takie jak „Ola" czy „Oda", mimo że zaczynają się na „o" i kończą na „a", są zbyt krótkie - mają tylko trzy znaki. Z kolei „Oktawian" odpada, ponieważ kończy się na literę „n", nie „a". Prawidłowa odpowiedź to Oksana, Oktawia i Olga - każde z nich ma odpowiednią długość i właściwe litery na początku oraz końcu.

Pytanie 36

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();
A. nazwa jest cechą obiektu przedmiot
B. nazwa jest atrybutem klasy przedmiot
C. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
D. zmienna x będzie przechowywać wynik działania metody nazwa
Zapis przedmiot.nazwa() w języku JavaScript oznacza wywołanie metody nazwa na obiekcie przedmiot. Częstym błędem jest mylenie metody z polem klasy czy właściwością obiektu. Pole klasy odnosi się do zmiennej zdefiniowanej na poziomie klasy która przechowuje dane związane z instancjami tej klasy. Metody natomiast są funkcjami które wykonują operacje na danych obiektu. Jeśli chodzi o zmienną przechowującą wynik działania funkcji przedmiot nie jest to poprawna interpretacja ponieważ przedmiot w tym przypadku jest obiektem na którym działa metoda nazwa a nie funkcją. Kolejny błąd to mylenie wywołania metody z przypisaniem wartości właściwości obiektu. Właściwości to atrybuty które przechowują stany obiektu natomiast metody określają jego zachowanie i umożliwiają wykonywanie czynności. Często podczas nauki JavaScript błędnie interpretujemy składnię kropki jako odnoszącą się tylko do właściwości zamiast dostrzegać że może ona również oznaczać wywołanie metod. Dobra praktyka polega na jasnym rozróżnieniu pomiędzy metodami a właściwościami co zwiększa czytelność i niezawodność kodu ułatwiając jego późniejszą konserwację i rozwój przez zespoły programistyczne

Pytanie 37

Jednoznacznym identyfikatorem rekordu w bazie danych jest pole

A. wyłącznie typu logicznego.
B. klucza głównego.
C. klucza obcego.
D. wyłącznie typu tekstowego.
Poprawna jest odpowiedź dotycząca klucza głównego, bo to właśnie pole (lub zestaw pól) oznaczone jako PRIMARY KEY w tabeli pełni rolę jednoznacznego identyfikatora rekordu. W praktyce oznacza to, że dla każdej krotki (wiersza) w tabeli wartość klucza głównego musi być unikalna i nie może być pusta (NULL). Systemy baz danych, takie jak MySQL, PostgreSQL, SQL Server czy Oracle, egzekwują te zasady automatycznie – jeśli spróbujesz wstawić drugi rekord z tą samą wartością klucza głównego, dostaniesz błąd naruszenia unikalności. Moim zdaniem to jedna z kluczowych zasad normalnego projektowania baz danych: zawsze projektujemy tabelę zaczynając od przemyślania klucza głównego. W aplikacjach webowych bardzo często używa się prostego klucza głównego typu liczbowego (np. INT AUTO_INCREMENT lub SERIAL), który jest technicznym identyfikatorem rekordu. Dzięki temu łatwo się odwołać do konkretnego użytkownika, zamówienia czy produktu po jego ID. Klucz główny jest też podstawą do definiowania kluczy obcych w innych tabelach – relacje typu 1:N czy N:M opierają się właśnie na odwołaniach do wartości PRIMARY KEY. Z mojego doświadczenia wynika, że stosowanie sztucznych (surrogate) kluczy głównych, zamiast kombinowania z wieloma polami naturalnymi, upraszcza później zapytania SQL, modyfikacje struktury i integrację z kodem w PHP czy JavaScript. W dobrze zaprojektowanej bazie danych każda tabela relacyjna powinna mieć jasno zdefiniowany klucz główny, bo bez tego trudno mówić o porządnym zarządzaniu danymi, spójności referencyjnej i wydajnym indeksowaniu.

Pytanie 38

Określ rezultat działania skryptu napisanego w języku PHP

PHP
<?php
$tablica=array(10=>"Perl",14=>"PHP",20=>"Python",22=>"Pike");
asort($tablica);
print("<pre>");
print_r($tablica);
print("</pre>");
?>
Ilustracja do pytania
A. rys. A
B. rys. B
C. rys. D
D. rys. C
Niepoprawne odpowiedzi wynikają z błędnego rozumienia działania funkcji asort() w PHP. Funkcja ta sortuje tablicę według wartości, a nie kluczy, co oznacza, że wartości są uporządkowane alfabetycznie lub numerycznie w zależności od ich typu. W przypadku tablic asocjacyjnych klucze pozostają przypisane do swoich oryginalnych wartości co jest kluczowe dla utrzymania integralności danych. Błędne podejścia do sortowania często wynikają z założenia że sortowanie dotyczy kluczy co prowadzi do błędnych wyników. Innym typowym błędem jest założenie że sortowanie zmienia klucze na indeksy numeryczne co nie jest prawdą dla funkcji asort(). Wiedza o tym jak PHP traktuje typy danych i jak przeprowadza operacje sortowania jest niezbędna do efektywnego programowania w tym języku. Należy pamiętać że asort() różni się od sort() gdyż ta druga funkcja faktycznie zmienia klucze na indeksy numeryczne co może prowadzić do utraty istotnych danych identyfikacyjnych w tablicach asocjacyjnych.

Pytanie 39

Który modyfikator dostępu daje dostęp do pola w obrębie klasy oraz w klasach dziedziczących (a nie z zewnątrz)?

A. prywatny
B. chroniony
C. opublikowany
D. publiczny
Modyfikator chroniony (ang. protected) udostępnia pole lub metodę w obrębie własnej klasy oraz we wszystkich klasach po niej dziedziczących, ale zamyka dostęp dla kodu z zewnątrz. To pośredni poziom między prywatnym a publicznym, przydatny przy projektowaniu hierarchii klas. Dlatego dostęp dla klasy i jej potomków daje modyfikator chroniony.

Pytanie 40

Tabela pracownicy ma m.in. pola plec i zarobek. Które zapytanie policzy OSOBNO średni zarobek kobiet i mężczyzn?

A.
SELECT AVG(zarobek) FROM pracownicy GROUP BY plec HAVING plec = 'k' AND plec = 'm';
B.
SELECT AVG(zarobek) FROM pracownicy WHERE plec = 'k' AND plec = 'm';
C.
SELECT AVG(zarobek) FROM pracownicy GROUP BY plec;
D.
SELECT AVG(zarobek) FROM pracownicy AS sredni_zarobek;
Bez GROUP BY zapytanie policzy JEDNĄ średnią dla wszystkich (AS to tylko alias). Warunek plec = 'k' AND plec = 'm' jest SPRZECZNY (żaden rekord nie ma obu płci), więc zwróci pustkę - dotyczy to też wariantu z HAVING. Rozdzielenie po płci daje GROUP BY plec.