Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 29 kwietnia 2026 11:44
  • Data zakończenia: 29 kwietnia 2026 12:13

Egzamin niezdany

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

W języku C++ metoda, która zwraca wynik potęgowania i przyjmuje dwa argumenty: liczbę x oraz wykładnik w, powinna mieć deklarację

A. int potega(int x, int w);
B. void potega(int x, int w, int wynik);
C. void potega(int x, int w);
D. int potega(int x);
Wybrana odpowiedź 'int potega(int x, int w);' jest poprawna, ponieważ jej deklaracja jasno wskazuje, że funkcja ma zwracać wartość typu całkowitego (int) i przyjmować dwa argumenty: podstawę potęgowania (x) oraz wykładnik (w). Taki sposób definiowania funkcji pozwala na elastyczne obliczanie potęgi liczby, co jest istotne w różnych zastosowaniach programistycznych, od prostych kalkulatorów po bardziej złożone algorytmy. W praktyce, implementacja tej funkcji mogłaby wyglądać tak: 'int potega(int x, int w) { return pow(x, w); }', gdzie wykorzystuje się standardową funkcję 'pow' z biblioteki <cmath>. Zwracanie wartości jest zgodne z dobrymi praktykami programistycznymi, ponieważ pozwala na dalsze operacje na wyniku potęgowania, a także ułatwia testowanie i debugowanie kodu. Warto również zwrócić uwagę, że w przypadku potęgowania z wykładnikiem ujemnym, warto zabezpieczyć funkcję przed błędnymi danymi, co może być osiągnięte poprzez odpowiednie sprawdzenie wartości argumentów.

Pytanie 2

W języku PHP wyniki zapytania z bazy danych zostały pobrane przy użyciu polecenia mysql_query(). Aby uzyskać dane w postaci wierszy z tej zwróconej kwerendy, należy użyć polecenia:

A. mysql_fetch_lengths()
B. mysql_field_len()
C. mysql_list_fields()
D. mysql_fetch_row()
Funkcja mysql_fetch_row() to naprawdę ważne narzędzie w PHP, które pomaga w pracy z wynikami zapytań SQL. Kiedy wykonasz zapytanie za pomocą mysql_query(), dostajesz zestaw wyników, który można traktować jak tablicę. Używając mysql_fetch_row(), możesz pobrać jeden wiersz danych z tego zestawu, a to przychodzi w formie tablicy numerycznej. To bardzo przydatne, szczególnie gdy chcesz przejść przez wszystkie wiersze, które zwraca zapytanie. Na przykład, przy wyświetlaniu danych w HTML. Super jest to, że ta funkcja jest prosta w użyciu i działa efektywnie, dlatego tak wielu programistów ją ceni. Pamiętaj, żeby zawsze zabezpieczać zapytania przed SQL Injection. Możesz to zrobić, stosując przygotowane zapytania (prepared statements) albo funkcje, jak mysqli_query() z mysqli_fetch_row(). Warto też wiedzieć, że jeśli nie ma już więcej wierszy do pobrania, to mysql_fetch_row() zwróci false. Można to wykorzystać do kontrolowania pętli w kodzie, co jest przydatne.

Pytanie 3

Działaniem podanego kodu PHP będzie wypełnienie tablicy

$tab = array();
for ($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}
foreach ($tab as $x) {
    if ($x < 0) {
        echo "$x ";
    }
}
A. kolejnymi liczbami od 0 do 9 i ich wypisanie
B. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
C. kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
D. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
Zakładając, że odpowiedzi są błędne, warto zwrócić uwagę na kilka aspektów. Pierwsza z błędnych odpowiedzi sugeruje, że tablica jest wypełniana kolejnymi liczbami od 0 do 9, co jest niezgodne z zamysłem kodu, gdzie wykorzystywana jest funkcja losująca 'rand', a nie sekwencyjne przypisywanie wartości. W efekcie zamiast wartości od 0 do 9, mamy do czynienia z liczbami losowymi z szerokiego zakresu. Ponadto, druga odpowiedź błędnie interpretuje, że tablica zawiera liczby od -100 do 100. Mimo że możliwe jest, aby tablica zawierała takie liczby, kod nie wypełnia jej w sposób sekwencyjny i nie gwarantuje, że wszystkie wartości będą ujemne. Ostatnia błędna odpowiedź odnosi się do 100 losowych wartości, co również jest niepoprawne, ponieważ w kodzie jedynie 10 losowych wartości jest generowanych i zapisywanych w tablicy. Wreszcie, kod koncentruje się na wypisywaniu wartości ujemnych, dlatego odpowiedzi dotyczące wartości dodatnich są również mylące. Nie można zatem mówić o sytuacji, w której wartości dodatnie są wypisywane, co podkreśla, że analiza i interpretacja kodu są kluczowe dla zrozumienia jego działania.

Pytanie 4

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

A. <meta>
B. <h2>
C. <title>
D. <link>
Odpowiedź <h2> jest poprawna, ponieważ ten znacznik rzeczywiście może być używany w nagłówku dokumentu HTML. Znaczniki nagłówków, takie jak <h1>, <h2>, <h3>, itd., są kluczowe dla strukturyzowania treści w HTML, ponieważ definiują hierarchię informacji na stronie. Zgodnie z najlepszymi praktykami SEO, właściwe użycie znaczników nagłówków nie tylko poprawia czytelność dla użytkowników, ale także umożliwia wyszukiwarkom lepsze zrozumienie struktury treści. Warto jednak zauważyć, że w nagłówku dokumentu HTML, który znajduje się w sekcji <head>, należy umieszczać jedynie metadane takie jak <title> oraz <meta>. Znaczniki nagłówków są przeznaczone do użycia w sekcji <body>, co podkreśla ich rolę w organizacji zawartości wizualnej. W praktyce, poprawne użycie znaczników nagłówków przyczynia się do lepszej nawigacji i dostępności treści dla użytkowników z różnymi potrzebami, w tym dla osób korzystających z technologii asystujących. Zastosowanie odpowiednich znaczników nagłówków może także wpłynąć na czas ładowania strony oraz jej ogólną wydajność.

Pytanie 5

Interpreter PHP zgłosi błąd i nie zrealizuje kodu, jeśli programista

A. będzie definiował zmienne w obrębie warunku
B. będzie pisał kod bez odpowiednich wcięć
C. pobierze wartość z formularza, w którym pole input nie zostało wypełnione
D. nie umieści średnika po wyrażeniu w instrukcji if, jeśli po nim występuje sekcja else
W języku PHP, średnik jest traktowany jako znak końca instrukcji. W przypadku, gdy po wyrażeniu w instrukcji 'if' następuje sekcja 'else', programista musi upewnić się, że poprawnie zakończył instrukcję 'if' średnikiem. W przeciwnym razie, interpreter PHP nie będzie w stanie poprawnie zinterpretować kodu, co prowadzi do błędu składniowego. Przykład: 'if ($a > $b) echo 'a jest większe'; else echo 'b jest większe';' jest poprawny, ponieważ średnik znajduje się po instrukcji 'if'. Jednak, jeśli napiszemy 'if ($a > $b) echo 'a jest większe' else echo 'b jest większe';', to zaowocuje to błędem, ponieważ brak średnika prowadzi do niejednoznaczności w interpretacji. Standardy PHP wymagają, aby każda instrukcja była zakończona średnikiem, co jest kluczowym elementem składni tego języka.

Pytanie 6

Instrukcja użytkownika aplikacji nie powinna zawierać

