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: 17 kwietnia 2026 08:58
  • Data zakończenia: 17 kwietnia 2026 09:05

Egzamin niezdany

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

Jaki rezultat uzyskamy po uruchomieniu załączonego skryptu?

<?php
class Owoc {
  function __construct() {     echo "test1";     }
  function __destruct() {     echo "test2";     }
}
$gruszka = new Owoc();
?>
A. Nie zostanie wyświetlony żaden komunikat
B. Pojawi się jedynie komunikat "test2"
C. Pojawi się tylko komunikat "test1"
D. Na ekranie pojawią się oba komunikaty: "test1" oraz "test2"
W analizie skryptu PHP ważne jest zrozumienie roli metod specjalnych jak __construct() i __destruct(). __construct() uruchamia się podczas tworzenia obiektu, a __destruct() w momencie niszczenia obiektu. Odpowiedź wskazująca, że żaden napis się nie wyświetli, ignoruje fakt, że zarówno konstruktor jak i destruktor wywołują funkcję echo. Przy odpowiedzi, że wyświetli się tylko napis test1, pominięto działanie metody __destruct(), która następuje po zakończeniu skryptu. Natomiast stwierdzenie, że wyświetli się tylko napis test2 ignoruje działanie konstruktora, który zostaje niezwłocznie aktywowany po stworzeniu obiektu $gruszka. Częstym błędem jest nieujmowanie pełnego cyklu życia obiektu, co prowadzi do nieprawidłowego zrozumienia działania destruktorów, zwłaszcza że uruchamiane są one automatycznie, wpływając na zarządzanie zasobami i pamięcią. Zrozumienie tych mechanizmów jest kluczowe w efektywnym zarządzaniu kodem w PHP, szczególnie w zaawansowanych projektach obiektowych.

Pytanie 2

Badania dotyczące skalowalności oprogramowania mają na celu sprawdzenie, czy aplikacja

A. jest odpowiednio opisana dokumentacją
B. jest w stanie funkcjonować przy przewidzianym oraz większym obciążeniu
C. jest chroniona przed nieautoryzowanymi operacjami, takimi jak dzielenie przez zero
D. posiada właściwą funkcjonalność
Odpowiedzi takie jak 'ma odpowiednią funkcjonalność', 'jest odpowiednio udokumentowana' oraz 'jest zabezpieczona przed niedozwolonymi operacjami' odnoszą się do zupełnie innych aspektów jakości oprogramowania. Funkcjonalność dotyczy tego, czy aplikacja spełnia określone wymagania i jest w stanie realizować zamierzone zadania. Choć jest to istotna cecha, nie jest bezpośrednio związana ze skalowalnością, która koncentruje się na możliwości dostosowania się systemu do zwiększających się obciążeń. Dokumentacja jest równie ważna, ponieważ pozwala na zrozumienie architektury i funkcji systemu, lecz nie wpływa na jego zdolność do obsługi większej ilości użytkowników. Zabezpieczenia przed błędami, takimi jak dzielenie przez zero, są kluczowe dla stabilności i bezpieczeństwa aplikacji, ale również nie mają związku z jej skalowalnością. Często występującym błędem myślowym jest zakładanie, że wszystkie aspekty jakości oprogramowania są ze sobą ściśle powiązane i mogą być używane zamiennie. W rzeczywistości, każdy z tych elementów stanowi niezależny komponent większej całości, a ich ocena wymaga różnorodnych podejść i technik testowania. Aby poprawnie ocenić skalowalność, należy skupić się na pomiarze wydajności w warunkach dużego obciążenia, co wymaga zastosowania specyficznych metodologii testowych, takich jak testy obciążeniowe oraz analizę wydajności systemu w realnych scenariuszach użytkowania.

Pytanie 3

Która z definicji tablicy asocjacyjnej w PHP jest składniowo poprawna?

A. $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);
B. $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");
C. $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);
D. $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});
W analizowanych odpowiedziach można zauważyć kilka istotnych błędów składniowych, które uniemożliwiają prawidłowe zdefiniowanie tablicy asocjacyjnej w PHP. Pierwsza opcja, $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);, myli operator przypisania z operatorem asocjacyjnym. Użycie znaku = zamiast => jest kluczowe, ponieważ PHP wymaga użycia operatora => do parowania kluczy z wartościami. W drugiej opcji, $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);, zastosowano niepoprawną składnię tablicy, gdzie zewnętrzne nawiasy kwadratowe powinny być zastąpione funkcją array() lub nawiasami klamrowymi, a także brakuje kluczy. Trzecia odpowiedź, $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});, również jest niepoprawna, ponieważ użyto nawiasów klamrowych, które nie są stosowane w definicji tablic asocjacyjnych w PHP. Nawiasy klamrowe mogą być używane do tworzenia tablic wielowymiarowych, ale w tym kontekście są nieodpowiednie. Typowe błędy myślowe, które prowadzą do takich pomyłek, to mylenie różnych typów struktur danych oraz niewłaściwe zrozumienie zasad parowania kluczy i wartości, co w rezultacie skutkuje błędami w składni i logice kodu.

Pytanie 4

Który z poniższych sposobów wyświetlania tekstu nie jest określony w języku JavaScript?

A. Funkcja MessageBox()
B. Właściwość innerHTML
C. Funkcja window.alert()
D. Metoda document.write()
Niestety, wszystkie trzy odpowiedzi, które zaznaczyłeś, są poprawne w JavaScript i mają swoje własne zastosowania. Własność innerHTML to jedna z najpopularniejszych metod do modyfikacji zawartości HTML. Umożliwia ona dodawanie nowych wartości do elementów, co pozwala na dynamiczne zmienianie treści strony bez przeładowania jej. Technicznie, innerHTML można używać w każdym elemencie HTML i akceptuje zarówno tekst, jak i poprawny kod HTML. Metoda window.alert() to prosta funkcja, dzięki której można pokazać komunikat w oknie przeglądarki, co bywa przydatne w różnych sytuacjach, na przykład do potwierdzania działań lub informowania o błędach. Te metody są dość podstawowe, ale ich wykorzystanie w aplikacjach webowych może być ograniczone przez kwestie estetyki oraz doświadczenia użytkownika. Natomiast document.write() to starsza technika, która pozwala na wypisywanie treści w trakcie ładowania strony. Choć dziś nie jest zbyt często używana w nowoczesnych praktykach, można ją jeszcze spotkać w prostych skryptach czy materiałach edukacyjnych. Warto jednak wiedzieć, że w dzisiejszym programowaniu lepiej korzystać z metod manipulacji DOM, jak document.createElement(), czy używać frameworków jak React czy Vue.js, które oferują bardziej rozbudowane podejście do zarządzania zawartością stron.

Pytanie 5

Która z funkcji zdefiniowanych w języku PHP zwraca jako wynik połowę kwadratu wartości podanej jako argument?

A. function licz($a) { return $a/2; }
B. function licz($a) { echo $a/2; }
C. function licz($a) { return $a*$a/2; }
D. function licz($a) { echo $a*$a/2; }
Niepoprawne odpowiedzi najczęściej wynikają z nieporozumień dotyczących działania funkcji w PHP. Na przykład, jeśli używasz 'echo' zamiast 'return', to funkcja nie oddaje wartości tam, gdzie jest wywołana. A to może być problematyczne, gdy naprawdę potrzebujemy tej wartości, jak na przykład do przypisania do zmiennej. Funkcje w stylu 'function licz($a) { echo $a/2; }' po prostu dzielą przez 2, a nie obliczają kwadratu, więc to nie spełnia wymagań pytania. Błędem jest mylenie 'echo' z 'return', bo to wprowadza zamieszanie i może prowadzić do trudności w naprawianiu błędów. Zrozumienie tej różnicy jest kluczowe, bo naprawdę pomaga w napisaniu czystego i modularnego kodu, co w programowaniu ma ogromne znaczenie.

Pytanie 6

Które zapytanie MySQL należy użyć, aby usunąć jedynie pracowników, którzy zarabiają nie mniej niż 500 i nie więcej niż 1000 zł oraz ich miejsce pracy zawiera frazę tx

