Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 20:54
  • Data zakończenia: 8 czerwca 2026 21:19

Egzamin niezdany

Wynik: 18/40 punktów (45,0%)

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 skrypcie JavaScript deklaracja zmiennych ma miejsce

A. w chwili pierwszego użycia zmiennej
B. wyłącznie na początku skryptu
C. zawsze z poprzedzającym nazwą znakiem $
D. tylko gdy określimy typ zmiennej oraz jej nazwę
Wybór błędnych odpowiedzi wynika z nieporozumienia dotyczącego zasad deklaracji zmiennych w JavaScript. Wiele osób ma tendencję do myślenia, że zmienne muszą być deklarowane na początku skryptu, co jest niezgodne z elastycznością, jaką oferuje ten język. Deklaracja tylko na początku skryptu ogranicza kreatywność i elastyczność programisty, ponieważ w praktyce można tworzyć zmienne w dowolnym momencie, w zależności od logiki programu. Innym błędnym przekonaniem jest konieczność podawania typu zmiennej przed jej nazwą. W przeciwieństwie do języków silnie typowanych, takich jak Java czy C#, JavaScript jest językiem słabo typowanym, co oznacza, że typ zmiennej jest określany dynamicznie w momencie przypisania wartości. Przykładowo, można zdefiniować zmienną jako liczbę, a następnie przypisać do niej wartość typu tekstowego bez żadnych problemów. Kolejną mylną zasadą jest stwierdzenie, że każda zmienna musi zaczynać się od znaku $. W rzeczywistości, znaki te (jak $ i _) są dozwolone jako pierwsze znaki identyfikatorów, ale nie są wymagane. Takie nieporozumienia mogą prowadzić do nieefektywnego pisania kodu oraz wprowadzania niezamierzonych błędów. Zrozumienie tych zasad jest kluczowe dla prawidłowego korzystania z JavaScript, co pozwala na tworzenie lepszych, bardziej efektywnych aplikacji oraz unikanie typowych błędów i pułapek w programowaniu.

Pytanie 2

Rezultatem realizacji zaprezentowanego kodu PHP jest wyświetlenie wartości

Ilustracja do pytania
A. 136
B. 14
C. 147
D. 47
W pytaniu testowym dotyczącym przedstawionego kodu PHP niektóre odpowiedzi mogą wydawać się intuicyjnie poprawne jednak takie podejście często prowadzi do błędów. Kod PHP wykorzystuje pętlę for która jest formą kontrolowanej iteracji. Rozpoczyna się ona od ustalenia pierwszej wartości zmiennej kontrolnej $i na 1 a pętla kontynuuje swoją pracę tak długo jak długo warunek $i <= 7 jest spełniony. Każdorazowo $i zwiększa się o 3. Niewłaściwe zrozumienie tego mechanizmu może prowadzić do niepoprawnych estymacji wyniku zwłaszcza gdy nie analizuje się kolejnych wyrazów ciągu. Pierwsza wartość to 1 następnie 4 i kończy się na 7. Częstym błędem jest przeoczenie faktu że $i zwiększa się o 3 w każdej iteracji co może skutkować błędnym założeniem że pętla iteruje po wszystkich liczbach od 1 do 7 bezpośrednio. Innym częstym błędem jest błędne odczytanie wyników jako sumy wartości co wynika z niepełnej interpretacji działania funkcji print w kontekście pętli. Warto podkreślić że język PHP w kontekście iteracji wymaga szczególnej uwagi w interpretacji warunków sterujących co jest kluczowe dla prawidłowego działania aplikacji w środowisku produkcyjnym. Unikanie tych błędów wymaga zrozumienia podstawowych zasad działania pętli i dokładnego śledzenia logiki programu co jest esencją programowania proceduralnego i imperatywnego w PHP. To podejście zapobiega prostym błędom logicznym które mogą prowadzić do nieoczekiwanych rezultatów w bardziej złożonych aplikacjach webowych i skryptach.

Pytanie 3

Dodanie ograniczenia klucza obcego w taki sposób, aby kolumna Klasy_id z tabeli Uczniowie była powiązana z kolumną id w tabeli Klasy zostanie wykonane przy użyciu polecenia

Ilustracja do pytania
A. ALTER TABLE Uczniowie DROP FOREIGN KEY FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
B. ALTER TABLE Uczniowie DROP CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
C. ALTER TABLE Uczniowie ADD FOREIGN KEY FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
D. ALTER TABLE Uczniowie ADD CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
Poprawnie wskazana składnia polecenia `ALTER TABLE Uczniowie ADD CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);` dokładnie odpowiada temu, co chcemy osiągnąć: dodać ograniczenie klucza obcego do już istniejącej tabeli. W SQL (np. w standardowym podejściu stosowanym w SQL Server, Oracle, wielu innych systemach) dodawanie klucza obcego odbywa się właśnie przez `ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ... REFERENCES ...`. Najpierw wskazujemy modyfikowaną tabelę (`Uczniowie`), potem nazwę nowego ograniczenia (`FKKlasy`), następnie kolumnę w tabeli podrzędnej (`Klasy_id`), a na końcu tabelę oraz kolumnę, do której się odwołujemy (`Klasy(id)`). Dzięki temu silnik bazy danych wie, że każda wartość w `Uczniowie.Klasy_id` musi mieć odpowiadający rekord w `Klasy.id`. To jest właśnie istota referencyjnej integralności danych. W praktyce takie powiązanie uniemożliwia np. dopisanie ucznia do nieistniejącej klasy albo usunięcie klasy, do której nadal przypisani są uczniowie (chyba że jawnie zdefiniujemy `ON DELETE CASCADE` czy inne zachowanie). Moim zdaniem warto też zwracać uwagę na nazewnictwo: prefiks `FK` w nazwie ograniczenia (`FKKlasy`) to dobra praktyka, bo od razu widać, że to klucz obcy, a nie np. unikalny indeks. W większych projektach przyjęcie spójnej konwencji, typu `FK_Uczniowie_Klasy`, bardzo ułatwia debugowanie błędów i analizę schematu. W codziennej pracy z bazami danych takie polecenie wykorzystuje się często po wczytaniu danych testowych albo po przebudowie tabel, gdy chcemy najpierw stworzyć strukturę bez ograniczeń, a potem krok po kroku dokładać klucze główne i obce. Warto też pamiętać, że przed dodaniem klucza obcego kolumna `Klasy_id` powinna mieć ten sam lub kompatybilny typ co `Klasy.id` (np. oba `INT`) i nie może zawierać wartości, które nie istnieją w tabeli `Klasy`, bo wtedy polecenie zakończy się błędem i klucz obcy nie zostanie utworzony.

Pytanie 4

Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod

A. CHANGE TABLE klienci MODIFY imie CHAR(30);
B. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
C. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
D. ALTER TABLE klienci CHANGE imie TEXT;
Odpowiedź ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30) jest poprawna, ponieważ w SQL polecenie ALTER TABLE służy do modyfikacji struktury istniejącej tabeli. W tym przypadku zmieniamy długość pola 'imie' w tabeli 'klienci'. Typ danych VARCHAR (zmienna długość) jest odpowiedni dla pól, które mogą przechowywać tekst o różnej długości, a określenie 30 oznacza, że maksymalna długość tego pola będzie wynosić 30 znaków. Używanie VARCHAR zamiast CHAR jest dobrą praktyką w przypadku, gdy długość danych jest zmienna, co pozwala na oszczędność miejsca w bazie danych. Przykładowo, jeśli tabela przechowuje imiona, które w większości będą krótsze niż 30 znaków, zastosowanie VARCHAR skutkuje mniejszym zużyciem miejsca w porównaniu do CHAR, który zawsze rezerwuje tę samą ilość miejsca. Warto również pamiętać, że przy modyfikowaniu tabeli w SQL należy zachować ostrożność, aby uniknąć utraty danych, szczególnie jeśli zmieniamy typ danych lub długość pola już zawierającego dane.