A. sposobu działania poszczególnych komponentów.
B. opisu instalacji programu.
C. opisu zastosowanych algorytmów.
D. wymagań sprzętowych.
Wiele osób intuicyjnie myśli, że dobra instrukcja użytkownika powinna zawierać „wszystko o programie”, łącznie z tym, jak jest on zbudowany od środka. To dość częsty błąd. Instrukcja użytkownika to dokument stricte praktyczny, nastawiony na obsługę, a nie na analizę wewnętrznej logiki systemu. Dlatego wymagania sprzętowe są tam jak najbardziej na miejscu – użytkownik musi wiedzieć, czy aplikacja w ogóle uruchomi się na jego komputerze, jakiego systemu operacyjnego potrzebuje, ile pamięci RAM czy wolnego miejsca na dysku. To podstawowy element każdej sensownej instrukcji, spotykany w oprogramowaniu komercyjnym i open source. Podobnie opis instalacji programu jest absolutnie kluczowy. Bez przejrzystej procedury instalacji, najlepiej krok po kroku, z krótkimi komentarzami, wielu użytkowników po prostu nie poradzi sobie z poprawnym uruchomieniem aplikacji. W dobrych praktykach dokumentacyjnych (np. styl Microsoft, Atlassian, Red Hat) sekcje typu „Instalacja”, „Pierwsze uruchomienie”, „Konfiguracja wstępna” to standard. Trzecia kwestia to sposób działania poszczególnych komponentów, ale z perspektywy użytkownika, nie programisty. Nie chodzi o opisy klas, modułów czy bibliotek, tylko o to, co użytkownik widzi: okna, zakładki, panele, przyciski, formularze. Instrukcja powinna tłumaczyć, do czego służą konkretne elementy interfejsu, jakie mają opcje, co się stanie po wybraniu danej funkcji. Bez takiego opisu użytkownik błądzi po omacku. Problem zaczyna się wtedy, gdy do instrukcji użytkownika próbuje się wcisnąć opis zastosowanych algorytmów. To już jest poziom dokumentacji technicznej, przeznaczony dla deweloperów. Użytkownik końcowy nie potrzebuje wiedzieć, czy dane są sortowane quicksortem, mergesor­tem, jak działa algorytm szyfrowania albo jaka jest złożoność czasowa przetwarzania. Takie informacje nie pomagają mu wykonać zadania w aplikacji, tylko wprowadzają niepotrzebny chaos. Typowy błąd myślowy polega tu na mieszaniu dwóch różnych grup odbiorców: użytkowników i programistów. Dobrą praktyką jest ich rozdzielenie i trzymanie instrukcji użytkownika na poziomie funkcji, kroków i efektów, a nie implementacji.

Pytanie 7

W kodzie HTML przypisano pewne znaczniki do klasy o nazwie "nomargin". Jak można przeprowadzić operacje na tych znacznikach w języku JavaScript, korzystając z odpowiedniej funkcji?

A. getElementsByTagName("nomargin")
B. getElementsByClassName("nomargin")
C. getElement("nomargin")
D. getElementById("nomargin")
Wybór odpowiedzi 'getElementsByClassName("nomargin")' jest właściwy, ponieważ ta funkcja umożliwia selekcję wszystkich elementów HTML, które mają przypisaną daną klasę. W tym przypadku klasa to 'nomargin'. Funkcja ta zwraca kolekcję elementów, co jest bardzo przydatne w manipulacji DOM, gdyż pozwala na wykonywanie operacji na wielu elementach jednocześnie. Przykładowo, jeśli chcemy usunąć marginesy z wszystkich elementów, które mają tę klasę, możemy wykorzystać zwróconą kolekcję do iteracji i zastosować odpowiednie style CSS. Kod mógłby wyglądać tak: var elements = document.getElementsByClassName('nomargin'); for (var i = 0; i < elements.length; i++) { elements[i].style.margin = '0'; }. Standardy JavaScript oraz DOM odnoszą się do używania tej funkcji jako efektywnej metody nawiązywania interakcji z elementami na stronie. Warto także pamiętać, że getElementsByClassName zwraca „żywą” kolekcję, co oznacza, że zmiany w DOM będą natychmiast widoczne w tej kolekcji.

Pytanie 8

Jaką klauzulę należy wykorzystać w instrukcji CREATE TABLE w SQL, by dane pole rekordu pozostawało wypełnione?

A. DEFAULT
B. CHECK
C. NULL
D. NOT NULL
Odpowiedzi takie jak DEFAULT i CHECK sugerują nieporozumienia dotyczące funkcji tych klauzul. Klauzula DEFAULT jest używana do określenia wartości domyślnej dla pola, gdy nie została dostarczona żadna wartość. Nie rozwiązuje to problemu pustych danych, ponieważ nadal umożliwia dodawanie rekordów bez wartości, które są ostatecznie zastępowane przez wartość domyślną. Z kolei klauzula CHECK umożliwia wprowadzenie dodatkowych warunków walidacyjnych dla danych, ale nie blokuje możliwości wprowadzenia wartości NULL. Nie jest to zatem odpowiednie rozwiązanie, gdy celem jest zapewnienie, aby pole nigdy nie pozostawało puste. Klauzula NULL, z drugiej strony, nie ma zastosowania w kontekście tego pytania, gdyż definiuje ona, że pole może zawierać wartości NULL. W praktyce takie podejście prowadzi do braku wymuszenia wprowadzania danych, co może być szkodliwe dla integralności bazy danych. Te zrozumienia błędnie wpływają na jakość projektowania baz danych, gdyż niewłaściwe stosowanie klauzul może prowadzić do problemów z danymi, które są trudne do naprawienia w późniejszym etapie rozwoju systemu.

Pytanie 9

W relacyjnych bazach danych, gdy dwie tabele są ze sobą powiązane przez ich klucze główne, mamy do czynienia z relacją

A. 1 .. 1
B. 1 .. n
C. n .. 1
D. n .. n
Relacje 1 .. n, n .. 1 oraz n .. n wskazują na bardziej złożone powiązania między tabelami w relacyjnych bazach danych, które nie są adekwatne w kontekście kluczy głównych. W przypadku relacji 1 .. n, jeden rekord w tabeli A może mieć wiele odpowiadających mu rekordów w tabeli B, co prowadzi do sytuacji, w której dane są powielane w tabeli B. Typowym błędem jest mylenie sytuacji, w której każdy rekord w tabeli A jest powiązany z wieloma rekordami w tabeli B, co prowadzi do wniosku o relacji 1 .. n. Z kolei relacja n .. 1 oznacza, że wiele rekordów w tabeli A odpowiada jednemu rekordowi w tabeli B, co również nie jest zgodne z definicją relacji 1 .. 1. Co więcej, relacja n .. n sugeruje, że wiele rekordów w tabeli A może być powiązanych z wieloma rekordami w tabeli B, co prowadzi do dużej złożoności i trudności w utrzymaniu integralności danych w bazie. Zrozumienie tych konceptów jest kluczowe dla modelowania danych, dlatego ważne jest, aby unikać nadmiernego uproszczenia lub generalizacji relacji, co często prowadzi do błędnych wniosków w projektowaniu bazy danych.

Pytanie 10

W CSS, stosowanie poniższego kodu na stronie z kilkoma akapitami, gdzie każdy składa się z kilku linijek, spowoduje, że

p::first-line
{
    font-size: 150%;
}
A. cały tekst w paragrafie zostanie powiększony o 150%
B. pierwszy paragraf na stronie będzie miał powiększoną czcionkę w całości
C. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
D. pierwsza linia każdego z paragrafów będzie miała mniejszą wielkość czcionki od pozostałych linii
Zapis CSS p::first-line { font-size: 150%; } używa selektora pseudo-elementu ::first-line który stosuje stylizację do pierwszej linii każdego paragrafu. W tym przypadku zmieniamy rozmiar czcionki pierwszej linii na 150% jej domyślnej wartości co oznacza że będzie ona o 50% większa niż reszta tekstu. Pseudo-element ::first-line jest często stosowany w projektowaniu stron internetowych aby wyróżnić pierwsze zdanie lub akapit co może pomóc w lepszej organizacji treści i zwiększeniu czytelności. Ten sposób formatowania jest zgodny ze standardami CSS i jest wspierany przez większość nowoczesnych przeglądarek internetowych. Takie podejście może być użyteczne w projektach gdzie istotne jest nadanie unikalnego wyglądu nagłówkom sekcji lub wprowadzeniom bez zmieniania struktury HTML. Ważne jest aby pamiętać że ::first-line stosuje się tylko do elementów blokowych takich jak paragrafy co ogranicza jego użycie do tych specyficznych scenariuszy ale jednocześnie pozwala na precyzyjne dostosowanie stylu tekstu w dokumencie.