A. DELETE FROM pracownicy WHERE pensja IN (500,1000) AND miejsce_pracy LIKE '*tx*';
B. DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 OR miejsce_pracy LIKE '%tx%';
C. DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 AND miejsce_pracy LIKE '%tx%';
D. DELETE FROM pracownicy WHERE pensja > 500 AND pensja < 1000 AND miejsce_pracy LIKE '%tx%';
Poprawne jest zapytanie: DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 AND miejsce_pracy LIKE '%tx%';. Słowo kluczowe BETWEEN w SQL oznacza przedział domknięty, czyli w tym przypadku usuwani będą pracownicy, którzy zarabiają co najmniej 500 i jednocześnie nie więcej niż 1000 zł. To dokładnie odpowiada treści zadania, bez żadnych niedomówień na granicach zakresu. Gdybyśmy użyli > i <, to wartości 500 i 1000 zostałyby wykluczone, co w tym zadaniu byłoby niezgodne z wymaganiem. Drugi warunek korzysta z operatora LIKE wraz z maską '%tx%'. Wzorzec z procentami z obu stron oznacza: znajdź wszystkie wiersze, gdzie ciąg znaków „tx” występuje gdziekolwiek w tekście kolumny miejsce_pracy – na początku, w środku albo na końcu. W MySQL znak % jest standardowym symbolem wieloznacznym (wildcard) dla dowolnego ciągu znaków, a nie gwiazdka *, dlatego zapis z % jest poprawny i zgodny z dokumentacją. Spójnik AND jest tu kluczowy, bo warunek mówi wyraźnie: usuwamy tylko tych pracowników, którzy spełniają jednocześnie oba kryteria – zarówno zakres pensji, jak i fragment tekstu w miejscu pracy. W praktyce takie zapytanie stosuje się np. przy porządkowaniu danych testowych: można szybko usunąć sztuczne rekordy z określonego przedziału płac i z wybranych lokalizacji. Moim zdaniem warto wyrabiać sobie nawyk bardzo precyzyjnego formułowania warunków logicznych (AND/OR) i zawsze sprawdzać, czy zakres jest domknięty czy otwarty. Dobrą praktyką jest też najpierw wykonać SELECT z tym samym WHERE, zobaczyć jakie rekordy zostaną naruszone, a dopiero potem odpalać DELETE – szczególnie na produkcyjnej bazie, bo tam pomyłki bywają bolesne.

Pytanie 7

W CSS należy ustawić tło dokumentu na obraz rys.png, który powinien się powtarzać tylko w poziomie. Którą definicję trzeba przypisać selektorowi body?

A. {background-image: url("rys.png"); background-repeat: repeat;}
B. {background-image: url("rys.png"); background-repeat: repeat-y;}
C. {background-image: url("rys.png"); background-repeat: round;}
D. {background-image: url("rys.png"); background-repeat: repeat-x;}
Wszystkie pozostałe opcje definiują sposób powtarzania tła, lecz każda z nich wprowadza inne zasady, co sprawia, że są one niewłaściwe w kontekście przedstawionego pytania. Wybór background-repeat: round, jak w pierwszej opcji, powoduje, że obrazek będzie powtarzany w taki sposób, aby całość się wpasowała w dostępne miejsce, ale niekoniecznie będzie powtarzany w ustalony sposób, co nie odpowiada założeniom pytania. Druga opcja, background-repeat: repeat, ustawia powtarzanie obrazu zarówno w poziomie, jak i w pionie, co jest sprzeczne z wymaganiem, aby obraz powtarzał się tylko w poziomie. Ostatnia z wyborów, background-repeat: repeat-y, z kolei powtarza obraz w pionie, co również nie spełnia założenia o poziomym powtarzaniu. Niestety, wiele osób myli te właściwości, co może prowadzić do niezamierzonych efektów wizualnych w projektach. Dlatego kluczowe jest zrozumienie różnicy między różnymi typami powtórzeń i ich zastosowaniem w praktyce. Właściwe użycie CSS, w tym dobór właściwych wartości dla background-repeat, wpływa na wydajność oraz na estetykę interfejsów użytkownika. W kontekście dobrych praktyk należy również pamiętać o optymalizacji obrazów oraz zapewnieniu, że używane techniki nie wpływają negatywnie na czas ładowania strony. Rozumienie tych aspektów jest kluczowe dla każdego, kto zajmuje się projektowaniem stron internetowych.

Pytanie 8

Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;
idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Wyłącznie Anna
B. Anna, Maria, Ewa
C. Monika, Ewelina, Maria
D. Wyłącznie Maria
Ważne jest zrozumienie działania klauzuli WHERE w SQL, zwłaszcza gdy stosujemy w niej operator OR. Częstym błędem przy analizie takich zapytań jest traktowanie operatora OR jak operatora AND co prowadzi do błędnych wniosków. W zapytaniu SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 celem jest wybór imion pracowników spełniających przynajmniej jedno z podanych kryteriów. Można błędnie założyć że wybierane są tylko osoby z nazwiskiem Kowal i stanowiskiem większym od 2 lub odwrotnie co prowadzi do niepoprawnej interpretacji danych. Imiona takie jak Monika czy Ewelina nie pojawiają się w wyniku ponieważ ich stanowiska wynoszą dokładnie 2 co nie spełnia wymagań stanowisko > 2. Natomiast imię Maria jest wynikowe ponieważ nazwisko Kowal spełnia pierwszy warunek a Anna i Ewa są wybierane przez drugi warunek dotyczący stanowiska. Zrozumienie różnicy między operatorami AND i OR jest kluczowe dla poprawnego tworzenia zapytań SQL oraz unikania błędów logicznych przy przetwarzaniu danych. Operator OR wymaga aby przynajmniej jeden z warunków był prawdziwy co zwiększa elastyczność filtrowania danych ale także wymaga ostrożności aby nie uzyskać wyników niezgodnych z intencjami analizy. Znajomość i umiejętność wykorzystania różnych operatorów logicznych pozwala na efektywne zarządzanie danymi i ich analizę co jest niezbędne w pracy z bazami danych.

Pytanie 9

Funkcja zapisana w języku PHP ma postać jak poniżej. Jej zadaniem jest

function fun1($liczba)
{
    if($liczba % 2 == 0)
        return 1;

    return 0;
}
A. zwrócenie wartości 0, gdy liczba jest parzysta.
B. wypisanie liczby nieparzystej.
C. wypisanie liczby parzystej.
D. zwrócenie wartości 1, gdy liczba jest parzysta.
Wybrana przez Ciebie odpowiedź jest niepoprawna. W analizowanej funkcji nie ma elementów, które sugerowałyby wypisywanie wyniku, a tylko zwracanie go - stąd odpowiedzi sugerujące wypisywanie są błędne. Funkcja fun1($liczba) w PHP zwraca wartość 1, gdy liczba podana jako argument jest parzysta, a nie wypisuje jej. W PHP, do wypisywania wartości służy funkcja echo lub print, której tutaj brakuje. Poza tym, funkcja zwraca wartość 0, gdy liczba nie jest parzysta, a nie gdy jest parzysta - zatem, ostatnia odpowiedź także jest niepoprawna. Błędne odpowiedzi wynikają z niewłaściwego zrozumienia mechanizmu działania funkcji i operacji, które na niej są wykonywane. Ważne jest, aby umieć odróżnić operacje zwracania wartości od wypisywania jej, a także zrozumieć znaczenie operatora modulo i warunku porównania w kontekście analizowanej funkcji.

Pytanie 10

W systemach bazodanowych, aby przedstawić dane, które spełniają określone kryteria, należy stworzyć

A. formularz
B. makropolecenie
C. raport
D. relację
Formularze, makropolecenia i relacje to różne rzeczy, które używamy w bazach danych, ale nie nadają się do tworzenia raportów. Formularz to narzędzie do wprowadzania danych, jego głównym celem jest to, żeby użytkownik mógł dodawać lub edytować informacje w bazie. Choć są przydatne do zbierania danych, to już do ich analizy czy prezentacji się nie nadają. Makropolecenia to z kolei instrukcje, które pomagają w automatyzacji powtarzalnych zadań, ale znowu – nie są do raportów. Użytkownicy mogą myśleć, że makropolecenia zastąpią raporty, ale to zupełnie inne rzeczy. Relacje dotyczą sposobu łączenia tabel w bazie danych, co jest ważne dla struktury, ale też nie ma to nic wspólnego z prezentacją danych. Warto wiedzieć, jakie są różnice między tymi pojęciami, bo to może pomóc w lepszym zarządzaniu danymi i uniknięciu nieporozumień.

Pytanie 11

W jakim typie pliku powinno się zapisać zdjęcie, aby mogło być wyświetlane na stronie WWW z zachowaniem efektu przezroczystości?