Pytanie 5

Jednym z rodzajów testów jednostkowych jest badanie ścieżek, które polega na

A. sprawdzaniu wartości granicznych zbioru danych
B. analizie obiektów pod kątem inicjalizacji oraz uwalniania pamięci
C. ustaleniu punktu startowego i końcowego oraz analizie możliwych tras pomiędzy tymi punktami
D. stworzeniu kilku zbiorów danych o analogicznym sposobie przetwarzania i wykorzystaniu ich do przeprowadzenia testu
Istnieje wiele podejść do testowania jednostkowego, jednak nie każde z nich odnosi się do analizy ścieżek. Testowanie wartości brzegowych, które polega na sprawdzaniu skrajnych wartości danych wejściowych, jest istotnym procesem, ale nie jest to równoznaczne z analizą ścieżek. Wartości brzegowe koncentrują się na ekstremalnych przypadkach, a nie na logicznych ścieżkach, które kod może przyjąć, co sprawia, że jest to inne podejście do zapewnienia jakości oprogramowania. Kolejnym wynikiem nieporozumienia w kontekście analizy ścieżek jest testowanie obiektów pod kątem inicjacji i zwolnienia pamięci. To zagadnienie dotyczy zarządzania pamięcią, co jest innym aspektem testowania. Ważne jest, aby pamiętać, że analiza ścieżek koncentruje się na przepływie sterowania w programie, a nie na zarządzaniu pamięcią, które jest kluczowe, ale w zupełnie innym kontekście. Wreszcie, tworzenie zbiorów danych o podobnym sposobie przetwarzania i ich użycie do testów to technika, która również nie odnosi się bezpośrednio do analizy ścieżek, lecz do testowania danych. Problem z tym podejściem polega na tym, że niekoniecznie odzwierciedla ono złożoność logiki aplikacji i może prowadzić do pominięcia krytycznych ścieżek w kodzie. Zrozumienie różnicy pomiędzy tymi podejściami jest kluczowe dla skutecznego testowania oprogramowania.

Pytanie 6

Podaj zapytanie SQL, które tworzy użytkownika sekretarka na localhost z hasłem zaq123?