Pytanie 11

Jakie jest oznaczenie typu stało-znakowego w SQL?

A. char
B. text
C. bool
D. time
Typy text, time oraz bool są niepoprawne w kontekście pytania o stało-znakowy typ danych w SQL. Typ text jest używany do przechowywania łańcuchów o zmiennej długości i jest zaprojektowany do przechowywania większej ilości tekstu, niż typ char. Oznacza to, że text może zawierać znacznie więcej danych, w zależności od implementacji systemu zarządzania bazą danych, jednak nie jest on typem stało-znakowym, co wyklucza go z omawianego pytania. Typ time, z drugiej strony, jest używany do przechowywania danych czasowych, które obejmują godziny, minuty, sekundy oraz, w niektórych przypadkach, ułamki sekundy. Nie ma on żadnego związku z przechowywaniem łańcuchów znaków, a jego zastosowanie jest całkowicie odmienne, koncentrując się na operacjach związanych z czasem. Typ bool jest kolejnym przykładem nieodpowiedniego wyboru. Służy on do przechowywania wartości logicznych, które mogą przyjmować jedynie dwie opcje: prawda (true) lub fałsz (false). Ten typ danych jest używany w kontekście warunków oraz decyzji logicznych, a nie do przechowywania tekstu. Dlatego też, w kontekście pytania o typ stało-znakowy, żaden z wymienionych typów poza char nie jest odpowiedni.

Pytanie 12

Które ze znaczników HTML umożliwią wyświetlenie na stronie tekstu w jednym wierszu, jeżeli żadne formatowanie CSS nie zostało zdefiniowane?

Dobre strony mojej strony

A. <div>Dobre strony </div><div style=”letter-spacing:3px”>mojej strony</div>
B. <span>Dobre strony </span><span style=”letter-spacing:3px”>mojej strony</span>
C. <h3>Dobre strony </h3><h3 style=”letter-spacing:3px”>mojej strony</h3>
D. <p>Dobre strony </p><p style=”letter-spacing:3px”>mojej strony</p>
Niestety, Twoja odpowiedź nie była prawidłowa. Wybrałeś jedną z odpowiedzi zawierających znaczniki blokowe: <p>, <h3> lub <div>. Te znaczniki domyślnie zaczynają nowy wiersz przed i po swoim zakończeniu, co oznacza, że tekst zawarty w kolejnych takich znacznikach będzie wyświetlany w oddzielnych wierszach. To jest dobre podejście, kiedy chcemy utworzyć strukturę dokumentu z wyraźnie zdefiniowanymi sekcjami. Jednak w przypadku pytania, które polegało na wyświetlaniu tekstu w jednym wierszu bez dodatkowego formatowania CSS, odpowiedzi z użyciem tych znaczników są niepoprawne. W takim przypadku powinniśmy skorzystać z znacznika liniowego <span>, który nie wprowadza nowych linii. Ważne jest, aby dobrze rozumieć różnice między znacznikami liniowymi i blokowymi, ponieważ mają one istotne znaczenie dla struktury i wyglądu naszej strony internetowej.

Pytanie 13

Które z poniższych twierdzeń na temat języków programowania jest FAŁSZYWE?

A. SQL jest językiem programowania strukturalnego
B. C++ jest językiem obiektowym
C. PHP jest językiem do tworzenia stron w czasie rzeczywistym
D. JavaScript jest językiem skryptowym
SQL (Structured Query Language) to język zapytań, który służy do zarządzania danymi w relacyjnych bazach danych. Pomimo swojej nazwy, SQL nie jest językiem programowania strukturalnego w tradycyjnym sensie, ponieważ nie obsługuje pełnych konstrukcji programistycznych, takich jak pętle czy warunki, które są charakterystyczne dla języków takich jak C czy Pascal. SQL jest językiem deklaratywnym, co oznacza, że użytkownicy formułują zapytania, które definiują, jakie dane chcą uzyskać, a nie jak je uzyskać. Dzięki temu SQL jest niezwykle efektywny w pracy z dużymi zbiorami danych i umożliwia szybkie wykonywanie operacji na bazach danych. Przykładowe zastosowanie SQL to tworzenie zapytań do wyszukiwania określonych informacji w bazie danych klientów lub przy używaniu funkcji agregujących do analizy danych. Zrozumienie roli SQL w architekturze baz danych oraz umiejętność jego stosowania jest kluczowe w dziedzinie analizy danych i rozwijania aplikacji webowych.

Pytanie 14

Formatem plików graficznych rastrowych z bezstratną kompresją jest

A. JNG
B. CDR
C. SVG
D. PNG
JNG (JPEG Network Graphics) to format zapisu obrazów zaprojektowany jako rozwinięcie formatu JPEG. Chociaż oferuje możliwość kompresji bezstratnej, jego zastosowanie jest ograniczone, a wsparcie w przeglądarkach internetowych jest niemal nieistniejące. JNG nie jest powszechnie akceptowany w aplikacjach graficznych, co sprawia, że nie jest popularnym wyborem dla projektów wymagających wysokiej jakości wizualnej. CDR to format plików stworzony przez CorelDRAW, który jest używany głównie do grafiki wektorowej, a nie rastrowej. Chociaż może zawierać obrazy rastrowe, jego głównym przeznaczeniem jest przechowywanie danych wektorowych, co czyni go nieodpowiednim formatem do przechowywania obrazów z kompresją bezstratną. CDR nie obsługuje również standardu kompresji bezstratnej, co negatywnie wpływa na jakość obrazu. SVG (Scalable Vector Graphics) to format oparty na XML, który służy do opisu grafiki wektorowej, a nie rastrowej. Mimo że SVG obsługuje przezroczystość i jest wszechstronny w kontekście zastosowań webowych, to nie jest formatem bezstratnym dla obrazów rastrowych, ponieważ jest z definicji przeznaczony do grafiki wektorowej. Jego działanie różni się znacząco od PNG, gdyż SVG nie kompresuje obrazów rastrowych, a zamiast tego korzysta z opisów wektorowych, co sprawia, że nie jest odpowiedni do kompresji bezstratnej obrazów rastrowych.

Pytanie 15

Aby zdefiniować pole w klasie, do którego dostęp mają wyłącznie metody tej klasy, a które nie jest dostępne dla klas dziedziczących, powinno się zastosować kwalifikator dostępu

A. chroniony.
B. prywatny.
C. opublikowany.
D. publiczny.
Wybór innych kwalifikatorów dostępu, takich jak 'public', 'protected' czy 'published', prowadzi do wprowadzenia istotnych luk w zakresie bezpieczeństwa i kontroli dostępu w strukturze klasy. Kiedy zmienimy pole na 'public', staje się ono dostępne w całej aplikacji, co może prowadzić do niekontrolowanych modyfikacji i błędów, gdy inne klasy zaczynają bezpośrednio modyfikować stan obiektu, co narusza zasady enkapsulacji. Umożliwienie dostępu do pól poprzez 'protected' pozwala klasom potomnym na modyfikowanie tych pól, co jest sprzeczne z zamiarem zabezpieczenia danych. Z kolei 'published' jest terminem używanym w niektórych językach programowania, ale jest to termin nieprecyzyjny i różnie interpretowany, co może wprowadzać zamieszanie. W oparciu o dobre praktyki programistyczne, kluczowym jest, aby zastanowić się nad dostępem do pól w kontekście całego projektu oraz zrozumieć, że niewłaściwe zarządzanie dostępem może prowadzić do nieprzewidzianych błędów, trudności w utrzymaniu kodu oraz naruszenia integralności danych. Dlatego tak ważne jest, aby zawsze wybierać odpowiedni kwalifikator dostępu, mając na uwadze zasady projektowania obiektowego i odpowiednią ochronę danych.