A. CDR
B. BMP
C. PNG
D. JPG
Wybór formatu JPG (Joint Photographic Experts Group) do przechowywania obrazów na stronach internetowych nie jest odpowiedni, gdyż ten format nie obsługuje przezroczystości. JPG to format stratny, co oznacza, że przy kompresji traci część informacji o obrazie, co skutkuje obniżeniem jakości, zwłaszcza w przypadku obrazów z dużą ilością detali. Dla grafik wymagających przezroczystości, takich jak ikony czy logotypy, JPG nie sprawdzi się, ponieważ nie oferuje opcji przezroczystości, co prowadzi do nieestetycznych efektów, gdy tło obrazu nie pasuje do tła strony. BMP (Bitmap) z kolei jest formatem, który również nie obsługuje przezroczystości i zwykle generuje dużą objętość pliku, co sprawia, że jest mało praktyczny do użycia w sieci. Natomiast CDR (CorelDRAW) jest formatem plików wektorowych, który jest używany głównie w oprogramowaniu Corel, a nie w kontekście publikacji w internecie. Rozważanie tych formatów, w sytuacji gdy konieczne jest zachowanie przezroczystości, wskazuje na nieporozumienie dotyczące ich zastosowań oraz brak zrozumienia standardów dotyczących formatów graficznych. W rzeczywistości najlepszym rozwiązaniem dla obrazów z przezroczystością jest właśnie PNG, który dostarcza odpowiednich narzędzi do efektywnego i estetycznego wyświetlania grafiki w internecie.

Pytanie 12

Kod umieszczony w ramce tworzy tabelę, która zawiera

Ilustracja do pytania
A. dwa wiersze i jeden słupek
B. dwa wiersze i dwa słupki
C. jeden wiersz i jeden słupek
D. jeden wiersz i dwa słupki
Podany kod HTML tworzy tabelę z jednym wierszem i dwoma kolumnami ponieważ w strukturze tabeli element <tr> definiuje wiersz a element <td> definiuje komórkę w tym wierszu. W tym przypadku kod zawiera jeden element <tr> co wskazuje na pojedynczy wiersz oraz dwa elementy <td> co oznacza że w tym wierszu znajdują się dwie kolumny. Tego typu struktura jest powszechnie wykorzystywana do przedstawiania danych w formie tabelarycznej co jest standardową praktyką w web developmencie. Tabele HTML są kluczowym elementem w projektowaniu stron internetowych gdyż pozwalają na uporządkowane prezentowanie informacji często używane do tworzenia harmonogramów porównań czy formularzy. Ważne jest aby pamiętać o poprawnym zamykaniu znaczników oraz przestrzeganiu hierarchii struktury tabeli co zapewnia jej poprawne wyświetlanie w przeglądarkach. Dobrą praktyką jest również stosowanie zewnętrznych arkuszy CSS do stylizacji tabel co pozwala na oddzielenie struktury od prezentacji i ułatwia zarządzanie wyglądem strony. Znajomość i umiejętność tworzenia tabel jest niezbędna dla każdego web dewelopera ponieważ tabele stanowią fundamentalny element organizacji danych w HTML.

Pytanie 13

W SQL, aby usunąć wszystkie rekordy z tabeli, ale zachować jej strukturę, należy użyć polecenia:

A. TRUNCATE
B. DROP TABLE
C. DELETE FROM
D. REMOVE
Istnieje kilka nieporozumień związanych z usuwaniem danych z tabel SQL, co może prowadzić do błędów. Polecenie <code>DROP TABLE</code> jest często mylone z <code>DELETE FROM</code>. Jednak <code>DROP TABLE</code> usuwa zarówno dane, jak i strukturę tabeli, co oznacza, że po jego użyciu nie będzie można odzyskać tabeli bez jej ponownego stworzenia. To polecenie jest destrukcyjne i powinno być używane tylko wtedy, gdy mamy pewność, że tabela nie jest już potrzebna. Z kolei <code>REMOVE</code> nie jest poprawnym poleceniem SQL. To może wynikać z mylnego przekonania, że istnieje takie polecenie w języku SQL, jednak w rzeczywistości nie jest ono częścią standardu SQL. Tego typu błędy wynikają często z nieznajomości składni SQL lub mylenia z innymi językami programowania, które mogą mieć podobne polecenia. Na koniec, <code>ERASE TABLE</code> również nie jest poprawnym poleceniem SQL. Może to być wynikiem intuicyjnego podejścia do nazewnictwa poleceń, ale w rzeczywistości SQL posługuje się innymi komendami. Kluczowe jest, by dobrze zrozumieć standardy języka SQL i znać właściwe polecenia dla zamierzonych operacji, aby uniknąć potencjalnie destrukcyjnych działań na bazie danych.

Pytanie 14

Ile razy wykona się poniższa pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?

for ($i = 0; $i <= 10; $i+=2) { ... }
A. 10
B. 6
C. 5
D. 0
W przypadku błędnych odpowiedzi, takich jak 10, 5, 0 czy 6, można zauważyć, że wynikają one z nieprawidłowego zrozumienia działania pętli for w PHP. Odpowiedź 10 sugeruje, że użytkownik zakłada, iż pętla wykonuje się do 10, co jest błędne, ponieważ na każdym kroku zmienna $i zwiększa się o 2. Użycie 5 jako odpowiedzi może wskazywać na niepoprawne obliczenie liczby iteracji przy założeniu, że pętla mogłaby wykonać się z tylko pięcioma incrementami, co jest również mylące. Wybór 0 jako odpowiedzi jest konsekwencją mylnego założenia, że pętla mogłaby w ogóle nie działać, co jest sprzeczne z logiką, ponieważ pętla rozpoczyna się od $i = 0 i spełnia warunek kontynuacji. Ważne jest, aby podczas analizy pętli skupić się na warunkach początkowych, zmiennej sterującej oraz modyfikacji tej zmiennej w każdym cyklu. Prawidłowe obliczenie liczby iteracji pętli jest kluczowe w programowaniu, ponieważ ma to bezpośredni wpływ na wydajność i efektywność działania algorytmów.

Pytanie 15

Który z poniższych znaczników HTML można wykorzystać do stworzenia struktury witryny internetowej?

A. <input>
B. <em>
C. <aside>
D. <mark>
<aside> to znacznik, który dodaje coś ekstra do treści głównej na stronie, jak np. informacje poboczne. Używanie go jest zgodne z zasadami HTML5, które promują sensowne budowanie dokumentów. Możesz go używać np. do wyróżniania sekcji z informacjami o autorze lub linkami do innych artykułów. Dzięki temu, że stosujesz semantyczne znaczniki jak <aside>, twoje treści stają się lepiej zrozumiałe dla użytkowników. Co więcej, to też polepsza dostępność strony dla osób korzystających z technologii wspomagających, jak czytniki ekranu. Dobrze zastosowane <aside> ułatwia organizację treści, co pozytywnie wpływa na SEO, bo wyszukiwarki łatwiej rozumieją strukturę strony. A i tak w ogóle, używanie semantycznych znaczników pozwala utrzymać kod w lepszej formie, co ważne, zwłaszcza przy pracy w zespołach nad większymi projektami.

Pytanie 16

Który z poniższych fragmentów kodu HTML5 zostanie uznany za niepoprawny przez walidator HTML?