A. CREATE USER `sekretarka`@`localhost` IDENTIFY BY `zaq123`;
B. CREATE USER `sekretarka`@`localhost` IDENTIFIED BY 'zaq123';
C. CREATE USER `sekretarka`@`localhost` IDENTIFY "zaq123";
D. CREATE USER 'sekretarka'@'localhost' IDENTIFIED `zaq123`;
W analizowanych odpowiedziach można dostrzec kilka kluczowych błędów związanych z zarządzaniem użytkownikami w MySQL. Przykładowo, odpowiedź sugerująca użycie słowa kluczowego 'IDENTIFY' zamiast 'IDENTIFIED' jest niewłaściwa, ponieważ w kontekście MySQL nie istnieje tego typu polecenie. Takie nieprawidłowe zrozumienie składni SQL może prowadzić do nieudanych prób tworzenia użytkowników, co z kolei skutkuje frustracją i czasem straconym na debugowanie. Ponadto, odpowiedzi, które używają backticków (`) do oznaczania hasła, są niepoprawne. W SQL backticki służą do oznaczania identyfikatorów, takich jak nazwy tabel czy kolumn, a nie do łańcuchów tekstowych. Oznaczanie haseł przy użyciu backticków może prowadzić do nieprzewidywalnych błędów podczas wykonywania zapytań. Kolejnym problemem jest brak właściwego zrozumienia konwencji dotyczących użycia pojedynczych lub podwójnych cudzysłowów do definiowania łańcuchów. Użycie cudzysłowów zamiast apostrofów prowadzi do błędów składniowych. W kontekście bezpieczeństwa, każda nieprawidłowa próba utworzenia użytkownika może zagrażać integralności danych, dlatego ważne jest, aby korzystać z poprawnych praktyk, jak również ze zrozumienia zasad dotyczących zarządzania użytkownikami w systemie baz danych.

Pytanie 7

Podczas tworzenia witryny internetowej zastosowano kod definiujący jej wygląd. Jaką szerokość przeznaczono na zawartość strony?

Ilustracja do pytania
A. 640 px
B. 600 px
C. 2 px
D. 560 px
Definiowanie szerokości elementu w CSS jest kluczowym aspektem projektowania responsywnych stron internetowych. W przedstawionym kodzie CSS zauważamy definicję width 560px która określa szerokość elementu body. Ta wartość bezpośrednio przekłada się na dostępną przestrzeń dla treści wewnętrznej tego elementu. W praktyce definiowanie szerokości w pikselach pozwala na precyzyjne kontrolowanie układu strony co jest szczególnie istotne w kontekście projektowania interfejsów użytkownika. Takie podejście jest jednak najczęściej stosowane w środowiskach gdzie mamy pełną kontrolę nad urządzeniami wyświetlającymi stronę. W kontekście nowoczesnych praktyk często stosuje się jednostki względne lub techniki takie jak media queries aby zapewnić lepszą responsywność i elastyczność. Ważne jest także rozważanie dodatkowych aspektów takich jak marginesy i wypełnienia które mogą wpływać na rzeczywistą ilość dostępnej przestrzeni na treść. Właściwe zrozumienie i zastosowanie szerokości jest kluczowe dla tworzenia estetycznych i funkcjonalnych układów strony internetowej.

Pytanie 8

Zachowanie integralności encji w bazie danych będzie miało miejsce, jeżeli między innymi

A. każdej kolumnie przypisany zostanie typ danych
B. każdy klucz główny będzie miał odpowiadający mu klucz obcy w innej tabeli
C. dla każdej tabeli zostanie ustanowiony klucz główny
D. klucz główny zawsze będzie liczbą całkowitą
Wszystkie zaproponowane odpowiedzi mogą wydawać się związane z tematyką integralności encji, jednak nie każda z nich rzeczywiście przyczynia się do jej zachowania w kontekście baz danych. Użycie klucza głównego jako liczby całkowitej nie jest kryterium zapewniającym integralność; klucz główny może być również tekstowy lub złożony, o ile spełnia warunki unikalności i braku wartości NULL. Przypisanie typu danych dla każdej kolumny jest ważne dla sprawności operacji na danych, ale samo w sobie nie zapewnia integralności encji, ponieważ nie kontroluje unikalności rekordów. Kolejnym błędnym podejściem jest twierdzenie, że każdy klucz główny musi mieć odpowiadający klucz obcy w innej tabeli. Klucz obcy jest używany do ustanowienia relacji między tabelami, ale nie jest wymagany do zapewnienia integralności encji w pojedynczej tabeli. Klucz główny w jednej tabeli działa niezależnie od kluczy obcych w innych tabelach; jego główną rolą jest zapewnienie, że każdy rekord w tabeli jest unikalny. W praktyce, brak zrozumienia tych koncepcji może prowadzić do projektowania baz danych, które są nieefektywne i trudne do zarządzania, co w dłuższej perspektywie wpływa na jakość danych i ich dostępność.

Pytanie 9

Funkcja mysqli_num_rows() w PHP może być używana po wcześniejszym wykonaniu zapytania

A. UPDATE
B. DELETE
C. INSERT
D. SELECT
Wybór odpowiedzi, która wskazuje na kwerendy INSERT, DELETE lub UPDATE, jest związany z nieporozumieniem dotyczących funkcji mysqli_num_rows(). Te typy kwerend mają na celu modyfikację danych w bazie, a nie ich pobieranie. Kwerenda INSERT służy do dodawania nowych rekordów, DELETE do usuwania istniejących, a UPDATE do zmiany już przechowywanych danych. Żadna z tych operacji nie generuje zbioru wyników, który mógłby być analizowany pod kątem liczby zwróconych wierszy. Mówiąc prościej, mysqli_num_rows() nie ma zastosowania w kontekście modyfikacji danych, ponieważ funkcja ta jest zaprojektowana do pracy z wynikami zapytań SELECT. Typowym błędem myślowym jest założenie, że każda kwerenda zwraca wynik, co prowadzi do mylnego wniosku, że można używać mysqli_num_rows() w przypadku operacji INSERT, DELETE czy UPDATE. Aby zrozumieć, jak prawidłowo korzystać z funkcji, warto zapoznać się z dokumentacją PHP oraz najlepszymi praktykami pracy z bazami danych, które podkreślają znaczenie stosowania odpowiednich funkcji w odpowiednich kontekstach. Skupienie się na tym, jakie zapytania generują wyniki, a jakie je modyfikują, jest kluczowe dla każdego programisty pracującego z bazami danych.

Pytanie 10

Elementarna animacja może być zapisana w formacie

A. GIF
B. TIFF
C. BMP
D. PSD
Format GIF (Graphics Interchange Format) jest powszechnie stosowany do tworzenia prostych animacji ze względu na swoją zdolność do kompresji obrazów i obsługi przez większość przeglądarek internetowych. GIF pozwala na zapisanie sekwencji obrazów w jednej pliku, co umożliwia ich wyświetlanie jako animacji. Standard GIF obsługuje maksymalnie 256 kolorów z palety, co czyni go idealnym do prostych grafik, takich jak ikony czy animacje internetowe. Dzięki metodzie kompresji Lempel-Ziv-Welch (LZW) możliwe jest zmniejszenie rozmiaru pliku bez utraty jakości, co jest kluczowe w kontekście transferu danych przez sieć. Przykłady zastosowania formatu GIF obejmują animowane banery reklamowe, emotikony oraz krótkie klipy wideo w formie GIF, które stały się popularne na platformach społecznościowych. Ponadto GIF wspiera przezroczystość i animacje w cyklu, co podnosi jego użyteczność w wielu aplikacjach multimedialnych. Z tego powodu GIF jest formatem, który oferuje zarówno funkcjonalność, jak i kompatybilność, co czyni go najlepszym wyborem dla prostych animacji.

Pytanie 11

Wskaż wynik wykonania skryptu napisanego w języku PHP

<?php
$tablica = array(10 => "Perl", 14 => "PHP", 20 => "Python", 22 => "Pike");
asort($tablica);
print("<pre>");
print_r($tablica);
print("</pre>");
?>
A
Array
(
    [14] => PHP
    [10] => Perl
    [22] => Pike
    [20] => Python
)
B
Array
(
    [0] => PHP
    [1] => Perl
    [2] => Pike
    [3] => Python
)
C
Array
(
    [0] => Python
    [1] => Pike
    [2] => Perl
    [3] => PHP
)
D
Array
(
    [10] => Perl
    [14] => PHP
    [20] => Python
    [22] => Pike
)
A. B.
B. D.
C. A.
D. C.
Widzę, że Twoja odpowiedź nie do końca trafiła w sedno. Wygląda na to, że masz jakieś nieporozumienia z tym skryptem PHP i funkcją asort(). Pamiętaj, że ten skrypt tworzy tablicę asocjacyjną z czterema elementami i potem sortuje je funkcją asort(). Ta funkcja działa na wartościach i zachowuje klucze, więc po sortowaniu powinno być: `[14] => PHP`, `[10] => Perl`, `[22] => Pike`, `[20] => Python`. Jak masz inną kolejność, to może sugerować, że coś poszło nie tak z sortowaniem. Nie zapominaj, że w PHP jest sporo funkcji sortujących, każda z nich ma swoje miejsce i zastosowanie, więc warto to poćwiczyć, żeby lepiej zrozumieć temat.

Pytanie 12

Którego atrybutu należy użyć w miejscu trzech kropek w znaczniku HTML5 <blockquote>, aby zdefiniować źródło cytatu?

<blockquote ...="https://pl.wikipedia.org">
Pokojowa Nagroda Nobla jest przyznawana kandydatom, którzy wykonali największą lub najlepszą
pracę na rzecz braterstwa między narodami
</blockquote>
A. alt
B. cite
C. src
D. href
Niestety, twoja odpowiedź nie jest poprawna. Atrybut 'cite' w znaczniku <blockquote> jest używany do definiowania źródła cytatu, a nie 'alt', 'src' ani 'href'. Atrybut 'alt' jest używany w obrazach jako tekst alternatywny, który jest wyświetlany, gdy obraz nie może być ładowany lub jest odczytywany przez czytniki ekranowe. Z kolei 'src' jest atrybutem, który określa ścieżkę do obrazu lub innego zasobu multimedialnego. 'href' jest używany w znacznikach 'a' i 'link' do określenia URL strony lub innego zasobu, do którego prowadzi link. Pomyłka ta może wynikać z braku zrozumienia różnych zastosowań atrybutów w HTML. Pamiętaj, że każdy atrybut ma swoje specyficzne zastosowanie i nie są one zamienne.

Pytanie 13

W formularzu dane z pola input o typie number zostały przypisane do zmiennej a, a następnie przetwarzane w skrypcie JavaScript w następujący sposób:

var x = parseFloat(a);
Jaki typ będzie miała zmienna x?
A. napisowego
B. NaN
C. liczbowego, całkowitego
D. zmiennoprzecinkowego
Zmienna x będzie typu zmiennoprzecinkowego, ponieważ funkcja parseFloat() konwertuje wartość przekazaną jej jako argument na liczbę zmiennoprzecinkową. W przypadku, gdy zmienna a zawiera poprawną reprezentację liczby, np. '10.5' lub '3.14', parseFloat() zwróci odpowiednią wartość zmiennoprzecinkową. Dobrą praktyką jest zapewnienie, że wartość w a jest odpowiednio walidowana przed konwersją, aby uniknąć błędów i niepożądanych wyników. Zmiennoprzecinkowe dane mogą być szczególnie użyteczne w aplikacjach finansowych, graficznych czy inżynieryjnych, gdzie precyzyjne obliczenia są kluczowe. Ponadto, JavaScript automatycznie przekształca liczby całkowite do postaci zmiennoprzecinkowej, więc nawet jeśli a zawiera liczbę całkowitą, wynik w zmiennej x również będzie typem zmiennoprzecinkowym. Znajomość tego zachowania jest istotna dla programistów, aby skutecznie obsługiwać różnorodne operacje numeryczne.

Pytanie 14

W SQL, aby dodać kolumnę rozmiar typu znakowego o maksymalnej długości 20 znaków do tabeli Towar, należy wykonać następujące polecenie

A. ALTER TABLE Towar DROP COLUMN rozmiar varchar(20)
B. ALTER TABLE Towar ALTER COLUMN rozmiar varchar(20)
C. ALTER TABLE Towar ADD rozmiar varchar(20)
D. ALTER TABLE Towar CREATE COLUMN rozmiar varchar(20)
Aby dodać nową kolumnę do istniejącej tabeli w bazie danych SQL, właściwe jest użycie polecenia ALTER TABLE z opcją ADD. W tym przypadku, aby dodać kolumnę 'rozmiar' typu varchar o maksymalnej długości 20 znaków do tabeli 'Towar', należy napisać: ALTER TABLE Towar ADD rozmiar varchar(20). Typ danych varchar (zmienny znak) jest często stosowany do przechowywania tekstu o zmiennej długości, co czyni go idealnym do przechowywania informacji takich jak rozmiary, nazwy czy opisy. Zachowanie maksymalnej długości kolumny do 20 znaków zapewnia, że żadne dane nie przekroczą ustalonego limitu, co z kolei może pomóc w utrzymaniu integralności danych. Dodatkowo, standard SQL definiuje ALTER TABLE jako polecenie do modyfikacji istniejących obiektów w bazie danych, co czyni go kluczowym narzędziem dla administratorów baz danych. Przykładowo, po dodaniu kolumny można zaktualizować istniejące rekordy, aby wprowadzić odpowiednie dane do nowej kolumny. Warto również zaznaczyć, że różne systemy zarządzania bazami danych (DBMS) mogą mieć swoje specyficzne rozszerzenia, ale powyższa składnia jest zgodna z SQL ANSI.

Pytanie 15

Jakie właściwości języka CSS mogą mieć wartości: underline, overline, line-through?

A. text-style
B. text-decoration
C. font-style
D. font-weight
Odpowiedź 'text-decoration' jest poprawna, ponieważ właściwość ta jest używana w CSS do stylizacji tekstu, a jej wartości mogą obejmować 'underline', 'overline' i 'line-through'. Właściwość 'text-decoration' umożliwia dodawanie dekoracji do tekstu, co jest szczególnie przydatne w przypadku podkreślania, przekreślania tekstu czy dodawania linii nad tekstem. Przykład zastosowania: aby podkreślić tekst, można użyć reguły CSS: `p { text-decoration: underline; }`. Dzięki temu wszystkie akapity na stronie będą miały podkreślony tekst. Warto również zauważyć, że w ramach standardów CSS3, właściwość ta zyskała dodatkowe wartości, takie jak 'none' czy 'blink', co jeszcze bardziej rozszerza jej funkcjonalność. W praktyce, 'text-decoration' jest często stosowane w projektach webowych, aby poprawić czytelność i estetykę treści. Dobrą praktyką jest jednak używanie tej właściwości w umiarkowany sposób, aby nie przytłoczyć użytkownika zbyt wieloma dekoracjami, co mogłoby wpłynąć na ogólną użyteczność strony.

Pytanie 16

Które z poniższych twierdzeń najlepiej opisuje klasę Owoc zdefiniowaną w PHP i przedstawioną w kodzie?

class Owoc {
  public $nazwa;
  private $kolor;
  function set_nazwa($nazwa) {
    $this->nazwa = $nazwa;
  }
}
A. Zawiera dwa pola oraz jedną metodę, pole kolor ma widoczność ograniczoną jedynie do metod klasy
B. Zawiera jedno pole oraz dwie metody, przy czym jedna z metod ma zakres prywatny
C. Zawiera dwa pola oraz jeden konstruktor, oba pola mają widoczność ograniczoną tylko do metod klasy
D. Zawiera dwa pola oraz jedną metodę, pole nazwa ma widoczność ograniczoną tylko do metod klasy
Klasa Owoc w języku PHP jest zdefiniowana z dwoma polami: publicznym $nazwa i prywatnym $kolor. Odpowiedź wskazująca, że pole kolor ma ograniczony dostęp tylko do metod klasy, jest prawidłowa, ponieważ zastosowanie modyfikatora private oznacza, że pole to jest dostępne wyłącznie wewnątrz klasy. Jest to dobra praktyka projektowania, gdzie prywatne pola chronią integralność danych, umożliwiając dostęp i modyfikację tylko za pośrednictwem metod klasy. W tym przypadku, metoda set_nazwa pozwala na ustawienie wartości dla pola $nazwa, ale nie ma bezpośredniej metody dla $kolor, co jest celową strategią, aby zapewnić kontrolę nad dostępem do tego pola. W praktyce, pole $kolor mogłoby być wykorzystywane do przechowywania informacji, które nie powinny być zmieniane zewnętrznie, a jedynie konfigurowane wewnątrz klasy lub podczas jej inicjalizacji. Taki układ sprzyja enkapsulacji, jednym z filarów programowania obiektowego, promując bezpieczeństwo danych i modularność kodu. W projektach komercyjnych zaleca się również dodanie metod get i set dla prywatnych zmiennych, aby zachować elastyczność i kontrolę nad danymi.

Pytanie 17

Jakim słowem kluczowym można zestawić wyniki dwóch zapytań SELECT, które operują na różnych tabelach, aby utworzyć jeden zbiór danych?

A. DISTINCT
B. JOIN
C. AS
D. UNION
Odpowiedzi takie jak JOIN, DISTINCT i AS są niepoprawne w kontekście łączenia wyników kwerend SELECT z różnych tabel w jeden zbiór. JOIN jest używane do łączenia rekordów z dwóch tabel na podstawie powiązania między nimi, co oznacza, że wymaga istnienia relacji między danymi, co nie jest przypadkiem w każdym scenariuszu, w którym chcemy połączyć wyniki. INCLUDES, które może być naturalnym skojarzeniem z łączeniem danych, nie pasuje do sytuacji, gdy kwerendy SELECT są niezależne od siebie. DISTINCT natomiast jest używane do eliminowania duplikatów z wyników jednej kwerendy, ale nie służy do łączenia wyników z różnych źródeł. Wreszcie, AS jest używane głównie do nadawania aliasów kolumnom lub tabelom, co nie ma zastosowania w kontekście łączenia wyników kwerend. Typowym błędem myślowym jest zakładanie, że każde słowo kluczowe związane z SELECT może być użyte do łączenia wyników, podczas gdy każde z nich ma swoje specyficzne zastosowanie i ograniczenia. Zrozumienie tych różnic jest kluczowe dla prawidłowego stosowania SQL w praktyce i tworzenia efektywnych zapytań, które zwracają oczekiwane wyniki.

Pytanie 18

W języku CSS zapis

p::first-line {font-size: 150%;}
zastosowany na stronie z wieloma paragrafami, z których każdy zawiera kilka linii, spowoduje, że
A. pierwsza linia każdego paragrafu będzie miała mniejszą czcionkę niż pozostałe linie
B. pierwszy paragraf na stronie w całości będzie miał powiększoną czcionkę
C. cały tekst paragrafu zostanie powiększony o 150%
D. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
Odpowiedź jest trafna, bo selektor CSS 'p::first-line' służy do stylizowania wyłącznie pierwszej linii każdego paragrafu. Kiedy przypisujesz styl 'font-size: 150%', to znaczy, że czcionka tej pierwszej linii będzie większa o 50% od standardowego rozmiaru ustalonego w CSS. To dobra praktyka w web designie, bo pomaga w czytelności i nadawaniu hierarchii informacjom. Na przykład, fajnie jest wyróżnić rozpoczęcie tekstu albo zaakcentować ważne dane. Pamiętaj tylko, że efekt będzie widoczny tylko, gdy tekst ma więcej niż jedną linię, bo w przeciwnym razie powiększenie się nie ujawni. Dodatkowo, korzystanie z pseudo-elementów, jak '::first-line', to coś, co jest w standardach CSS i jest naprawdę cenione w branży.

Pytanie 19

Przedstawiony błąd, który pojawił się podczas interpretacji kodu PHP, może być spowodowany

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\1\biuro.php on line 38
A. brakiem bazy danych o nazwie podanej w funkcji mysqli_connect
B. próbą odwołania do nieistniejącego elementu tablicy
C. niepowodzeniem w wykonaniu kwerendy na bazie danych
D. odwołaniem do niezadeklarowanej zmiennej
Próba odwołania się do nieistniejącego elementu tablicy w języku PHP jest częstym źródłem błędów. Komunikat błędu wskazuje, że program próbował uzyskać dostęp do wartości w tablicy, która była typu null, czyli nie istniała. Dzieje się tak zazwyczaj, gdy indeks lub klucz, do którego próbujemy się odwołać, nie został wcześniej zainicjalizowany lub zawiera pustą wartość. Aby uniknąć takich błędów, dobrą praktyką jest zawsze sprawdzanie, czy dany indeks istnieje w tablicy przed próbą jego użycia. Można to zrobić za pomocą funkcji isset() lub array_key_exists(). Przykład poprawnego podejścia: jeżeli chcemy uzyskać dostęp do elementu tablicy $tablica['klucz'], najpierw możemy sprawdzić if(isset($tablica['klucz'])). Taka weryfikacja pozwala na unikanie błędów wykonawczych i zapewnia większą stabilność i niezawodność kodu. W kontekście większych aplikacji, gdzie dane są często przetwarzane dynamicznie, takie podejście znacząco zwiększa odporność na błędy, co jest zgodne z dobrymi praktykami programistycznymi.

Pytanie 20

Znacznik <ins> w języku HTML jest używany do wskazania

A. tekstu, który został dodany
B. tekstu, który został usunięty
C. cytowanego fragmentu tekstu
D. tekstu o zmienionym formacie
Odpowiedzi dotyczące oznaczania cytowanego bloku tekstu, tekstu przeformatowanego oraz tekstu, który został usunięty, nie są poprawne w kontekście znacznika <ins>. Znacznik używany do cytowania tekstu to <blockquote>, który służy do wyodrębnienia dłuższych cytatów, zazwyczaj z innymi źródłami. Z kolei do oznaczania tekstu, który został usunięty, stosuje się znacznik <del>, który wskazuje na treść, która została usunięta z dokumentu, co jest sprzeczne z funkcją <ins>. Oznaczenie tekstu przeformatowanego nie ma związku z tagiem, ponieważ nie ma on bezpośredniego związku z formatowaniem; formatowanie tekstu odbywa się przy użyciu znaczników takich jak <strong> lub <em>, które nadają różne style wizualne, ale nie zmieniają semantyki tekstu. W związku z tym, wszystkie te niepoprawne odpowiedzi dotyczą różnych aspektów zarządzania treścią w HTML, ale nie są związane z oznaczaniem tekstu dodanego, co jest kluczowym zastosowaniem znacznika <ins>. Zrozumienie różnic między tymi znacznikami jest istotne, aby poprawnie stosować HTML w praktyce oraz zapewniać jasność i dostępność treści w sieci.

Pytanie 21

W przedstawionym kodzie PHP w miejscu kropek powinno zostać umieszczone polecenie:

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++)
{
  $wiersz = ....................................;
  echo "$wiersz[0] $wiersz[1]";
}
A. mysqli_free_result($zapytanie);
B. mysqli_num_fields($zapytanie);
C. mysqli_query($zapytanie);
D. mysqli_fetch_row($zapytanie);
W analizowanym kodzie PHP, nieprawidłowe opcje wskazują na brak zrozumienia mechanizmu działania zestawów wyników w kontekście interakcji z bazą danych. Użycie mysqli_free_result($zapytanie) nie jest właściwe w tym miejscu, ponieważ ta funkcja służy do zwolnienia pamięci zajmowanej przez zestaw wyników. Powinna być wywoływana po zakończeniu wszystkich operacji na pobranych danych, a nie podczas ich odczytu. Jeśli chodzi o mysqli_num_fields($zapytanie), jest to funkcja, która zwraca liczbę kolumn w zestawie wyników, ale nie dostarcza danych wierszy, co czyni ją nieprzydatną w kontekście iteracji przez wyniki. Z kolei mysqli_query($zapytanie) jest błędne, ponieważ ta funkcja służy do wykonywania zapytań, a nie do pobierania ich wyników. W odpowiedzi na to, kluczowym błędem myślowym jest pomylenie funkcji służących do wykonywania zapytań z tymi, które służą do odczytu danych. Właściwe zrozumienie różnic między tymi funkcjami jest niezbędne do efektywnego zarządzania bazami danych w PHP. Zaleca się, aby programiści dokładnie zapoznali się z dokumentacją funkcji mysqli i ich zastosowaniami, aby unikać podobnych nieporozumień w przyszłości.

Pytanie 22

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy: ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Kraków"``` Wskaż zapytanie, które zwróci te same dane:

A. SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" OR miasto="Kraków"
B. SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING "Poznań" OR "Kraków"
C. SELECT nazwisko, imie FROM mieszkancy AS "Poznań" OR "Kraków"
D. SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN "Poznań" OR "Kraków"
Wybrana odpowiedź jest poprawna, ponieważ wykorzystuje operator logiczny OR do połączenia dwóch warunków w klauzuli WHERE. W wyniku tego zapytania zostaną zwrócone wszystkie rekordy z tabeli 'mieszkancy', gdzie miasto to 'Poznań' lub 'Kraków'. To podejście jest zgodne z zasadami SQL, gdzie operator OR umożliwia łączenie warunków, co jest powszechnie stosowane w praktyce. Warto zauważyć, że zapytanie z wykorzystaniem operatora UNION ALL, które było pierwotnie zdefiniowane, również łączy wyniki z dwóch zapytań, ale każdy SELECT działa osobno. Użycie OR w tym przypadku jest bardziej efektywne, ponieważ pozwala na jedno zapytanie, co może przyspieszyć wykonanie w porównaniu do kilku zapytań UNION. W praktycznych zastosowaniach, gdy mamy do czynienia z wieloma kryteriami, stosowanie operatorów logicznych jest kluczowe dla uzyskania precyzyjnych wyników.

Pytanie 23

Jakiego języka należy użyć do stworzenia aplikacji internetowej, która działa po stronie klienta?

A. Perl
B. PHP
C. JavaScript
D. Python
Perl jest językiem, który pierwotnie został zaprojektowany do przetwarzania tekstu i automatyzacji zadań systemowych, a jego zastosowanie w kontekście aplikacji internetowych (zwłaszcza po stronie klienta) jest ograniczone. Perl działa głównie po stronie serwera, gdzie jest używany do generowania dynamicznych treści, ale nie ma natywnej obsługi w przeglądarkach internetowych. PHP to język skryptowy zaprojektowany do tworzenia dynamicznych stron internetowych, jednak wykonuje kod po stronie serwera, co oznacza, że nie jest odpowiedni do realizacji zadań wymagających interakcji bezpośrednio w przeglądarkach użytkowników. Jego główną rolą jest komunikacja z bazami danych i generowanie HTML, który jest następnie wysyłany do klienta. Python z kolei, mimo że jest nowoczesnym i wszechstronnym językiem, również najczęściej wykonuje kod po stronie serwera, zwłaszcza w ramach frameworków takich jak Django czy Flask. Chociaż istnieją biblioteki takie jak Brython, które pozwalają na uruchamianie kodu Pythona w przeglądarkach, to nie są one powszechnie stosowane w produkcyjnych aplikacjach internetowych. Dlatego żaden z tych języków nie spełnia wymogu wykonywania aplikacji internetowej po stronie klienta, podczas gdy JavaScript pozostaje jedynym standardem w tej dziedzinie.

Pytanie 24

Podany kod źródłowy ma na celu pokazanie:

$liczba = 1;
while ($liczba != 0)
{
  $liczba = rand(0, 100);
  echo $liczba;
}
A. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
B. kolejne liczby od 1 do 100
C. wylosowane liczby od 1 do 99
D. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
Odpowiedź "losowe liczby od 0 do 100 tak długo, aż nie zostanie wylosowana wartość 0" jest poprawna, ponieważ kod źródłowy wykorzystuje funkcję rand(), która generuje losowe liczby z zadanego zakresu, w tym przypadku od 0 do 100. Pętla while działa w taki sposób, że kontynuuje swoje działanie, dopóki zmienna $liczba nie przyjmie wartości 0. Oznacza to, że wszystkie wylosowane liczby, niezależnie od tego, czy są to liczby parzyste, nieparzyste, czy wartości graniczne, będą wyświetlane na ekranie do momentu, aż wylosowana zostanie wartość 0, która przerwie działanie pętli. Przykładem zastosowania tego typu kodu może być generowanie próbki danych w celu testowania algorytmów lub symulacji. Praktyka ta jest zgodna z dobrymi standardami programowania, gdzie często wykorzystuje się losowe dane do różnych celów, takich jak testowanie, analizy statystyczne lub gry. Ponadto, rozumienie jak działa generowanie liczb losowych i kontrola pętli jest podstawową umiejętnością w programowaniu, która pomaga w rozwoju bardziej zaawansowanych aplikacji.

Pytanie 25

W tabeli o nazwie zadania znajduje się kolumna tekstowa status. Jakie zapytanie należy wykorzystać, aby usunąć te rekordy, w których status to ‘zamknięte’?

A. DELETE FROM zadania WHERE status = 'zamknięte';
B. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
C. DELETE FROM zadania;
D. TRUNCATE TABLE zadania;
Odpowiedź 'DELETE FROM zadania WHERE status = 'zamknięte';' jest poprawna, ponieważ ta kwerenda w sposób precyzyjny usuwa tylko te rekordy z tabeli 'zadania', które mają status 'zamknięte'. Użycie klauzuli WHERE jest kluczowe, ponieważ pozwala na ograniczenie operacji usunięcia do konkretnych wierszy w tabeli, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych. Należy unikać bezwarunkowego usuwania wszystkich rekordów, jak w przypadku kwerendy 'DELETE FROM zadania;', co mogłoby spowodować utratę danych, które są nadal potrzebne. Przykłady zastosowania tej kwerendy można znaleźć w wielu systemach zarządzania projektami, gdzie często musimy archiwizować lub usuwać zakończone zadania. Dodatkowo stosowanie klauzuli WHERE jest zgodne z zasadą minimalizacji zmian w bazie danych, co jest istotne dla zapewnienia integralności danych i umożliwienia ich późniejszej analizy.

Pytanie 26

Aby wykorzystać skrypt znajdujący się w pliku przyklad.js, konieczne jest połączenie go ze stroną przy użyciu kodu

A. <script src="przyklad.js"></script>
B. <link rel="script" href="przyklad.js">
C. <script>przyklad.js</script>
D. <script link="przyklad.js"></script>
Odpowiedź <script src="przyklad.js"></script> jest naprawdę na miejscu, bo użycie atrybutu 'src' w znaczniku <script> to taki standardowy sposób dołączania zewnętrznych skryptów JS do HTML-a. Atrybut 'src' mówi przeglądarce, gdzie znaleźć ten skrypt, więc może go załadować i wykonać. Dzięki temu, skrypt z pliku 'przyklad.js' wchodzi w interakcję ze stroną i może dodawać różne funkcje, jak na przykład reagowanie na działania użytkownika czy manipulowanie elementami na stronie. Pamiętaj, że najlepiej dołączać skrypty na końcu dokumentu, zaraz przed </body>, bo wtedy cała zawartość strony ładuje się najpierw. Warto też pomyśleć o atrybucie 'defer' lub 'async', żeby lepiej zoptymalizować ładowanie skryptów i nie blokować renderowania strony. Na przykład, <script src="przyklad.js" defer></script> pozwoli na asynchroniczne ładowanie, co z pewnością poprawia wydajność.

Pytanie 27

Jakie kodowanie w języku HTML pozwala na sformatowanie paragrafu dla tekstu

 Tekst może być zaznaczony albo istotny dla autora

należy użyć polecenia?
A. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny dla autora</p>
B. <p>Tekst może być <mark>zaznaczony albo <i>istotny</i> dla autora</mark></p>
C. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
D. <p>Tekst może być <mark>zaznaczony albo <em>istotny</em> dla autora</mark></p>
Wybrana odpowiedź jest poprawna, ponieważ stosuje prawidłowe znaczniki HTML do formatowania tekstu. Użycie <mark> dla słowa 'zaznaczony' wskazuje, że jest to istotna informacja, podczas gdy <em> dla słowa 'istotny' podkreśla jego znaczenie w kontekście treści. Zgodnie z W3C i HTML5, <mark> jest używany do oznaczania części tekstu, która jest wyróżniona w kontekście przeszukiwanym lub istotnym. Oznaczenie tekstu jako <em> nie tylko wskazuje na akcent, ale również ma znaczenie semantyczne, ponieważ może wpłynąć na sposób, w jaki czytniki ekranu interpretują treść, co jest kluczowe dla dostępności. Przykładem zastosowania może być strona internetowa, na której chcemy wyróżnić ważne informacje lub kluczowe definicje, co zwiększa czytelność i funkcjonalność przekazu. Poprawne użycie znaczników HTML jest zgodne z dobrymi praktykami tworzenia stron internetowych, co sprzyja lepszej nawigacji i zrozumieniu tekstu przez użytkowników.

Pytanie 28

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy: ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Kraków';``` Wskaź, które zapytanie zwróci te same dane.

A. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING 'Poznań' OR 'Kraków';```
B. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' OR miasto='Kraków';```
C. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN 'Poznań' OR 'Kraków';```
D. ```SELECT nazwisko, imie FROM mieszkancy AS 'Poznań' OR 'Kraków';```
Zapytanie SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' OR miasto='Kraków'; jest poprawne, ponieważ umożliwia uzyskanie danych mieszkańców, którzy znajdują się w jednym z dwóch zadanych miast. Użycie operatora 'OR' pozwala na połączenie dwóch warunków, co sprawia, że zapytanie zwróci mieszkańców zarówno z Poznania, jak i z Krakowa. Takie podejście jest zgodne z zasadami SQL i umożliwia elastyczne filtrowanie danych. Alternatywnie, zastosowanie operatora UNION ALL w pierwszym zapytaniu łączy wyniki z dwóch oddzielnych zapytań, co jest również poprawne, ale może być mniej wydajne w przypadku dużych zbiorów danych. Używając UNION ALL, zwracane są wszystkie wiersze, w tym duplikaty, natomiast w przypadku zapytania z OR, uzyskujemy wiersze spełniające przynajmniej jeden z warunków. Dobrą praktyką jest testowanie zapytań w rzeczywistej bazie danych, aby ocenić ich wydajność i poprawność. W kontekście standardów SQL, takie zapytania są zgodne z definicjami języka zapytań i są stosowane do przetwarzania danych w relacyjnych bazach danych.

Pytanie 29

Jaki rezultat uzyskamy po uruchomieniu załączonego skryptu?

<?php
class Owoc {
  function __construct() {     echo "test1";     }
  function __destruct() {     echo "test2";     }
}
$gruszka = new Owoc();
?>
A. Na ekranie pojawią się oba komunikaty: "test1" oraz "test2"
B. Pojawi się jedynie komunikat "test2"
C. Nie zostanie wyświetlony żaden komunikat
D. Pojawi się tylko komunikat "test1"
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 30

Tablica tab[] zawiera różne liczby całkowite. Jaką wartość przyjmie zmienna zm2 po wykonaniu podanego fragmentu kodu?

Ilustracja do pytania
A. Średnia arytmetyczna liczb z tablicy
B. Średnia geometryczna liczb od 0 do 9
C. Suma liczb od 1 do 10
D. Suma liczb z tablicy
Pozostałe odpowiedzi są błędne z kilku powodów. Pierwsza odpowiedź sugeruje, że zmienna zm2 przechowuje sumę liczb z tablicy. Jest to nieprawidłowe, ponieważ zm2 reprezentuje wynik pośredni, będący średnią arytmetyczną, gdyż końcowy wynik to zm1 podzielone przez 10. Suma liczb z tablicy znajduje się w zmiennej zm1 przed operacją dzielenia. Druga odpowiedź odnosi się do sumy liczb od 1 do 10, co jest mylnym wnioskiem, ponieważ pętla w kodzie iteruje przez elementy tablicy, a nie przez stałe wartości. Elementy tablicy mogą reprezentować jakiekolwiek liczby całkowite, a kod nie odnosi się do stałych wartości od 1 do 10. Ostatecznie, czwarta odpowiedź o średniej geometrycznej liczb od 0 do 9 również nie jest poprawna, ponieważ kod ani nie odnosi się do zakresu liczb od 0 do 9, ani też nie oblicza średniej geometrycznej, która wymagałaby mnożenia i pierwiastkowania, a nie dodawania i dzielenia. Typowym błędem jest mylenie różnych typów średnich, a także błędne założenia co do zakresu operacji na tablicy. W kontekście programowania, takie nieporozumienia mogą prowadzić do błędów w implementacji algorytmów analizy danych, dlatego ważne jest, aby precyzyjnie rozumieć, jakie operacje są wykonywane w danym fragmencie kodu i jak wpływają one na wynik końcowy. Znajomość różnic między średnimi (arytmetyczna, geometryczna) jest fundamentalna w analizach matematycznych i statystycznych.

Pytanie 31

Jakiego protokołu należy użyć do przesyłania plików witryny internetowej na serwer hostingowy?

A. SMTP
B. HTTP
C. IRC
D. FTP
Wybór protokołu IRC (Internet Relay Chat) jest niewłaściwy, ponieważ IRC jest przeznaczony do komunikacji w czasie rzeczywistym, a nie do transferu plików. IRC umożliwia użytkownikom prowadzenie rozmów na czatach i wymianę wiadomości, co nie ma zastosowania w kontekście przesyłania plików na serwer hostingowy. Podobnie, protokół HTTP (Hypertext Transfer Protocol) jest używany głównie do przesyłania danych w formacie stron internetowych, ale nie służy do przesyłania plików na serwer. HTTP obsługuje żądania i odpowiedzi między przeglądarką a serwerem, ale nie jest dedykowany do transferu plików na poziomie, który zapewnia FTP. Z kolei protokół SMTP (Simple Mail Transfer Protocol) jest używany do wysyłania wiadomości e-mail i również nie ma zastosowania w kontekście transferu plików na serwer. Wybierając odpowiedź, ważne jest zrozumienie, że każdy z tych protokołów ma swoje specyficzne zastosowanie i funkcjonalność. Często popełnianym błędem jest mylenie przeznaczenia poszczególnych protokołów, co prowadzi do nieprawidłowych wniosków. Aby udostępnić pliki na stronie internetowej, kluczowe jest zastosowanie odpowiedniego protokołu, który jest stworzony specjalnie do tego celu, w tym przypadku FTP.

Pytanie 32

Jak należy skonstruować zapytanie przy pomocy polecenia SELECT, aby wyświetlić unikalne nazwiska osób zamieszkujących osiedle?

A. SELECT TOP 10 nazwisko FROM mieszkancy;
B. SELECT AVG(nazwisko) FROM mieszkancy;
C. SELECT DISTINCT nazwisko FROM mieszkancy;
D. SELECT nazwisko FROM mieszkancy ORDER BY nazwisko;
Odpowiedź 'SELECT DISTINCT nazwisko FROM mieszkancy;' jest poprawna, ponieważ wykorzystuje klauzulę DISTINCT, która eliminuje duplikaty w wynikach zapytania. W kontekście baz danych, klauzula ta jest niezwykle użyteczna, gdy zależy nam na uzyskaniu unikalnych wartości z kolumny. W tym przypadku, wybierając unikalne nazwiska osób z tabeli 'mieszkancy', zapewniamy, że każde nazwisko pojawi się w wynikach tylko raz, co jest istotne w analizach i raportach, gdzie duplikaty mogłyby wprowadzać w błąd. Praktycznym przykładem użycia tego zapytania może być sytuacja, w której chcemy przygotować raport dla władz lokalnych o mieszkańcach danego osiedla. Zastosowanie DISTINCT pozwoli na przejrzystość raportu i jego większą użyteczność. Warto dodać, że użycie DISTINCT jest zgodne z dobrymi praktykami w programowaniu SQL, ponieważ przyczynia się do efektywnego zarządzania danymi i poprawy jakości wyników.

Pytanie 33

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

A. nav { float: right; } section { float: right; }
B. nav { float: right; }
C. nav { float: left; } aside { float: left; }
D. aside {float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 34

Który z kodów PHP sprawi, że zostanie wyświetlona sformatowana data oraz czas ostatnich odwiedzin użytkownika witryny, natomiast podczas pierwszej wizyty nic się nie wyświetli?

Kod 1.   echo date('d.m.Y, H:i', $_COOKIE['c1']);
         setcookie('c1', time());

Kod 2.   if(isset($_COOKIE['c1']))
           echo date($_COOKIE['c1']);
         setcookie('c1', time(), time() + 30 * 86400);

Kod 3.   echo date($_COOKIE['c1']);
         setcookie('c1', time(), time() + 30 * 86400);

Kod 4.   setcookie('c1', time(), time() + 30 * 86400);
A. Kod 1.
B. Kod 2.
C. Kod 4.
D. Kod 3.
Niepoprawne kody PHP nie spełniają wymagań zadania z różnych powodów. Niektóre nie wykorzystują funkcji isset() do sprawdzenia, czy ciasteczko 'c1' istnieje, co może prowadzić do błędów, jeżeli ciasteczko nie zostało ustawione. Inne zawsze wyświetlają datę i czas ostatnich odwiedzin, nawet jeżeli jest to pierwsza wizyta użytkownika na stronie, co jest niezgodne z treścią pytania. Kolejnym błędnym podejściem jest nieaktualizowanie ciasteczka 'c1' po wyświetleniu daty i czasu ostatnich odwiedzin, co powoduje, że zawsze wyświetlana jest ta sama data i czas. Ważnym elementem pracy z ciasteczkami w PHP jest zrozumienie, jak są one zapisywane i odczytywane, a także jak można je wykorzystać do przechowywania informacji o użytkownikach. Błędy te pokazują brak zrozumienia tych kwestii.

Pytanie 35

W CSS, aby ustawić wcięcie pierwszej linii akapitu na 30 pikseli, należy użyć zapisu

A. p {line-height: 30px;}
B. p {line-indent: 30px;}
C. p {text-indent: 30px;}
D. p {text-spacing: 30px;}
Pierwsza z odpowiedzi, p {line-height: 30px;}, odnosi się do interlinii, czyli przestrzeni między poszczególnymi liniami tekstu. Ustawienie line-height na 30 pikseli wpłynie na odległość między liniami, ale nie wprowadzi wcięcia, co jest kluczowe w przypadku tego pytania. Użytkownicy często mylą te właściwości, co prowadzi do nieporozumień w zakresie formatowania tekstu. Druga odpowiedź, p {text-spacing: 30px;}, jest błędna, ponieważ text-spacing nie jest standardową właściwością CSS. CSS nie definiuje takiej właściwości, co może prowadzić do frustracji podczas pracy nad stylizacją dokumentów. W przypadku trzeciej odpowiedzi, p {line-indent: 30px;}, również nie jest to poprawne podejście, gdyż line-indent nie jest uznawane za standardową właściwość CSS, więc jego zastosowanie nie przyniesie oczekiwanych efektów. Typowym błędem jest zakładanie, że każda właściwość związana z tekstem może być zastosowana w podobny sposób, co prowadzi do niepoprawnych wyników. Kluczowe jest zrozumienie różnicy między właściwościami, takimi jak line-height, text-indent i inne, aby skutecznie stylizować tekst na stronach internetowych.

Pytanie 36

Jaki jest wynik wykonania pętli for w poniższym kodzie PHP, jeśli chodzi o wypisanie liczb?

<?php
for($i=5; $i>1; $i-=2)
echo (
$i%2) . " " ;
?
>
A. 1 1
B. 1 0
C. 1 0 1 0
D. 1 0 1
Analizując inne odpowiedzi zwróćmy uwagę na błędy w logice pętli i operacji modulo które mogą prowadzić do błędnych wyników. Jedną z częstych pomyłek jest niedokładne zrozumienie działania operatora % który zwraca resztę z dzielenia. W kontekście pętli for ważne jest zrozumienie że zmienna kontrolująca i jest modyfikowana zgodnie z określonym krokiem tutaj i -= 2 co oznacza że i zmniejsza się o 2 w każdej iteracji pętli. Niepoprawne odpowiedzi mogą wynikać z założenia że pętla wykonuje się dla innych wartości i niż te faktycznie użyte. Na przykład wynik 1 0 1 0 sugeruje błędne założenie o nieparzystym kroku lub innej inicjalizacji zmiennej i. Możliwe że interpretacja warunku końcowego i > 1 nie została właściwie zrozumiana co prowadzi do założenia że pętla trwa dłużej niż powinna. Innym błędem może być zaniedbanie uwzględnienia kolejności wykonania instrukcji w ciele pętli. Zapominanie o dokładnym zrozumieniu jak działa i jest modyfikowane w każdej iteracji pętli może prowadzić do oczekiwania niepoprawnych wyników. Edukacyjnie ważne jest upewnienie się że każdy krok pętli jest dokładnie przeanalizowany a wynik działania operatora modulo jest zawsze przewidywalnie interpretowany w ramach iteracji pętli. Zrozumienie tych zasad jest kluczowe w pisaniu wydajnego i bezbłędnego kodu w PHP i innych językach programowania.

Pytanie 37

Z przedstawionych tabel Artykuly i Autorzy należy wybrać jedynie nazwiska autorów i tytuły ich artykułów, które zostały ocenione na 5. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
D. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
Gratulacje! Wybrałeś poprawne zapytanie SQL, które dokładnie odpowiada na postawione pytanie. Zapytanie 'SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;' jest prawidłowe, bo łączy dwie tabele 'autorzy' i 'artykuly' za pomocą klucza obcego 'autorzy_id' w tabeli 'artykuly'. Dzięki temu uzyskujemy dostęp do nazwisk autorów i tytułów artykułów. Dodatkowo, część 'WHERE ocena = 5' filtruje wyniki tak, aby wyświetlane były tylko te rekordy, gdzie ocena wynosi 5. To jest kluczowy element, który pozwala nam skupić się tylko na tych danych, które są istotne dla pytania. W praktyce, tego typu zapytania pomagają nam w analizie wydajności autorów i jakości artykułów, co jest niezwykle ważne w branży wydawniczej.

Pytanie 38

Baza danych zawiera tabelę artykuły z polami: nazwa, typ, producent, cena. Aby wyświetlić wszystkie nazwy artykułów wyłącznie typu pralka, dla których cena jest z przedziału 1 000 PLN i 1 500 PLN, należy zastosować polecenie

A. SELECT nazwa FROM artykuły WHERE typ=,pralka' OR cena BETWEEN 1000 AND 1500;
B. SELECT nazwa FROM artykuły WHERE typ=,pralka' AND cena BETWEEN 1000 AND 1500;
C. SELECT nazwa FROM artykuły WHERE typ=,pralka' OR cena BETWEEN 1000 OR 1500;
D. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena FROM 1000 TO 1500;
W analizowanych odpowiedziach występują liczne błędy związane z użyciem syntaktyki SQL oraz logicznych operatorów. W przypadku pierwszej odpowiedzi, niepoprawne jest użycie frazy 'cena FROM 1000 TO 1500', ponieważ nie istnieje taki operator w SQL. Prawidłowym podejściem byłoby użycie 'BETWEEN'. W drugiej odpowiedzi błędnie zaimplementowano operator 'OR' zamiast 'AND'. Logika tego zapytania wprowadza zamieszanie, ponieważ operator 'OR' prowadziłby do zwrócenia wszystkich artykułów typu 'pralka' lub tych, które mieszczą się w zadanym przedziale cenowym, co nie odzwierciedla zamierzonego celu. Trzecia odpowiedź również zawiera błąd w używaniu operatora 'OR' w kontekście zapytania, co skutkuje niepoprawnym wynikiem zapytania, ponieważ łączy różne warunki w sposób, który nie spełnia założonych kryteriów. Warto również zauważyć, że niepoprawne jest użycie przecinków w warunku 'typ=,pralka', co może prowadzić do błędów składniowych. Te typowe błędy myślowe pokazują, jak istotne jest zrozumienie zasady działania operatorów logicznych oraz poprawnej składni SQL, co jest kluczowe w efektywnym zarządzaniu bazami danych. Zachowanie prawidłowej struktury zapytania jest fundamentalne dla uzyskania właściwych danych, co ma bezpośrednie przełożenie na efektywność operacyjną aplikacji bazodanowych.

Pytanie 39

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 40

W języku JavaScript zdefiniowano następującą funkcję:

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Wypisać wartość odwrotną do argumentu f
B. Zwrócić wartość odwrotną do argumentu f
C. Wypisać wartość bezwzględną argumentu f
D. Zwrócić wartość bezwzględną argumentu f
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia funkcji i jej założeń. Wypisanie wartości bezwzględnej z f sugerowałoby że funkcja korzysta z mechanizmu wyjściowego takiego jak console.log co nie ma miejsca w tym przypadku. Funkcja jedynie zwraca wynik za pomocą return a nie wypisuje go na konsolę. Zwrócenie wartości odwrotnej do f oznaczałoby że funkcja miałaby inny cel: przekształcenie liczby na jej odwrotność czyli wartość 1/f co wymagało by dodatkowej logiki i warunkowania aby uniknąć dzielenia przez zero. Podobnie wypisanie wartości odwrotnej do f również wskazywałoby na potrzebę użycia mechanizmu wyjściowego a nie tylko return. Kluczowym błędem w takich rozumowaniach jest nieodróżnianie funkcji zwracających wartość od tych które wypisują wynik oraz niedocenienie znaczenia przekształcania wartości co jest fundamentem programowania funkcyjnego. Dobre praktyki programistyczne wymagają jasno zdefiniowanego celu funkcji co w tym przypadku jest poprawnie zrealizowane poprzez zwracanie wartości bezwzględnej co jest częstym i użytecznym wzorcem w wielu zastosowaniach praktycznych.