Pytanie 16

W języku C++ utworzono zmienną: char zml;. Jak można przypisać jej wartość, zgodnie ze składnią tego języka?

A. zml[2] = 32;
B. zml = "wiadro";
C. zml = ' w ' ;
D. zml == 0x35;
Odpowiedzi zml == 0x35 oraz zml[2] = 32 są niepoprawne, ponieważ nie odpowiadają standardom przypisywania wartości zmiennej char w C++. W pierwszej odpowiedzi użyto operatora porównania '==', co skutkuje błędem, ponieważ zamiast przypisywać wartość, program sprawdziłby, czy zml jest równe wartości 0x35, co nie spełnia wymagań przypisania. Dodatkowo, wartość 0x35 reprezentuje znak '5' w kodowaniu ASCII, co nie może być zdefiniowane jako przypisanie do zmiennej char w oczekiwanym kontekście. Druga błędna odpowiedź wprowadza w błąd, ponieważ zml[2] sugeruje, że zmienna zml jest tablicą char, co jest niezgodne z jej deklaracją jako zmiennej pojedynczej. W C++, operacje na tablicach wymagają innego podejścia; nie można bezpośrednio przypisywać wartości w ten sposób do zmiennej char. Z kolei odpowiedź zml = "wiadro" jest niezgodna, gdyż próbuje przypisać łańcuch znaków do zmiennej char, co prowadzi do naruszenia reguł typów danych. Pojedynczy znak powinien być zamknięty w pojedynczych cudzysłowach, a nie w podwójnych, co prowadzi do błędu kompilacji i źle zrozumianej koncepcji wartości zmiennych w C++. Podstawowa zasada programowania w C++ polega na zgodności typów danych, a zrozumienie tej zasady jest kluczowe dla efektywnego programowania.

Pytanie 17

Aby stworzyć relację jeden do wielu, w tabeli po stronie wiele, co należy zdefiniować?

A. klucz obcy wskazujący na klucz obcy tabeli po stronie jeden
B. klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden
C. klucz obcy wskazujący na klucz podstawowy tabeli po stronie jeden
D. klucz sztuczny odnoszący się do kluczy podstawowych obu tabel
W kontekście relacji jeden do wielu w bazach danych, każda z podanych niepoprawnych opcji wprowadza w błąd odnośnie do zasady funkcjonowania kluczy obcych i ich roli w modelowaniu danych. Klucz obcy wskazujący na klucz obcy tabeli po stronie jeden jest konceptualnie błędny, ponieważ klucz obcy zawsze odnosi się do klucza podstawowego innej tabeli, a nie do innego klucza obcego. Taki układ narusza zasady referencyjności i integralności danych, co może prowadzić do trudności w utrzymaniu spójności w bazie. Kolejną niepoprawną opcją jest klucz sztuczny odnoszący się do kluczy podstawowych obu tabel. Klucze sztuczne, choć mogą być użyteczne w pewnych kontekstach, nie powinny być używane jako sposób tworzenia relacji, ponieważ nie odzwierciedlają naturalnych powiązań między danymi. Klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden również jest mylny, ponieważ w relacji jeden do wielu klucz podstawowy tabeli 'jeden' musi być referencjonowany przez klucz obcy w tabeli 'wiele', a nie odwrotnie. Te nieporozumienia mogą prowadzić do błędów projektowych w bazach danych, co w efekcie utrudnia ich rozwój i zarządzanie, szczególnie w dużych systemach, gdzie spójność danych jest kluczowa dla funkcjonowania aplikacji.

Pytanie 18

W aplikacji internetowej komunikat powinien pojawiać się tylko wtedy, gdy dany użytkownik jest na stronie po raz pierwszy. Którą funkcję PHP należy w tym celu zastosować?

A. session_destroy
B. setcookie
C. mysqli_change_user
D. define
Prawidłowo – w tym zadaniu kluczowa jest funkcja setcookie(), bo to właśnie ciasteczka są standardowym mechanizmem do rozpoznawania, czy użytkownik był już wcześniej na danej stronie. W praktyce robi się to tak: przy pierwszym wejściu na stronę sprawdzasz, czy istnieje określone cookie, np. $_COOKIE['first_visit']. Jeśli go nie ma, wyświetlasz komunikat powitalny i ustawiasz ciasteczko za pomocą setcookie('first_visit', '1', time()+3600*24*365). Przy kolejnych wejściach cookie już będzie istniało, więc komunikat się nie pojawi. To jest bardzo typowy wzorzec np. dla banerów informujących o ciasteczkach, komunikatów onboardingowych czy jednorazowych podpowiedzi dla nowych użytkowników. Z mojego doświadczenia w webdevie to najprostsze i najbardziej przenośne rozwiązanie, bo działa niezależnie od sesji i logowania użytkownika – wystarczy przeglądarka z włączonymi cookies. Ważne jest też, żeby pamiętać o tym, że setcookie() musi być wywołane przed wysłaniem jakiegokolwiek outputu (czyli przed jakimkolwiek HTML, echo, BOM itd.), bo ciasteczka są wysyłane w nagłówkach HTTP. W bardziej rozbudowanych projektach często łączy się cookies z innymi mechanizmami (np. sesją czy bazą danych), ale do prostego sprawdzenia „czy użytkownik jest tu pierwszy raz” ciasteczko ustawiane setcookie() to według dobrych praktyk w zupełności wystarcza. Warto też dbać o parametry bezpieczeństwa ciastek (secure, httponly, samesite), szczególnie gdy później używamy tego mechanizmu do czegoś ważniejszego niż zwykły komunikat informacyjny.

Pytanie 19

Jakiego zdarzenia należy użyć, aby funkcja JavaScript była uruchamiana za każdym razem, gdy użytkownik wprowadzi jakikolwiek znak w polu edycji?

A. onload
B. onclick
C. onkeydown
D. onmouseout
Odpowiedź 'onkeydown' jest poprawna, ponieważ to zdarzenie jest wywoływane za każdym razem, gdy użytkownik naciśnie klawisz na klawiaturze, a zatem idealnie nadaje się do sytuacji, gdy chcemy reagować na wprowadzanie tekstu w polu edycji. W praktyce oznacza to, że nasza funkcja może być użyta do natychmiastowego przetwarzania danych wprowadzanych przez użytkownika, co jest szczególnie istotne w przypadku dynamicznych interfejsów użytkownika. Na przykład, możemy wykorzystać 'onkeydown' do implementacji funkcji autouzupełniania, gdzie na bieżąco prezentujemy możliwe opcje na podstawie wprowadzanego tekstu. Dobrą praktyką jest również umieszczanie dodatkowych warunków, aby nasza funkcja nie była wywoływana dla klawiszy, które nie mają znaczenia dla wprowadzania tekstu, takich jak klawisze funkcyjne czy kombinacje klawiszy. Warto również zrozumieć, że istnieją inne zdarzenia, takie jak 'input', które mogą być użyte w podobnym kontekście, ale 'onkeydown' daje bardziej bezpośrednią kontrolę nad interakcją użytkownika.

Pytanie 20

W jaki sposób można określić w CSS styl dla hiperłącza, aby link, który nie był odwiedzony, miał kolor żółty, natomiast odwiedzony link był w kolorze zielonym?