A. <pre>&lt;p class= &quot;stl&quot; style= &quot;color: #F00 &quot;&gt;tekst&lt;/p&gt;</pre>
B. <pre>&lt;p class= &quot;stl&quot; id= &quot;a&quot;&gt;tekst&lt;/p&gt;</pre>
C. <pre>&lt;p class= &quot;stl&quot;&gt;tekst&lt;/p&gt;</pre>
D. <pre>&lt;p class= &quot;stl&quot;&gt;&lt;style&gt;.a{color:#F00}&lt;/style&gt;tekst&lt;/p&gt;</pre>
Niepoprawne odpowiedzi zawierają różne błędy, które wynikają z nieznajomości podstawowych zasad struktury HTML5. W pierwszym przykładzie, mimo że kod jest poprawny syntaktycznie, nie wprowadza on żadnych złożonych błędów. Jednakże, ważne jest, aby zrozumieć, że atrybuty takie jak 'class' oraz 'id' powinny być stosowane z umiarem i zgodnością z zasadami semantyki. W drugim przypadku, umieszczenie tagu &lt;style&gt; wewnątrz tagu &lt;p&gt; jest niezgodne z najlepszymi praktykami. Tego typu praktyki mogą prowadzić do zamieszania oraz trudności w zarządzaniu stylem na stronie, a także mogą przyczyniać się do problemów z dostępnością. Należy pamiętać, że HTML5 kładzie duży nacisk na semantykę, co oznacza, że każdemu elementowi należy przypisać odpowiednią rolę w strukturze dokumentu. Ostatnie dwa przykłady są poprawne, jednak użycie stylów inline w przypadku trzeciego przykładu nie jest zalecane. Wprowadzenie stylów bezpośrednio w elementach HTML narusza zasadę separacji treści od prezentacji. Zaleca się korzystanie z zewnętrznych arkuszy stylów, które nie tylko poprawiają organizację kodu, ale również umożliwiają łatwiejsze wprowadzanie zmian w przyszłości. Ostatecznie, zrozumienie i stosowanie się do standardów HTML5 oraz dobrych praktyk jest kluczowe dla tworzenia wyspecjalizowanych, dostępnych i łatwych do utrzymania stron internetowych.

Pytanie 17

Do grupowania elementów w blok, można użyć znacznika

A. <p>
B. <span>
C. <param>
D. <div>
W tym pytaniu chodziło konkretnie o grupowanie elementów w jeden blok, czyli o wybór typowego elementu blokowego, który pełni rolę ogólnego kontenera. Bardzo łatwo tu pomylić różne znaczniki, bo większość z nich po prostu „coś wyświetla”, ale ich rola w strukturze dokumentu HTML jest zupełnie inna. Znacznik <p> tworzy akapit, czyli logiczny fragment tekstu. Jest również elementem blokowym, ale jego przeznaczenie jest ściśle semantyczne: ma zawierać treść akapitu, a nie dowolne grupy elementów. Wrzucanie tam divów, formularzy czy skomplikowanych struktur to zła praktyka i często prowadzi do błędnego DOM oraz dziwnych efektów w różnych przeglądarkach. Z punktu widzenia standardów HTML <p> nie jest neutralnym kontenerem, tylko konkretnym elementem tekstowym. Z kolei <span> to przeciwieństwo tego, czego szukamy: jest elementem liniowym (inline). Używa się go do zaznaczania fragmentów tekstu lub małych kawałków treści wewnątrz innych elementów, właśnie bez łamania linii, np. do nadania koloru jednemu słowu albo do oznaczenia krótkiego fragmentu dla JavaScriptu. Typowy błąd to traktowanie <span> jak „mini-diva” i próba budowania na nim całych układów strony. Da się to czasem wymusić przez display:block w CSS, ale to obejście, a nie zgodne z ideą HTML rozwiązanie. Natomiast <param> w ogóle nie służy do prezentacji treści ani układu. To znacznik używany historycznie wewnątrz <object> do przekazywania parametrów obiektom osadzanym na stronie (np. wtyczkom, apletem). Dzisiaj praktycznie się go nie używa w nowoczesnym webdevie, a już na pewno nie do grupowania czegokolwiek. Typowe błędne myślenie przy takich pytaniach polega na patrzeniu tylko na efekty wizualne („to też robi nową linię” albo „to też coś grupuje”) zamiast na semantykę i przeznaczenie znacznika. Do neutralnego, blokowego grupowania elementów, które potem stylujemy w CSS albo manipulujemy w JavaScript, standardowo używa się <div> i to jest zgodne zarówno z dokumentacją, jak i z praktyką w realnych projektach.

Pytanie 18

Przedstawione polecenie SQL nadaje użytkownikowi adam@localhost prawa:

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost
A. manipulowania danymi w tabeli klienci.
B. zarządzania strukturą bazy danych klienci.
C. zarządzania strukturą tabeli klienci.
D. manipulowania danymi bazy danych klienci.
Niepoprawne odpowiedzi sugerują, że polecenie SQL nadaje użytkownikowi 'adam' z hosta 'localhost' prawa zarządzania strukturą bazy danych lub tabeli 'klienci', co jest niezgodne z prawdą. Zgodnie z konstrukcją polecenia GRANT, użytkownik otrzymuje prawa do manipulowania danymi, a nie do zarządzania strukturą. Zarządzanie strukturą bazy danych lub tabeli obejmuje operacje takie jak CREATE, ALTER, DROP, które pozwalają na tworzenie, modyfikowanie lub usuwanie bazy danych lub tabeli. Te uprawnienia są zazwyczaj zarezerwowane dla administratorów bazy danych i nie są nadawane zwykłym użytkownikom, co jest zgodne z zasadą minimalnych uprawnień dla bezpieczeństwa systemu. Dodatkowo, polecenie nie odnosi się do całej bazy danych 'klienci', tylko do konkretnej tabeli 'klienci'. Tę pomyłkę można zrozumieć, jako nieprawidłowe zrozumienie hierarchii i struktury bazy danych.

Pytanie 19

Jakie parametry powinny być ustawione w funkcji biblioteki mysqli, aby umożliwić połączenie z serwerem oraz bazą danych?

mysqli_connect($a, $b, $c, $d) or die('Brak połączenia z serwerem MySQL.');
A. adres serwera - $c, nazwa bazy danych - $d, login - $b, hasło - $a
B. adres serwera - $a, nazwa bazy danych - $b, login - $c, hasło - $d
C. adres serwera - $c, nazwa bazy danych - $d, login - $a, hasło - $b
D. adres serwera - $a, nazwa bazy danych - $d, login - $b, hasło - $c
W przypadku niepoprawnych odpowiedzi można zauważyć typowe błędy związane z zrozumieniem argumentów funkcji mysqli_connect. Wiele osób myli kolejność zmiennych oraz ich znaczenie. Na przykład, podanie adresu serwera jako $c lub $d jest błędne, ponieważ pierwszy argument zawsze powinien wskazywać na adres serwera. Warto również zwrócić uwagę na znaczenie loginu i hasła – nie można ich zamieniać miejscami, ponieważ każdy z tych parametrów pełni inną funkcję w kontekście autoryzacji do bazy danych. W ramach dobrych praktyk programistycznych, istotne jest także stosowanie raz jeszcze uwierzytelnienia użytkownika, co pozwala uniknąć nieautoryzowanego dostępu do danych. Przykłady niepoprawnych odpowiedzi pokazują też, że błędne przypisanie nazw bazy danych do zmiennych może prowadzić do błędów w aplikacji, co w efekcie utrudnia jej działanie oraz zwiększa ryzyko wycieków danych. Kluczowe jest zrozumienie, że każdy parametr pełni specyficzną rolę w tworzeniu połączenia. Niezrozumienie tego kontekstu może prowadzić do trudności w dalszym programowaniu oraz w diagnostyce problemów z bazą danych.

Pytanie 20

Termin „front-end” w kontekście budowy stron internetowych odnosi się do

A. bazy danych zawierającej informacje prezentowane na stronie
B. organizacji danych na serwerze WWW
C. działania skryptów i aplikacji realizowanych po stronie serwera WWW
D. interfejsu witryny internetowej powiązanego z technologiami działającymi w przeglądarkach internetowych
Rozważając błędne odpowiedzi, warto zauważyć, że pierwsza z nich dotyczy organizacji informacji na serwerze WWW, co odnosi się do aspektów back-endowego rozwoju aplikacji internetowych. Back-end zarządza logiką, bazami danych i serwerami, podczas gdy front-end koncentruje się na interakcji użytkownika z aplikacją. Druga odpowiedź, dotycząca bazy danych, również jest niepoprawna, ponieważ bazy danych są elementem back-endu, które przechowują dane i dostarczają je do front-endu na żądanie. Trzecia odpowiedź, odnosząca się do skryptów działających po stronie serwera, również wskazuje na nieporozumienie dotyczące podziału na front-end i back-end. Skrypty serwerowe przetwarzają dane na serwerze i nie mają bezpośredniego wpływu na to, co użytkownik widzi na ekranie. Typowym błędem myślowym jest utożsamianie front-endu ze wszystkimi aspektami technologicznymi aplikacji webowych. W rzeczywistości, front-end jest tylko częścią większego ekosystemu, w którym back-end i front-end współpracują, aby dostarczyć użytkownikowi pełne doświadczenie. Zrozumienie tych różnic jest kluczowe dla każdego, kto jest zaangażowany w rozwój aplikacji internetowych.

Pytanie 21

Na podstawie tabeli Towar zrealizowano poniższe zapytanie SQL: ```SELECT nazwa_towaru FROM `Towar` WHERE cena_katalogowa < 65 ORDER BY waga DESC``` Jaki będzie rezultat tej operacji?

Ilustracja do pytania
A. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
B. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
C. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
D. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
Przy analizie pytania należy zwrócić uwagę na kluczowe elementy zapytania SQL, które wpływają na wynik. W zapytaniu SELECT nazwa_towaru FROM Towar WHERE cena_katalogowa < 65 ORDER BY waga DESC kluczowe są dwa elementy: filtracja po cenie katalogowej mniejszej niż 65 oraz sortowanie wyników malejąco według kolumny waga. Błąd w rozumowaniu może wynikać z braku uwzględnienia jednego z tych kryteriów. Częstym błędem jest nieuwzględnienie kolejności sortowania lub niewłaściwe zrozumienie, które kolumny są używane do sortowania. W podanej tabeli, po zastosowaniu filtra cenowego, zostają cztery towary: Papier ksero A4, Zeszyt A5, Zeszyt A5 w linie i Kredki 24 kolory. Istotne jest, aby zrozumieć, że sortowanie malejące według wagi wymaga umieszczenia towarów od najcięższego do najlżejszego. Zatem nieprawidłowe odpowiedzi mogą wynikać z nieprawidłowej kolejności sortowania, co jest częstym błędem wśród osób początkujących w SQL. Aby uniknąć takich błędów, warto wizualizować wyniki po każdej operacji SQL i upewnić się, że każdy krok jest zgodny z oczekiwaniami, co jest dobrą praktyką w analizie danych.

Pytanie 22

Jakie zapytanie SQL należy użyć, aby zmienić strukturę już istniejącej tabeli?

A. INSERT INTO
B. ALTER TABLE
C. CREATE TABLE
D. UPDATE
Odpowiedź 'ALTER TABLE' jest poprawna, ponieważ to polecenie SQL służy do modyfikacji struktury istniejącej tabeli w bazie danych. Dzięki 'ALTER TABLE' możemy dodawać nowe kolumny, modyfikować istniejące kolumny (np. zmieniając ich typ danych czy nazwę), a także usuwać kolumny, które nie są już potrzebne. Przykładowe zastosowanie polecenia to dodanie nowej kolumny do tabeli pracowników: 'ALTER TABLE pracownicy ADD COLUMN wiek INT;'. Ponadto, 'ALTER TABLE' pozwala na wprowadzanie ograniczeń, takich jak klucze obce czy unikalności, co jest kluczowe w kontekście integracji danych i zapewnienia ich spójności. W praktyce, odpowiednie zarządzanie strukturą tabel jest fundamentalnym aspektem utrzymania bazy danych w dobrej kondycji. Należy pamiętać, aby stosować te zmiany zgodnie z najlepszymi praktykami, takimi jak testowanie zapytań w środowisku deweloperskim przed ich wdrożeniem w produkcji, co minimalizuje ryzyko błędów i strat danych.

Pytanie 23

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. td, th { background-color: Pink; }
B. tr:hover { background-color: Pink; }
C. tr:active { background-color: Pink; }
D. tr { background-color: Pink; }
W tym zadaniu chodzi o zrozumienie, jak działają selektory CSS oraz pseudo-klasy odpowiedzialne za interakcję z użytkownikiem. Jeśli efekt ma pojawiać się tylko wtedy, gdy użytkownik najedzie myszką na wiersz tabeli, to zwykłe ustawienie background-color bez pseudo-klasy nie spełni tego warunku. Deklaracja tr { background-color: Pink; } oznaczałaby, że wszystkie wiersze tabeli są cały czas różowe, niezależnie od tego, czy ktoś na nie najedzie, czy nie. To jest po prostu styl statyczny, bez żadnej reakcji na zdarzenia. Podobnie zapis td, th { background-color: Pink; } ustawia tło dla wszystkich komórek tabeli (zarówno nagłówkowych th, jak i zwykłych td) w sposób stały. Moim zdaniem to dość częsty błąd: ktoś kojarzy tabelę z komórkami i intuicyjnie styluje td/th, ale zapomina, że w pytaniu chodzi o efekt dynamiczny „po najechaniu”. W rezultacie otrzymujemy tabelę pokolorowaną na stałe, bez jakiejkolwiek interakcji, co jest sprzeczne z założeniem zadania i z typowym zachowaniem tabel w nowoczesnych interfejsach. Ciekawsza jest kwestia selektora tr:active { background-color: Pink; }. Pseudo-klasa :active oznacza element w momencie „aktywacji”, czyli najczęściej w chwili klikania (przytrzymania przycisku myszy). Efekt trwa bardzo krótko, tylko w czasie samego kliknięcia. To zupełnie inny scenariusz niż wygodne podświetlenie wiersza, które ma się utrzymywać, dopóki kursor jest nad elementem. Użycie :active prowadzi do efektu, który miga na ułamek sekundy i z punktu widzenia ergonomii jest praktycznie bezużyteczny w kontekście podświetlania wierszy. Typowy błąd myślowy przy takich pytaniach polega na myleniu różnych pseudo-klas: :hover, :active, :focus. W webdevie przyjęło się, że :hover służy do reakcji na najechanie myszką, :active do krótkiej reakcji na kliknięcie, a :focus do zaznaczenia elementu, który ma aktualnie fokus klawiatury. Standardy CSS i dobre praktyki projektowania interfejsów jasno wskazują, że do efektu „podświetl wiersz, gdy nad nim jestem” należy użyć właśnie :hover na odpowiednim elemencie, czyli w tym przypadku tr. Wszystkie pozostałe odpowiedzi ignorują tę zasadę albo stosują nie tę pseudo-klasę, co trzeba, przez co nie odzwierciedlają poprawnie zachowania pokazanego w materiale wideo.

Pytanie 24

Użytkownik podał adres nieistniejącego obiektu na serwerze. Próba nawiązania połączenia spowoduje wystąpienie błędu

A. 400
B. 500
C. 404
D. 503
Każda z pozostałych odpowiedzi odnosi się do różnych typów błędów HTTP, które mogą wystąpić podczas komunikacji klient-serwer, jednak nie są one właściwe w kontekście adresu nieistniejącego zasobu. Odpowiedź 400 oznacza 'Złe żądanie', co sugeruje, że serwer nie rozumie lub nie może przetworzyć żądania z powodu błędnej składni. Taki błąd nie występuje, gdy zasób po prostu nie istnieje, lecz gdy żądanie jest skonstruowane w sposób nieprawidłowy. Odpowiedź 500 to 'Błąd wewnętrzny serwera', co wskazuje na problem po stronie serwera, a nie na nieistniejący zasób. Tego typu błędy mogą wynikać z nieprawidłowego działania aplikacji serwerowej, a nie z tego, że użytkownik wskazał nieprawidłowy adres. Natomiast odpowiedź 503 oznacza 'Usługa niedostępna', co wskazuje, że serwer jest obecnie niedostępny z powodu przeciążenia lub konserwacji. W każdym z tych przypadków, odpowiedzi te nie odnoszą się do sytuacji, w której użytkownik wprowadza adres nieistniejącego zasobu. Ostatecznie, rozumienie kodów odpowiedzi HTTP oraz ich właściwe stosowanie jest kluczowe w tworzeniu efektywnych aplikacji webowych i zapewnianiu użytkownikom płynnych doświadczeń w sieci.

Pytanie 25

W SQL, aby zmodyfikować strukturę tabeli, na przykład dodając lub usuwając kolumnę, należy użyć polecenia

A. ALTER TABLE
B. UPDATE
C. DROP TABLE
D. TRUNCATE
Odpowiedź "ALTER TABLE" jest poprawna, ponieważ jest to standardowe polecenie w języku SQL używane do modyfikacji istniejącej struktury tabeli. Dzięki temu poleceniu można dodawać nowe kolumny, usuwać istniejące, a także zmieniać typy danych kolumn. Przykładowo, aby dodać kolumnę "wiek" do tabeli "pracownicy", można użyć polecenia: "ALTER TABLE pracownicy ADD COLUMN wiek INT;". Innym zastosowaniem może być usunięcie kolumny, co osiągamy poprzez zapis: "ALTER TABLE pracownicy DROP COLUMN wiek;". W praktyce, stosowanie ALTER TABLE jest kluczowe w zarządzaniu bazami danych, szczególnie w przypadku rozwijania aplikacji, gdzie schematy danych mogą ewoluować z czasem. Warto pamiętać, że modyfikacje struktury tabeli mogą wpływać na integralność danych, dlatego przed ich wykonaniem zaleca się tworzenie kopii zapasowych oraz dokładne przemyślenie wpływu zmian na aplikacje korzystające z danej bazy danych.

Pytanie 26

Spośród wymienionych formatów, który charakteryzuje się najszerszą rozpiętością tonalną?

A. JPEG
B. PNG
C. RAW
D. BMP
Format RAW jest uważany za format o najwyższej rozpiętości tonalnej, co oznacza, że może przechowywać znacznie więcej informacji tonalnych niż inne formaty plików graficznych. W przeciwieństwie do formatów skompresowanych, takich jak JPEG, RAW zachowuje wszystkie dane z matrycy aparatu fotograficznego, co pozwala na bardziej precyzyjną obróbkę kolorów i ekspozycji. Dzięki temu, w formacie RAW można uzyskać większą elastyczność podczas edytowania zdjęć, co jest szczególnie ważne dla profesjonalnych fotografów. Przykładem może być sytuacja, gdy zdjęcie zostało zrobione w trudnych warunkach oświetleniowych; w formacie RAW można z łatwością odzyskać szczegóły zarówno w cieniach, jak i w jasnych partiach obrazu. Ponadto, format RAW nie stosuje stratnej kompresji, co oznacza, że nie tracimy żadnych informacji przy zapisywaniu pliku. W standardach fotograficznych, takich jak TIFF czy DNG, również występuje wysoka jakość obrazu, ale RAW zapewnia bardziej bezpośredni dostęp do oryginalnych danych matrycy. Umożliwia to twórcom pełną kontrolę nad procesem edycji i finalnym wyglądem fotografii.

Pytanie 27

Skrypt w JavaScript, który obsługuje wynagrodzenia pracowników, powinien stworzyć raport dla tych, którzy są zatrudnieni na umowę o pracę oraz otrzymują wynagrodzenie w przedziale domkniętym od 4000 do
4500 zł. Jaki warunek należy zastosować 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)
Analizując inne odpowiedzi, można zauważyć kilka kluczowych błędów w koncepcjach wykorzystanych w tych formułach. W pierwszej odpowiedzi występuje nieprawidłowe użycie operatora logicznego '||', który w tym kontekście nie jest odpowiedni. Wykorzystanie '||' oznacza, że pensja może być mniejsza lub równa 4000 zł, co prowadzi do sytuacji, w której zostaną uwzględnieni pracownicy, którzy nie spełniają wymogu minimalnej pensji, co jest sprzeczne z założeniem raportu. W drugiej odpowiedzi zastosowanie operatora '||' również powoduje, że warunek dotyczący umowy jest nieistotny, co sprawia, że program może generować raporty dla osób zatrudnionych na innych rodzajach umów. Trzecia odpowiedź wydaje się być bliska, jednak użycie '&&' w odniesieniu do pensji nie jest wystarczające, ponieważ nie definiuje warunku zatrudnienia. Właściwa logika programistyczna wymaga precyzyjnego określenia zarówno rodzaju umowy, jak i zakresu płacy. W praktyce, niepoprawne zrozumienie operatorów logicznych oraz ich zastosowania w warunkach może prowadzić do poważnych błędów w kodzie, co w konsekwencji wpływa na jakość danych raportowych. Warto pamiętać, że przy tworzeniu warunków w oprogramowaniu, kluczowe jest stosowanie odpowiednich operatorów, aby uniknąć błędów w logice oraz zapewnić poprawność wyników.