A. a:hover { color: yellow; } a:visited { color: green; }
B. a:visited { color: yellow; } a:link { color: green; }
C. a:hover { color: green; } a.link { color: yellow; }
D. a:link { color: yellow; } a:visited { color: green; }
Odpowiedzi, które nie są zgodne z wymaganiami, zawierają błędy w określaniu selektorów CSS i ich zastosowania. Przykładowo, użycie `a:hover` w kontekście kolorowania linków po ich odwiedzeniu jest niepoprawne, ponieważ pseudo-klasa `:hover` dotyczy stanu, kiedy użytkownik najeżdża na link kursorem, a nie jego stanu wizyty. To prowadzi do nieporozumień, ponieważ stylizacja w stanie hover jest chwilowa i nie ma wpływu na trwałe kolorowanie linków. Kolejnym błędem jest pomieszanie selektorów - `a:visited` i `a:link` są podstawowymi selektorami do stylizacji linków, ale w niepoprawnej odpowiedzi przypisanie kolorów jest odwrotne. To oznacza, że odwiedzone linki byłyby w kolorze żółtym, co może wprowadzać użytkowników w błąd, ponieważ nie mają oni możliwości odróżnienia, które linki już odwiedzili. To z kolei może prowadzić do frustracji, szczególnie na stronach z dużą liczbą hiperłączy, gdzie jasne wskazanie statusu linków jest kluczowe dla pozytywnego doświadczenia użytkownika. Warto podkreślić, że w standardach webowych kluczowe jest stosowanie odpowiednich selektorów dla różnych stanów linków, aby zapewnić ich właściwe funkcjonowanie oraz intuicyjność interakcji na stronie.

Pytanie 21

W języku PHP, aby nawiązać połączenie z bazą danych MySQL przy użyciu biblioteki mysqli, w poniższym zapisie w miejsce litery 'c' należy wpisać:

$a = new mysqli('b', 'c', 'd', 'e');
A. hasło dla użytkownika
B. nazwa użytkownika
C. adres serwera bazy danych
D. nazwa bazy danych
Wybór odpowiedzi dotyczącej 'nazwa bazy danych', 'hasło użytkownika' i 'lokalizacja serwera bazy danych' nie jest poprawny, bo żaden z tych elementów nie odnosi się do drugiego argumentu w konstruktorze mysqli. Zrozumienie połączeń z bazą danych jest kluczowe przy programowaniu w PHP. 'Nazwa bazy danych' to czwarty argument, więc dotyczy tego, do której bazy chcemy się podłączyć. 'Hasło użytkownika' to trzeci argument, który jest potrzebny, żeby się autoryzować. A 'lokalizacja serwera bazy danych' to pierwszy argument, który mówi, gdzie znajduje się serwer, najczęściej będzie to 'localhost', na którym działa nasza aplikacja. Błędne wnioski mogą się brać z niepełnego zrozumienia struktury połączeń w PHP.

Pytanie 22

W CSS zastosowano poniższe formatowanie. Kolorem czerwonym będzie wyświetlony

h1 i {
   color: red;
}
A. jedynie tekst italic we wszystkich poziomach nagłówków
B. cały tekst nagłówka pierwszego stopnia oraz wszelki tekst italic, niezależnie od lokalizacji na stronie
C. tylko tekst italic nagłówka pierwszego stopnia
D. cały tekst nagłówka pierwszego stopnia oraz tekst italic akapitu
W stylach CSS selektor złożony h1 i oznacza, że formatowanie będzie stosowane tylko do elementów pochylonych i znajdujących się wewnątrz nagłówka pierwszego poziomu h1. W praktyce oznacza to, że taki zapis CSS zmienia kolor na czerwony tylko dla tekstu wewnątrz tagu <i> znajdującego się w <h1>. Selekcja złożona umożliwia precyzyjne określanie, które elementy są formatowane, co jest kluczowe w przypadku dużych i złożonych stron internetowych. Zrozumienie działania selektorów jest fundamentem efektywnego stylizowania dokumentów HTML. Pozwala to na zachowanie spójności wizualnej oraz lepszą kontrolę nad wyglądem strony. Dobór odpowiednich selektorów w CSS to również jedna z dobrych praktyk, które sprzyjają czytelności kodu oraz jego łatwiejszej konserwacji w przyszłości. Taki zapis pozwala na minimalizację konfliktów stylów, które mogą się pojawić przy bardziej ogólnych selektorach. Praktyczne użycie selektorów złożonych jest więc zalecane w celu uzyskania bardziej kontrolowanego i przewidywalnego wyglądu strony internetowej, co jest zgodne ze standardami webowymi promującymi semantyczne i uporządkowane kodowanie.

Pytanie 23

Na stronie internetowej dodano grafikę w kodzie HTML. Co się stanie, jeśli plik rysunek.png nie zostanie odnaleziony przez przeglądarkę?

<img src="rysunek.png" alt="pejzaż">
A. nie pokaże strony internetowej
B. wstawi tekst "rysunek.png" zamiast grafiki
C. wyświetli tekst "pejzaż" w miejscu grafiki
D. zademonstruje błąd wyświetlania strony w miejscu grafiki
W HTML znacznik <img> jest używany do wstawiania obrazów na stronach. Ważne, żeby pamiętać o atrybucie src, który mówi przeglądarce, skąd ma wziąć obraz. A alt to taki tekst zapasowy, który wyświetli się, jeśli obrazek nie załaduje się z jakiegoś powodu. To istotne, bo ułatwia dostępność dla osób, które mogą mieć trudności z widzeniem. Na przykład, gdy plik rysunek.png się nie załaduje, to wyświetli się tekst z atrybutu alt - w tym przypadku słowo pejzaż. To jest zgodne z dobrymi praktykami, bo każdy powinien wiedzieć, co miało być na obrazku, nawet jeśli go nie widzi. To także pomaga wyszukiwarkom w indeksowaniu treści. A używanie atrybutu alt to rzecz, którą warto stosować, jeśli chcemy, żeby nasza strona była dostępna i przyjazna dla użytkowników. Przy tym, przypomina mi się, że to też jest zgodne z zasadami dostępności WCAG.

Pytanie 24

W bazie danych samochodów pole kolor z tabeli samochody przyjmuje wartości kolorów jedynie ze słownika lakier. Aby połączyć tabele samochody i lakier relacją należy, zastosować kwerendę

A. ALTER TABLE samochody
   ADD FOREIGN KEY kolor REFERENCES lakier;

B. ALTER TABLE samochody
   ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);

C. ALTER TABLE samochody
   ADD FOREIGN KEY barwa REFERENCES samochody.lakier;

D. ALTER TABLE lakier
   ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
A. B.
B. A.
C. C.
D. D.
Błędne odpowiedzi wynikają z niezrozumienia jak działa łączenie tabel w SQL lub z błędów w składni. W przypadku relacji między tabelami, klucz obcy w jednej tabeli odpowiada kluczowi głównemu w drugiej tabeli. Tymczasem, niektóre z błędnych odpowiedzi zawierają niewłaściwe odniesienia do kluczy głównych i obcych. Próby utworzenia klucza obcego bez odwołania do odpowiadającego mu klucza głównego, lub odwołanie się do nieistniejących pól w tabeli, skutkują błędami i niepoprawnym działaniem bazy danych. Błędy w składni SQL, takie jak niepoprawne użycie słów kluczowych czy polecenia utworzenia klucza obcego, mogą także prowadzić do nieprawidłowych wyników. Zrozumienie relacji między tabelami i prawidłowe stosowanie składni SQL są kluczowe dla efektywnej pracy z bazami danych.

Pytanie 25

Definicja stylu w CSS, którą zaprezentowano, dotyczy odsyłacza, który