Pytanie 28

Jaki zapis jest używany do definiowania klucza obcego w MySQL?

A. FOREIGN KEY(ID)
B. PRIMARY KEY(ID)
C. AUTO_INCREMENT(ID)
D. UNIQUE KEY(ID)
Odpowiedź FOREIGN KEY(ID) jest poprawna, ponieważ klucz obcy (foreign key) jest używany w bazach danych do ustanowienia i wymuszenia relacji pomiędzy dwiema tabelami. Klucz obcy w tabeli A wskazuje na klucz podstawowy (primary key) w tabeli B, co pozwala na utrzymanie integralności referencyjnej danych. Na przykład, jeżeli mamy tabelę 'Zamówienia', w której zapisujemy informacje o zamówieniach, i tabelę 'Klienci', w której mamy dane o klientach, możemy zastosować klucz obcy w tabeli 'Zamówienia', aby wskazywał na ID klienta w tabeli 'Klienci'. Dzięki temu, nie będzie możliwości dodania zamówienia dla nieistniejącego klienta, co zapewnia spójność i integralność bazy danych. Używanie kluczy obcych jest zgodne z najlepszymi praktykami projektowania baz danych, ponieważ pozwala na łatwiejsze zarządzanie danymi i ogranicza możliwość wystąpienia błędów. Warto również zauważyć, że klucze obce mogą być używane w kontekście kaskadowej aktualizacji lub usuwania, co dodatkowo ułatwia zarządzanie relacjami między tabelami.