a:visited {color: orange;}
A. ma wskaźnik myszy umieszczony nad sobą
B. jeszcze nigdy nie został odwiedzony
C. był wcześniej odwiedzany
D. posiada niepoprawny adres URL
Pseudoklasa :visited w CSS jest używana do stylizowania odsyłaczy, które zostały już odwiedzone przez użytkownika. Oznacza to, że przeglądarka zapisuje informacje o odwiedzonych stronach w historii przeglądania i na tej podstawie zmienia styl odsyłacza. W przykładzie a:visited {color: orange;} zmienia kolor tekstu odwiedzonych linków na pomarańczowy. Jest to powszechna praktyka stosowana w projektowaniu stron internetowych, która pomaga użytkownikom wizualnie odróżniać odwiedzone odsyłacze od nieodwiedzonych, co poprawia ich orientację na stronie. Dobre praktyki projektowania zakładają tworzenie intuicyjnych interfejsów użytkownika i użycie mechanizmu :visited do poprawy użyteczności. Ważne jest, aby unikać stosowania bardziej zaawansowanych stylów w :visited, takich jak zmiana rozmiaru czcionki czy dodawanie obrazów tła, ze względu na ograniczenia bezpieczeństwa przeglądarek, które chronią prywatność użytkowników. Korzystanie z :visited w sposób świadomy i zgodny ze standardami W3C zwiększa efektywność nawigacji i jest istotnym elementem przyjaznego projektowania stron WWW

Pytanie 26

Wskaż pętlę w języku JavaScript, która wypisze sześć kolejnych liczb parzystych.

A. for(i=2;i<=12;i+=2) {document.write(i);}
B. for(i=2;i<12;i+=2) {document.write(i);}
C. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
D. for(i=2;i<12;i++) {i++; document.write(i);}
Pierwsza z analizowanych pętli, która przyjmuje formę for(i=2;i<12;i+=2) {document.write(i);}, jest niepoprawna, ponieważ wyświetli jedynie liczby parzyste od 2 do 10. Warunek końcowy pętli jest ustawiony na i<12, co oznacza, że pętla zakończy się przed wyświetleniem liczby 12, co skutkuje pominięciem ostatniej liczby parzystej w tym zakresie. Kolejna pętla to for(i=2;i<12;i++) {i++; document.write(i);}, która jest problematyczna ze względu na modyfikację zmiennej i w samym ciele pętli. Przy każdym przebiegu pętli wartość i zwiększa się o 1, a następnie jeszcze raz o 1 w document.write(i), co prowadzi do pominięcia co drugiej liczby. Efektem tej pętli będzie wyświetlenie liczb 3, 5, 7, 9, 11, co zupełnie odbiega od założonego celu. Ostatnia z rozważanych pętli, for(i=2;i<=12;i++) {i=i+2; document.write(i);}, również nie spełnia założeń, ponieważ inkrementuje zmienną i w sposób, który jest niezgodny z zamierzeniem wyświetlenia kolejnych liczb parzystych. Po pierwszym przebiegu pętli, wartość i wzrasta do 3, przez co wyświetlana jest liczba 3 oraz każda kolejna liczba jest pomijana. Efektem końcowym będzie wyświetlenie liczb 3, 5, 7, 9, 11, co również jest sprzeczne z wymaganym rezultatem. Każda z tych pętli pokazuje, jak ważne jest zrozumienie działania konstrukcji pętli oraz odpowiedniego ustalania warunków i inkrementacji w kontekście programowania w JavaScript.

Pytanie 27

bool gotowe=true;
cout<<gotowe;
Jakie będzie wyjście w wyniku wykonania podanych poleceń?

A. 1
B. Nie
C. 0
D. Tak
Kiedy wybrałeś, że wynik to '0' lub inną wartość logiczną, mogłeś się pomylić co do działania zmiennych typu bool w C++. Myśląc, że wynik to '0', można sądzić, że zmienna gotowe (z wartością true) nie jest prawidłowo wyświetlana jako liczba. To jest w sumie sprzeczne z tym, co mówi definicja typu bool, bo true i false są pokazywane jako 1 i 0. Myślenie, że 'Tak' lub 'Nie' to dobre odpowiedzi, może wynikać z błędnego założenia, że bool można bardziej skomplikowanie interpretować. W rzeczywistości w C++ nie ma prostego przełożenia bool na tekst; korzystamy z liczbowych odpowiedników. Takie nieporozumienia mogą prowadzić do różnych błędów, zwłaszcza gdy programista nie rozumie podstawowych zasad konwersji typów danych. Ważne jest, żeby programiści wiedzieli, jak różne typy są reprezentowane i konwertowane w języku, bo to ma wpływ na działanie ich programów oraz na interakcje z użytkownikami. Ta wiedza jest kluczowa do tworzenia sprawnych aplikacji i unikania typowych błędów w kodowaniu.

Pytanie 28

Formularze do zarządzania bazami danych są tworzone w celu

A. wyszukiwania rekordów spełniających określone kryteria
B. tworzenia powiązań w relacyjnych bazach danych
C. generowania raportów z danych
D. łatwiejszego wprowadzania, edytowania oraz usuwania danych
Wiele osób może pomylić rolę formularzy w codziennej pracy z bazami danych, koncentrując się na ich potencjalnych zastosowaniach do wyszukiwania danych, raportowania czy wprowadzania powiązań relacyjnych. Wyszukiwanie wierszy spełniających dane kryteria jest procesem, który zazwyczaj wiąże się z używaniem kwerend SQL, a nie bezpośrednio z formularzami. Formularze nie mają na celu zastępowania tego procesu, lecz oferują przyjazny interfejs do interakcji z danymi, co może być mylnie interpretowane jako ich główna funkcja. Podobnie, raportowanie danych odbywa się zazwyczaj na poziomie analizy danych, a nie za pomocą formularzy, które są narzędziem do manipulacji danymi. Wprowadzenie powiązań w relacyjnych bazach danych dotyczy strukturalnego projektowania bazy, co jest odrębnym zagadnieniem od funkcji formularzy. Te błędne zrozumienia mogą prowadzić do nieefektywnego korzystania z systemów baz danych oraz frustracji użytkowników, którzy nie potrafią w pełni wykorzystać możliwości, jakie oferują formularze. Kluczowe jest zrozumienie, że formularze są narzędziem wspierającym zarządzanie danymi, a nie ich analizę czy strukturalne projektowanie, co powinno być podstawą każdej pracy z bazami danych.

Pytanie 29

Jaki program służy do tworzenia i edytowania grafiki wektorowej?

A. Corel Draw
B. Audacity
C. Paint
D. Wordpad
Paint, Audacity i Wordpad to programy, które nie są przeznaczone do edycji grafiki wektorowej. Paint to prosty edytor bitmapowy, który obsługuje grafikę rastrową, co oznacza, że obrazy składają się z pikseli. W przypadku grafiki rastrowej, powiększanie obrazu prowadzi do utraty jakości, co jest niekorzystne w kontekście profesjonalnych projektów graficznych. Audacity to program do edycji dźwięku, który nie ma związku z grafiką, a jego zastosowanie ogranicza się do obróbki audio. Wordpad, z kolei, jest edytorem tekstu, który nie obsługuje grafiki wektorowej ani rastrowej w sposób zaawansowany. Typowe błędy myślowe związane z wyborem tych programów wynikają często z niepełnej wiedzy na temat ich funkcji oraz zastosowań. Użytkownicy mogą mylnie sądzić, że jakikolwiek program graficzny może być użyty do projektowania, jednak profesjonalne narzędzia, takie jak Corel Draw, są zoptymalizowane do pracy z grafiką wektorową, oferując funkcje, które są kluczowe dla uzyskania wysokiej jakości projektów. Zrozumienie różnicy między grafiką wektorową a rastrową oraz znajomość odpowiednich narzędzi jest niezbędne do skutecznego tworzenia profesjonalnych projektów graficznych.

Pytanie 30

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

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Rafał, Rebeka, Renata, Roksana
B. Arleta, Krzysztof, Krystyna, Tristan
C. Krzysztof, Krystyna, Romuald
D. Gerald, Jarosław, Marek, Tamara
Wybór tych imion, które nie pasują do wzoru z klauzulą LIKE, jest trochę mylący. Te imiona, które zaznaczyłeś, nie mają 'r' na właściwych miejscach, co jest kluczowe. Na przykład, 'Rafał', 'Rebeka', 'Renata' czy 'Roksana' mają 'r' na pierwszej pozycji albo w ogóle! To pokazuje, jak ważne jest rozumienie pozycji znaków w wzorze LIKE, gdzie '_' oznacza jeden znak, a '%' może być niczym lub więcej. No i jak 'r' jest na pierwszej pozycji, to nie ma szans, żeby pasowało do '_r%'. Często błędy we wzorach wynikają z niedopatrzeń w pozycjach znaków. Wiedza na ten temat jest mega ważna, gdy pracujemy z bazami danych, bo bez tego może być bałagan w wyszukiwaniach.

Pytanie 31

Przedstawione zapytanie MySQL ma za zadanie

ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL;
A. dodać do tabeli ksiazki kolumnę tytul.
B. zmienić nazwę kolumny w tabeli ksiazki.
C. usunąć kolumnę tytul z tabeli ksiazki.
D. zmienić typ kolumny tytul w tabeli ksiazki.
Twoja odpowiedź dobrze odczytuje składnię polecenia ALTER TABLE w MySQL. Instrukcja: ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL; służy do zmiany definicji już istniejącej kolumny tytul w tabeli ksiazki. Słowo kluczowe MODIFY w MySQL oznacza właśnie modyfikację typu danych i atrybutów kolumny, bez zmiany jej nazwy. W tym przykładzie kolumna tytul zostaje ustawiona jako typ VARCHAR o długości 100 znaków oraz z ograniczeniem NOT NULL, czyli pole nie może przyjmować wartości pustej. Moim zdaniem to jedno z częstszych poleceń przy rozwijaniu aplikacji, bo schemat bazy prawie nigdy nie jest idealny od początku. W praktyce takie polecenie stosuje się np. gdy początkowo założyliśmy zbyt krótki tytuł, np. VARCHAR(50), i po czasie okazuje się, że część danych się nie mieści. Zamiast tworzyć nową kolumnę, zmieniamy typ i parametry istniejącej. Dobra praktyka przy pracy z ALTER TABLE to zawsze sprawdzić, czy modyfikacja nie spowoduje utraty danych, np. przy skracaniu długości VARCHAR. W środowiskach produkcyjnych często robi się to najpierw na kopii bazy lub w środowisku testowym, bo zmiany w strukturze tabel potrafią blokować tabelę i wpływać na wydajność. Warto też wiedzieć, że w MySQL do zmiany nazwy kolumny używa się ALTER TABLE ... CHANGE stara_nazwa nowa_nazwa typ, a do dodania nowej kolumny słowa kluczowego ADD. Dzięki rozróżnieniu MODIFY/CHANGE/ADD/ DROP łatwiej czyta się skrypty migracyjne i utrzymuje spójny model danych. Dobrą praktyką jest też trzymanie wszystkich takich zmian w repozytorium razem z kodem aplikacji, żeby zawsze było wiadomo, jaka wersja schematu jest aktualna.

Pytanie 32

Zgodnie z zasadami walidacji HTML5, prawidłowy zapis tagu hr to

A. </ hr>
B. </ hr />
C. <hr>
D. </hr?>
Znak <hr> jest poprawnym zapisem znacznika poziomej linii w HTML5. Zgodnie z definicją, <hr> jest elementem samodzielnym, co oznacza, że nie wymaga znacznika zamykającego. Jest to zgodne z zasadami HTML5, które wprowadziły uproszczoną składnię dla wielu elementów. W praktyce <hr> jest używany do wizualnego oddzielania sekcji w dokumencie HTML, co poprawia czytelność i estetykę strony. Na przykład, w artykule internetowym można zastosować <hr> między różnymi sekcjami, aby wskazać zmianę tematu lub podział pomiędzy wprowadzeniem a treścią główną. Zgodność z tym standardem nie tylko ułatwia pracę z kodem, ale również zapewnia lepszą kompatybilność z przeglądarkami i narzędziami dostępu. Warto także zwrócić uwagę, że dobrym zwyczajem jest dodawanie atrybutów klasy lub identyfikatora do tego znacznika w celu dalszej personalizacji stylów CSS, co zwiększa elastyczność w projektowaniu graficznym strony.

Pytanie 33

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

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

Pytanie 34

Jakie są wyniki wykonania zapytania SQL?

SELECT count(*) FROM Uczniowie WHERE srednia=5;
A. ilość uczniów, których średnia ocen wynosi 5
B. suma ocen uczniów z średnią 5
C. średnia wszystkich ocen uczniów
D. łączna liczba uczniów
Zapytanie SQL używa funkcji COUNT aby policzyć liczbę rekordów w tabeli Uczniowie spełniających warunek srednia=5 Klauzula WHERE ogranicza zestaw zliczanych rekordów do tych gdzie średnia ocen ucznia wynosi dokładnie 5 W efekcie wynik zapytania odpowiada liczbie uczniów mających średnią ocen równą 5 Takie podejście jest powszechnie stosowane w analizie danych gdzie wymagane jest określenie liczby jednostek spełniających konkretne kryteria Zastosowanie COUNT w połączeniu z WHERE umożliwia precyzyjną kontrolę nad analizowanym zbiorem danych co jest standardem w wielu systemach bazodanowych Praktyczne zastosowanie tej techniki można spotkać w raportowaniu wyników nauczania generowaniu statystyk czy w analizach biznesowych gdzie kluczowe jest zrozumienie struktury i charakterystyki danych Zapytanie to ilustruje dobrą praktykę pracy z bazami danych polegającą na efektywnym i precyzyjnym formułowaniu zapytań w celu uzyskania wartościowych i precyzyjnych informacji

Pytanie 35

Integralność encji w systemie baz danych będzie zapewniona, jeśli między innymi

A. dla każdej tabeli zostanie ustanowiony klucz główny
B. każda kolumna otrzyma zdefiniowany typ danych
C. klucz główny zawsze będzie liczbą całkowitą
D. każdy klucz główny będzie miał odpowiadający mu klucz obcy w innej tabeli
Inne odpowiedzi na to pytanie wskazują na powszechnie występujące błędne przekonania dotyczące integralności encji. Twierdzenie, że klucz główny musi być zawsze liczbą całkowitą, jest błędne, ponieważ klucz główny może przyjmować różne typy danych, takie jak ciągi znaków, co może być użyteczne w przypadku identyfikatorów alfanumerycznych. Przypisanie typu danych dla każdej kolumny jest ważne, ale samo w sobie nie gwarantuje integralności encji, ponieważ nie eliminuje problemu duplikacji wartości, co jest kluczowe dla kluczy głównych. Ponadto, sugerowanie, że każdy klucz główny powinien mieć odpowiadający klucz obcy w innej tabeli, prowadzi do nieporozumienia, ponieważ klucz główny nie musi być powiązany z kluczem obcym, jeśli tabela nie jest częścią relacji. Klucze obce są używane do tworzenia relacji między tabelami, ale nie są wymogiem dla każdej tabeli. W praktyce, klucz główny jest podstawowym wymogiem dla spójności danych w tabelach, natomiast inne aspekty, takie jak typ danych czy relacje między tabelami, są uzupełniające i nie mogą być traktowane jako równorzędne do roli klucza głównego w zapewnieniu integralności encji.

Pytanie 36

W SQL, aby w tabeli Towar dodać kolumnę rozmiar typu znakowego z maksymalną długością 20 znaków, jakie polecenie należy wykonać?