Pytanie 29

Jakie uprawnienia są wymagane do tworzenia i przywracania kopii zapasowej bazy danych Microsoft SQL Server 2005 Express?

A. Użytkownik lokalny.
B. Administrator systemu.
C. Użytkownicy zabezpieczeń.
D. Użytkownicy.
Odpowiedzi wskazujące na 'Users', 'Security users' oraz 'Użytkownik lokalny' nie są poprawne w kontekście wymagań dotyczących wykonywania i odtwarzania kopii zapasowych w Microsoft SQL Server 2005 Express. Użytkownicy z rolą 'Users' mają ograniczone uprawnienia, które nie pozwalają im na wykonywanie operacji administracyjnych, takich jak tworzenie kopii zapasowych. Ich uprawnienia koncentrują się głównie na korzystaniu z danych i wykonywaniu zapytań, co nie obejmuje operacji związanych z bezpieczeństwem i zarządzaniem danymi. Podobnie, rola 'Security users' obejmuje uprawnienia związane z bezpieczeństwem, jednak nie daje możliwości zarządzania bazami danych w pełnym zakresie. Tego typu użytkownicy mogą mieć dostęp do niektórych funkcji związanych z bezpieczeństwem, ale nie są w stanie wykonywać krytycznych operacji takich jak tworzenie kopii zapasowych. Użytkownik lokalny, z kolei, odnosi się do systemowych użytkowników, którzy mają dostęp do komputera lokalnego, ale ich uprawnienia w kontekście Microsoft SQL Server 2005 Express są ograniczone i nie obejmują funkcji administracyjnych niezbędnych do zarządzania bazami danych. W praktyce, aby zapewnić odpowiednie bezpieczeństwo i integralność danych, konieczne jest, aby do operacji związanych z kopiami zapasowymi byli upoważnieni jedynie użytkownicy z pełnymi uprawnieniami administracyjnymi, co w tym przypadku odnosi się do roli administratora systemu.

Pytanie 30

W której notacji diagramów ER został zapisany model związków encji przedstawiony na ilustracji?

Ilustracja do pytania
A. Martina.
B. Min-Max.
C. Chena.
D. Bachmana.
Na diagramie przedstawiono model w notacji Martina, a nie w żadnej z pozostałych wymienionych. Warto zrozumieć, czym ta notacja różni się od innych, bo w praktyce projektowania baz danych bardzo łatwo je ze sobą pomylić. Notacja Chena to bardziej „akademickie” podejście do ERD. Encje są zwykle rysowane jako prostokąty, ale atrybuty pojawiają się w osobnych elipsach, połączonych liniami z encją. Klucz główny bywa podkreślony, a związki są reprezentowane przez romby z nazwą relacji. Na naszym diagramie nic takiego nie ma – atrybuty są w środku prostokąta, w formie listy, a nie jako osobne kształty, więc to już mocny sygnał, że to nie jest Chen. Z kolei notacja Bachmana historycznie kojarzy się z modelami sieciowymi i specyficznym sposobem prezentowania struktur danych, często z łamanymi liniami i strzałkami, raczej nie przypomina tabel z nagłówkiem i listą pól. W typowych podręcznikach do systemów baz danych Bachman jest pokazywany jako dość stary styl, dziś mało używany przy klasycznym relacyjnym ERD, więc mało prawdopodobne, by tak wyglądał nowoczesny diagram klient–zakup–towar. Odpowiedź Min-Max jest też myląca, bo Min-Max nie jest nazwiskiem autora notacji, tylko sposobem zapisu krotności relacji, np. (0,1), (1,n). Można taki zapis wykorzystać zarówno z notacją Chena, jak i z innymi, ale sam diagram z obrazka nie używa jawnego oznaczenia min/max przy relacjach – widzimy crow’s foot, czyli styl typowy dla Martina. Typowy błąd w tego typu pytaniach polega na tym, że ktoś kojarzy jeden detal, np. gdzieś widział oznaczenia min-max, i automatycznie zakłada, że każda notacja z relacjami i krotnościami to „Min-Max”. Tutaj jednak kluczowe są kształty encji i sposób zapisu atrybutów: prostokąt z nagłówkiem i lista pól jak w tabeli, bez elips i rombów, bez dodatkowych znaczników kluczy – to bardzo klasyczny, praktyczny styl używany przy projektowaniu relacyjnych baz danych, właśnie w notacji Martina. Dobrze jest więc patrzeć na diagram całościowo, a nie tylko na pojedynczy symbol, bo wtedy łatwiej uniknąć takich pomyłek.