A. ALTER TABLE Towar ALTER COLUMN rozmiar varchar(20)
B. ALTER TABLE Towar CREATE COLUMN rozmiar varchar(20)
C. ALTER TABLE Towar ADD rozmiar varchar(20)
D. ALTER TABLE Towar DROP COLUMN rozmiar varchar(20)
Podane odpowiedzi nie są poprawne z kilku powodów. Odpowiedź sugerująca użycie 'DROP COLUMN' jest myląca, ponieważ to polecenie służy do usuwania istniejącej kolumny z tabeli, a nie dodawania nowej. Usunięcie kolumny bez zrozumienia konsekwencji może prowadzić do utraty danych, co podkreśla znaczenie przemyślenia operacji modyfikujących strukturę bazy danych. Inna odpowiedź, która proponuje 'CREATE COLUMN', jest nieprawidłowa, ponieważ nie jest uznawana za standardową składnię w SQL; nie istnieje polecenie 'CREATE COLUMN'. Zamiast tego, kolumny są dodawane za pomocą 'ADD' w kontekście ALTER TABLE. W przypadku 'ALTER COLUMN' - to polecenie odnosi się do zmiany właściwości już istniejącej kolumny, a nie do dodawania nowej. Dlatego mylenie tych pojęć prowadzi do nieprawidłowych wniosków. Zrozumienie tych różnic jest kluczowe dla poprawnego posługiwania się SQL. Niezrozumienie zasad modyfikacji struktury tabeli może skutkować nieefektywnym zarządzaniem bazą danych oraz błędami w aplikacjach korzystających z danych.

Pytanie 37

W formularzu zdefiniowano kontrolki do wpisania imienia i nazwiska. Który atrybut reprezentuje podpowiedź umiejscowioną w polu kontrolki, znikającą w momencie, gdy użytkownik rozpocznie wpisywanie wartości?

<label for="imie">Imię: </label>
<input id="imie" value="Wpisz dane" title="Wpisz imię"><br>
<label for="nazw">Nazwisko: </label>
<input id="nazw" placeholder="Wpisz dane" title="Wpisz nazwisko">
A. title
B. for
C. value
D. placeholder
Wybrałeś niepoprawną odpowiedź. Atrybut 'placeholder' w elemencie input HTML jest używany do wyświetlania podpowiedzi wewnątrz pola formularza, która znika, gdy użytkownik zaczyna wpisywanie danych. Inne atrybuty, takie jak 'title', 'value' i 'for', mają inne zastosowania. Atrybut 'title' służy do dodawania etykietki wyświetlanej po najechaniu kursorem na element, a nie do wyświetlania podpowiedzi w polu formularza. Atrybut 'value' określa domyślną wartość pola formularza, a nie podpowiedź dla użytkownika. Wreszcie, atrybut 'for' jest używany do powiązania etykiety z konkretnym polem input, a nie do wyświetlania podpowiedzi. Pamiętaj, że ważne jest zrozumienie, do czego służy każdy atrybut, aby móc skutecznie tworzyć interaktywne formularze HTML.

Pytanie 38

Zastosowanie poniższej kwerendy SQL spowoduje usunięcie

DELETE FROM mieszkania WHERE status=1;
A. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
B. pola o nazwie status w tabeli mieszkania
C. rekordów, dla których pole status ma wartość 1, z tabeli mieszkania
D. tabeli mieszkania z systemu baz danych
Odpowiedź, którą zaznaczyłeś, jest jak najbardziej trafna i dotyczy działania kwerendy SQL, szczególnie polecenia DELETE. W tym przypadku, to DELETE FROM mieszkania WHERE status=1 oznacza, że zamierzamy usunąć wszystkie rekordy z tabeli mieszkania, gdzie status jest równy 1. To jest ważne, bo w zarządzaniu bazami danych kluczowe jest precyzyjne ustalenie, które dane chcemy usunąć. Z mojej perspektywy, przed wykonaniem takiej operacji warto najpierw wykonać zapytanie SELECT z tymi samymi warunkami, żeby zobaczyć, co dokładnie usuniemy. Przykład? Możesz chcieć usunąć mieszkania, które są zarezerwowane lub niedostępne, co może być oznaczone statusem 1. To naprawdę dobra praktyka, bo pozwala na lepsze zarządzanie danymi i na utrzymanie porządku w bazie. A wiesz, co jeszcze? Zawsze warto zrobić kopię zapasową danych przed masowym usuwaniem, żeby nie stracić czegoś ważnego.

Pytanie 39

Które z poniższych stwierdzeń odnosi się prawidłowo do grafiki rastrowej?

A. Grafika rastrowa nie jest zapisana w formacie WMF (ang. Windows Metafile Format - format metaplików w Windows)
B. Jest to forma przedstawienia obrazu za pomocą siatki pikseli, które są odpowiednio kolorowane w układzie pionowo-poziomym na monitorze, drukarce lub innym urządzeniu wyjściowym
C. W trakcie procesu skalowania, jakość obrazu nie ulega zmianie
D. Obraz zapisywany jest w postaci figur geometrycznych zorganizowanych w układzie współrzędnych
Grafika rastrowa to technika reprezentacji obrazów, w której obraz składa się z siatki pikseli. Każdy piksel ma przypisany kolor, co pozwala na precyzyjne odwzorowanie detali i kolorystyki. Taki sposób przedstawienia obrazu znajduje zastosowanie w grafice komputerowej, fotografii cyfrowej oraz w druku. W praktyce, obrazy rastrowe są powszechnie wykorzystywane w programach graficznych, takich jak Adobe Photoshop czy GIMP, gdzie edytuje się poszczególne piksele. Publikacje internetowe, jak także różnorodne formy marketingu wizualnego, opierają się na grafice rastrowej, ponieważ umożliwia ona tworzenie złożonych i bogatych w szczegóły obrazów. Ważnym aspektem grafiki rastrowej jest rozdzielczość, która określa ilość pikseli w obrazie; im wyższa rozdzielczość, tym większa jakość. Wydruki, które zyskują na jakości dzięki zastosowaniu technologii rastrowej, są zgodne z najlepszymi praktykami odnośnie do standardów drukarskich, co umożliwia osiągnięcie wysokiej jakości wydruków. Zrozumienie grafiki rastrowej jest kluczowe dla każdego, kto interesuje się tworzeniem i edytowaniem obrazów w kontekście cyfrowym.

Pytanie 40

Wskaż poprawne stwierdzenie dotyczące przedstawionego kodu HTML.
<video width="640" height="480" controls>
<source src="animacja.mp4" type="video/mp4">
</video>

A. Lokalizacja pliku jest nieprawidłowa, brak w niej ścieżki bezwzględnej.
B. Użytkownik nie będzie miał możliwości kontrolowania odtwarzania wideo.
C. Plik animacja.mp4 powinien mieć rozdzielczość 640x480 pikseli, aby był odtwarzany.
D. Kod może nie działać w przeglądarkach, które nie obsługują HTML5.
Kod HTML przedstawiony w pytaniu wykorzystuje znacznik &lt;video&gt;, który jest elementem HTML5 pozwalającym na osadzanie filmów w dokumentach internetowych. W kontekście poprawnej odpowiedzi, kluczowym jest zrozumienie, że przeglądarki muszą obsługiwać HTML5, aby mogły w pełni funkcjonować z tym kodem. W przypadku starszych przeglądarek, które nie wspierają HTML5, element &lt;video&gt; może nie być wyświetlany lub nie będzie działał prawidłowo. Dlatego istotne jest, aby deweloperzy testowali swoje aplikacje w różnych środowiskach oraz aby korzystali z odpowiednich polyfilli dla starszych przeglądarek, które mogą poprawić ich funkcjonalność. Przykładowo, użycie biblioteki JavaScript takiej jak Video.js może pomóc w zapewnieniu wsparcia dla elementów wideo w szerszym zakresie przeglądarek. Dbałość o kompatybilność z różnymi wersjami przeglądarek to nie tylko kwestia estetyki, ale również użyteczności i dostępności aplikacji internetowych.