Pytanie 31

Aby zliczyć wszystkie wiersze w tabeli Koty, należy wykorzystać zapytanie

A. SELECT COUNT(Koty) AS ROWNUM
B. SELECT ROWNUM() FROM Koty
C. SELECT COUNT(ROWNUM) FROM Koty
D. SELECT COUNT(*) FROM Koty
W przypadku pierwszej niepoprawnej odpowiedzi, SELECT ROWNUM() FROM Koty, należy zaznaczyć, że ROWNUM jest funkcją specyficzną dla baz danych Oracle, która zwraca numer wiersza dla każdego wiersza wynikowego zapytania. Funkcja ta nie może być używana do zliczania wierszy, ponieważ nie zwraca liczby wierszy, a jedynie ich numerację. W rezultacie, zapytanie to nie spełnia wymagań dotyczących zliczania wszystkich wierszy w tabeli. Kolejna odpowiedź, czyli SELECT COUNT(Koty) AS ROWNUM, również jest błędna, ponieważ COUNT(Koty) zlicza nie NULL-owe wartości w kolumnie o nazwie Koty, a nie całkowitą liczbę wierszy w tabeli. Jeśli tabela Koty zawiera kolumny z wartościami NULL, to wynik tego zapytania będzie mniejszy niż oczekiwana całkowita liczba wierszy. Ostatnia niepoprawna odpowiedź, SELECT COUNT(ROWNUM) FROM Koty, jest myląca, ponieważ ROWNUM nie jest kolumną ani funkcją, którą można zliczać. Odwołuje się ponownie do numeracji wierszy, a COUNT(ROWNUM) nie ma sensu w kontekście zliczania rekordów w tabeli, co prowadzi do błędnych obliczeń. Każda z tych odpowiedzi nie tylko nie realizuje założonego celu zliczania wierszy, ale może także wprowadzać w błąd osoby pracujące z SQL, sugerując zastosowanie niewłaściwych metod.

Pytanie 32

Aby stworzyć warunek w zapytaniu wybierającym nazwiska wszystkich uczniów z klas początkowych (od pierwszej do trzeciej), można zastosować klauzulę

A. WHERE klasa < 3
B. WHERE klasa >= 1 OR klasa <= 3
C. WHERE klasa BETWEEN 1 AND 3
D. WHERE klasa IN (1, 3)
Zestawienie innych odpowiedzi w kontekście tego zapytania ujawnia typowe nieporozumienia dotyczące logiki operacji SQL. Klauzula "WHERE klasa < 3" jest nieprawidłowa, ponieważ obejmuje jedynie klasy 1 i 2, co oznacza, że nie uwzględnia uczniów z klasy 3, a więc nie spełnia wymagań pytania. Również użycie klauzuli "WHERE klasa IN (1, 3)" jest mylące, ponieważ wybiera tylko uczniów z klasy 1 i 3, pomijając klasę 2, co jest sprzeczne z definicją klas nauczania początkowego. Kolejna odpowiedź, "WHERE klasa >= 1 OR klasa <= 3", generuje dodatkowe zamieszanie, ponieważ jest logicznie błędna; w praktyce ten warunek zawsze będzie prawdziwy dla wszystkich klas, ponieważ każda klasa będzie spełniać przynajmniej jeden z tych warunków, co prowadzi do zwrócenia wszystkich uczniów, a nie tylko tych z nauczania początkowego. Takie nieprawidłowe użycie operatorów może prowadzić do nieefektywnych zapytań oraz zwiększonego obciążenia bazy danych, a także do niezamierzonych wyników. W przypadku pracy z bazami danych kluczowe jest zrozumienie, jak różne klauzule wpływają na zestaw danych i jakie mogą przynieść konsekwencje w kontekście wyników, co często wymaga starannej analizy oraz testowania zapytań przed ich wdrożeniem.

Pytanie 33

W języku C do przedstawiania liczb zmiennoprzecinkowych używa się typu

A. bool
B. double
C. int
D. char
Typ `double` w języku C jest przeznaczony do reprezentacji liczb zmiennoprzecinkowych, co oznacza, że może on przechowywać zarówno liczby całkowite, jak i liczby z częścią dziesiętną. Jest on bardziej precyzyjny niż typ `float`, ponieważ zapewnia większy zakres wartości oraz dokładność, co jest kluczowe w zastosowaniach inżynieryjnych, naukowych oraz w obliczeniach finansowych. Przykładowo, w obliczeniach, które wymagają reprezentacji wartości takich jak 3.14159 (pi) lub 0.1, typ `double` pozwala na uniknięcie wielu problemów związanych z zaokrągleniami i precyzją. Standard C99 definiuje rozmiar dla typu `double` jako przynajmniej 64 bity, co oznacza, że może on przechowywać liczby o bardzo dużych lub bardzo małych wartościach, co jest istotne w kontekście obliczeń numerycznych. W praktyce programiści często używają `double` do obliczeń naukowych, a także w grafice komputerowej, gdzie precyzyjne ustalenie położenia punktów w przestrzeni jest niezbędne.

Pytanie 34

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. jedną pętlę
B. dwie pętle
C. trzy bloki operacyjne (procesy)
D. jeden blok decyzyjny
Na tym diagramie widać jedną pętlę, co jest dość ważne w programowaniu. Pętla pozwala na powtarzanie pewnych działań, aż spełni się jakiś warunek. Tu mamy blok decyzyjny, który mówi, czy proces ma trwać, czy się zakończyć. To dość powszechnie używane podejście, zwłaszcza w algorytmach, jak na przykład sortowanie czy obróbka danych. Warto zwrócić uwagę, by dobrze zrozumieć, jak działają pętle, szczególnie te oparte na warunkach, jak while czy for. Pozwoli to uniknąć problemów z niekończącymi się pętlami, które mogą sprawić, że program przestanie działać. Z mojego doświadczenia, ogarnać te struktury to kluczowy skill dla każdego, kto chce działać w IT.

Pytanie 35

Podana jest tabela psy z polami: imie, rasa, telefon_wlasciciela, rok_szczepienia. Jakie polecenie SQL należy zastosować, aby znaleźć numery telefonów właścicieli, których psy były szczepione przed rokiem 2015?

A. SELECT imie, rasa FROM psy WHERE rok_szczepienia > 2015
B. SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia > 2015
C. SELECT psy FROM rok_szczepienia < 2015
D. SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia < 2015
Niepoprawne odpowiedzi zawierają różne błędy, które mogą wynikać z nieporozumienia dotyczącego składni SQL i logiki zapytań. W pierwszej odpowiedzi, zapytanie 'SELECT psy FROM rok_szczepienia < 2015;' jest błędne, ponieważ nie stosuje poprawnej struktury SELECT. Nie można używać klauzuli FROM jako warunku; należy ją stosować do określenia tabeli, z której chcemy pobrać dane. Prawidłowa konstrukcja wymagałaby zastosowania klauzuli WHERE do określenia kryteriów selekcji. Z drugiej strony, zapytanie 'SELECT imie, rasa FROM psy WHERE rok_szczepienia > 2015;' nie spełnia wymogu, ponieważ zamiast telefony właścicieli, zwraca inne dane, co jest sprzeczne z założonym celem. Ponadto, operator '>' jest niewłaściwy w tym kontekście, ponieważ interesują nas psy szczepione przed 2015 rokiem, a nie później. Ostatnia odpowiedź, 'SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia > 2015;', także nie spełnia wymogu, ponieważ ponownie dotyczy psów zaszczepionych po 2015 roku. Typowym błędem w takich sytuacjach jest nieodpowiednie zrozumienie logiki negacji w warunkach SQL oraz mylenie operatorów porównania. Kluczowe w SQL jest precyzyjne określenie, jakich danych potrzebujemy, co wymaga dobrej znajomości zarówno struktury bazy danych, jak i zasad działania zapytań. To podkreśla znaczenie staranności w formułowaniu zapytań oraz konieczność dokładnego przemyślenia ich logiki.

Pytanie 36

Aby właściwie przystosować stronę internetową dla osób niewidomych, należy przypisać wyświetlanym za pomocą znacznika img obrazom atrybut

A. alt
B. style
C. src
D. text
Atrybut 'alt' w znaczniku <img> to naprawdę ważny element, jeśli chodzi o dostępność stron internetowych dla osób niewidomych. Głównie chodzi o to, żeby zapewnić opis obrazka, który mogą zrozumieć technologie asystujące, tak jak czytniki ekranu. Dzięki temu, osoby niewidome mają możliwość dowiedzieć się, co znajduje się na zdjęciu. Na przykład, jeśli mamy zdjęcie czerwonego swetra w sklepie internetowym, to warto wpisać coś takiego jak 'Czerwony sweter z wełny' w tym atrybucie. To też pomaga w SEO, bo wyszukiwarki lubią takie opisy. W skrócie, dobrze jest stosować atrybut 'alt' przy każdym obrazie, by każdy użytkownik mógł zrozumieć treść strony.

Pytanie 37

Co zazwyczaj wchodzi w skład Framework'a?

A. zarządzanie komunikacją z bazą danych, mechanizm uruchamiania i przetwarzania akcji
B. certyfikat http oraz mechanizm przetwarzania i uruchamiania akcji
C. wbudowany serwer i obsługa formularzy
D. obsługa błędów i domena
Frameworki to zestawy narzędzi i bibliotek, które ułatwiają rozwój aplikacji webowych, a ich najważniejsze elementy to zarządzanie komunikacją z bazą danych oraz mechanizm uruchamiania i przetwarzania akcji. Zarządzanie komunikacją z bazą danych odnosi się do sposobu, w jaki aplikacja łączy się z systemem zarządzania bazą danych (DBMS), wykonuje zapytania oraz przetwarza wyniki. Przykładem może być użycie ORM (Object-Relational Mapping), które upraszcza interakcję z bazą, eliminując potrzebę pisania skomplikowanych zapytań SQL. Mechanizm uruchamiania i przetwarzania akcji odnosi się do sposobu, w jaki framework zarządza cyklem życia żądania. Obejmuje to odbieranie żądania od użytkownika, przetwarzanie logiki biznesowej oraz generowanie odpowiedzi. Frameworki takie jak Ruby on Rails czy Django stosują wzorzec MVC (Model-View-Controller), co pozwala na rozdzielenie logiki aplikacji od warstwy prezentacji, co zwiększa czytelność i ułatwia zarządzanie kodem. Aby w pełni zrozumieć te mechanizmy, warto zaznajomić się z dokumentacją odpowiedniego frameworka, co dostarczy informacji na temat najlepszych praktyk i standardów.

Pytanie 38

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

A. jedynie całkowite.
B. zmiennoprzecinkowe.
C. nieliczbowe.
D. logiczne.
Wybór odpowiedzi związanych z typami danymi innymi niż zmiennoprzecinkowe wskazuje na zrozumienie, że zmienne w PHP mogą przyjmować różne formy, jednakże zatrzymuje się na nieprawidłowych założeniach. Zmienna logiczna, choć istotna, przyjmuje jedynie wartości prawda/fałsz, co nie ma związku z typem float. Z kolei nieliczbowe zmienne, takie jak stringi, również nie są odpowiednie, gdyż nie przechowują wartości liczbowych w formacie zmiennoprzecinkowym. Odpowiedź dotycząca tylko liczb całkowitych także jest nieprawidłowa, gdyż pomija kluczowy aspekt float, którym jest możliwość reprezentacji wartości dziesiętnych. Typowe błędy myślowe prowadzące do takich wniosków często wynikają z niepełnego zrozumienia specyfiki typów danych w PHP oraz ich zastosowań. Zrozumienie, że float to kategoria liczb obejmująca zarówno całkowite jak i dziesiętne, jest fundamentalne dla skutecznego programowania. Właściwe użycie typów danych, w tym float, jest kluczowe dla zapewnienia dokładności i efektywności w obliczeniach, zwłaszcza w kontekście aplikacji wymagających precyzyjnych wartości, takich jak rachunkowość czy nauka.

Pytanie 39

Aby w tabeli praca, tworzonej w języku SQL, dodać do kolumny stawka warunek, który wymusza, aby przyjmowane były jedynie wartości dodatnie, a jednocześnie mniejsze niż 50, należy zastosować zapis

A. … stawka foat CHECK (stawka>0 OR stawka<50.00)
B. … stawka foat CHECK (stawka IN (0, 50.00))
C. … stawka foat CHECK (stawka>0 AND stawka<50.00)
D. … stawka foat CHECK (stawka BETWEEN 0 AND 50.00)
Wybór odpowiedzi, która nie spełnia założonych warunków, może wynikać z nieprawidłowego zrozumienia logiki operatorów oraz zasadności stosowania warunków CHECK w SQL. Na przykład, zapis '… stawka foat CHECK (stawka BETWEEN 0 AND 50.00)' jest niewłaściwy, ponieważ warunek ten dopuszcza wartość równą zeru, która nie jest wartością dodatnią. Umożliwienie zerowych wartości może prowadzić do sytuacji, w której w tabeli znajdą się dane niezgodne z założeniem, że 'stawka' ma być wartością dodatnią. Podobnie, zapis '… stawka foat CHECK (stawka>0 OR stawka<50.00)' również jest błędny, ponieważ logiczne połączenie za pomocą operatora OR wprowadza możliwość, że 'stawka' może być większa od zera i jednocześnie większa lub równa 50, co jest sprzeczne z naszym celem. Z kolei użycie '… stawka foat CHECK (stawka IN (0, 50.00))' jest nieodpowiednie, ponieważ operator IN sprawdza, czy wartość 'stawka' znajduje się w specyficznej liście wartości, a w tym przypadku znowu dopuszcza zera i wartości graniczne, które nie powinny być zaakceptowane. Tego rodzaju błędy myślowe prowadzą do niepoprawnych założeń w projektowaniu bazy danych, które z kolei mogą skutkować problemami z jakością danych oraz ich późniejszą analizą. Dlatego kluczowe jest zrozumienie, jak właściwie formułować warunki walidacji, aby zapewnić spójność i integralność danych.

Pytanie 40

Jakim słowem kluczowym w języku z rodziny C można przypisać alternatywną nazwę dla już istniejącego typu danych?

A. switch
B. enum
C. typedef
D. union
Wybór błędnych słów kluczowych wskazuje na nieporozumienie dotyczące podstawowych koncepcji typów danych w języku C. 'enum' jest używane do definiowania enumeracji, które pozwalają na tworzenie zbioru nazwanych stałych, co jest użyteczne w kontekście ograniczonego zestawu wartości, ale nie ma zastosowania w nadawaniu alternatywnych nazw dla istniejących typów. 'union' natomiast definiuje typ, który może przechowywać różne typy danych w tym samym miejscu pamięci, lecz również nie ma na celu zmiany nazwy typu. 'switch' to konstrukcja sterująca, która nie ma nic wspólnego z definiowaniem typów danych, a służy do wyboru i wykonania jednego z wielu bloków kodu na podstawie wartości wyrażenia. Te błędne odpowiedzi mogą sugerować, że użytkownik nie zrozumiał roli, jaką pełnią różne słowa kluczowe w języku C. Często mylnie zakłada się, że 'enum' czy 'union' mogą pełnić funkcję, która w rzeczywistości przypisana jest do 'typedef', co prowadzi do nieścisłości w kodzie i utrudnień w jego interpretacji. Kluczowe jest zrozumienie, że 'typedef' nie tworzy nowego typu, ale jedynie nową nazwę dla już istniejącego, co jest fundamentalne w celu utrzymania przejrzystości oraz spójności w projekcie. Niezrozumienie tej zasady może prowadzić do nieefektywnego zarządzania kodem oraz błędów przy jego rozwoju.