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: 24 kwietnia 2026 08:11
  • Data zakończenia: 24 kwietnia 2026 08:59

Egzamin zdany!

Wynik: 23/40 punktów (57,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Jak przy użyciu języka PHP można zapisać w ciasteczku wartość z zmiennej dane na okres jednego dnia?

A. setcookie("dane",$dane,0)
B. setcookie("dane",$dane,time())
C. setcookie("dane","dane",0)
D. setcookie("dane",$dane,time()+(3600*24))
Odpowiedź setcookie("dane", $dane, time() + (3600 * 24)); jest prawidłowa, ponieważ wykorzystuje funkcję setcookie, która pozwala na ustawienie ciasteczka w PHP. W pierwszym argumencie podajemy nazwę ciasteczka, w drugim jego wartość, a w trzecim czasie wygaśnięcia, który jest określony jako aktualny czas (time()) plus 24 godziny w sekundach (3600 sekund w godzinie razy 24). Takie podejście zapewnia, że ciasteczko będzie dostępne przez jeden dzień, co jest zgodne z dobrymi praktykami w zakresie zarządzania stanem użytkownika. Ciasteczka są powszechnie stosowane w aplikacjach webowych do przechowywania danych użytkownika pomiędzy sesjami, co zwiększa komfort korzystania z serwisów. Przykładem może być zapisanie preferencji użytkownika lub informacji o sesji. Warto pamiętać, że przed użyciem setcookie nie może być wysłany żaden HTML, więc ta funkcja powinna być wywoływana przed jakimkolwiek innym kodem, który generuje wyjście.

Pytanie 2

W języku CSS zdefiniowano następujące formatowanie:

 h1 i {color: red;}
Kolorem czerwonym zostanie zapisany
A. tylko tekst pochylony nagłówka pierwszego stopnia.
B. tylko tekst pochylony we wszystkich poziomach nagłówków.
C. cały tekst nagłówka pierwszego stopnia oraz pochylony tekst akapitu.
D. cały tekst nagłówka pierwszego stopnia oraz cały tekst pochylony, niezależnie od tego, w którym miejscu strony się znajduje.
Prawidłową odpowiedzią jest, że kolorem czerwonym zostanie zapisany tylko tekst pochylony nagłówka pierwszego stopnia. W CSS, gdy mówimy o selektorach potomków, odnosimy się do elementów, które są bezpośrednio lub niebezpośrednio umieszczone wewnątrz innego elementu. W przedstawionym kodzie CSS: h1 i {color: red;}, selektor pochylonego tekstu (<i>) wewnątrz nagłówka pierwszego stopnia (<h1>) jest selektorem potomka. Oznacza to, że reguła dotyczy tylko tych elementów <i> , które są umieszczone wewnątrz elementu <h1>. Właściwość 'color: red;' zmienia kolor tych elementów na czerwony. Istotne jest zrozumienie, że ta reguła nie wpływa na inne elementy strony, takie jak zwykły tekst w nagłówku h1 czy tekst pochylony w innych miejscach dokumentu. W praktyce, nauka zrozumienia i stosowania selektorów potomków w CSS jest kluczowa dla skutecznego i precyzyjnego formatowania elementów na stronie.

Pytanie 3

Który typ danych należy przypisać kolumnie z kodami pocztowymi w tabeli relacyjnej bazy danych, aby przechowywała dane w formie łańcuchów znakowych o zdefiniowanej, stałej długości?

A. BLOB
B. TEXT
C. DECIMAL
D. CHAR
Poprawnie – dla kolumny z kodami pocztowymi najlepszym wyborem jest typ CHAR. Kody pocztowe są danymi tekstowymi, a nie liczbowymi, mimo że często składają się wyłącznie z cyfr. W wielu krajach (np. w Polsce, Wielkiej Brytanii czy Kanadzie) kod pocztowy może zawierać myślniki, spacje, a nawet litery. Co ważne, długość kodu jest z góry znana i stała (np. w Polsce zawsze 6 znaków w formacie „NN-NNN”). Typ CHAR został właśnie zaprojektowany do przechowywania krótkich łańcuchów znaków o stałej długości. Silnik bazy danych rezerwuje stałą ilość miejsca i dopełnia wartość spacjami, jeśli jest krótsza. Dzięki temu porównywanie, indeksowanie i sortowanie takich pól jest przewidywalne i wydajne. Moim zdaniem jest to dokładnie ten przypadek, który się podręcznikowo podaje na zajęciach: PESEL, NIP, numer dokumentu, kod pocztowy – wszystkie to typowe przykłady na CHAR. W praktyce np. w MySQL zdefiniujesz taką kolumnę jako CHAR(6), w PostgreSQL jako CHAR(6) albo ewentualnie VARCHAR(6), ale przy stałej długości CHAR jest bardziej jednoznacznym sygnałem projektowym. Dodatkowo użycie typu znakowego zapobiega „obcinaniu” zer wiodących, co jest częstym błędem przy traktowaniu kodów pocztowych jako liczby. W wielu systemach legacy właśnie z tego powodu trzeba było później migrować typ danych z numerycznego na tekstowy. Z punktu widzenia dobrych praktyk modelowania danych przyjmuje się zasadę: jeżeli coś nie służy do liczenia, tylko jest identyfikatorem lub etykietą, to przechowujemy to jako tekst, a dla stałej długości – jako CHAR o odpowiednim rozmiarze.

Pytanie 4

W CSS określono styl dla paragrafu, który nada mu poniższe cechy:

background-color: red;
color: blue;
margin: 40px;
A. tło w kolorze niebieskim, tekst w kolorze czerwonym, marginesy zewnętrzne o wartości 40px
B. tło w kolorze niebieskim, tekst w kolorze czerwonym, marginesy wewnętrzne o wartości 40px
C. tło w kolorze czerwonym, tekst w kolorze niebieskim, marginesy zewnętrzne o wartości 40px
D. tło w kolorze czerwonym, tekst w kolorze niebieskim, marginesy wewnętrzne o wartości 40px
Rozumienie różnicy między marginesami wewnętrznymi a zewnętrznymi jest kluczowe w projektowaniu stron internetowych. CSS umożliwia precyzyjne ustawianie obu typów marginesów dzięki czemu projektant ma pełną kontrolę nad układem i estetyką strony. Marginesy wewnętrzne określane jako padding tworzą przestrzeń między zawartością a krawędzią elementu. Z kolei marginesy zewnętrzne czyli margin określają odstępy między elementami na stronie. Błędne przypisanie wartości 40px do padding zamiast margin skutkowałoby innym rozmieszczeniem elementów na stronie co mogłoby wpływać na czytelność i estetykę projektu. Innym często spotykanym błędem jest mylenie nazewnictwa kolorów tła oraz tekstu. W CSS background-color definiuje kolor tła a color dotyczy koloru tekstu. Pomylenie tych pojęć skutkowałoby odmiennym efektem wizualnym i potencjalnym brakiem czytelności tekstu w kontekście dobranego tła. W tym kontekście znajomość specyfikacji CSS jest niezbędna aby unikać błędów prowadzących do niezgodności wizualnej oraz utraty spójności projektu. Właściwe stosowanie właściwości CSS zgodnie z ich przeznaczeniem i standardami zapewnia nie tylko estetykę ale także poprawne działanie interfejsu na różnych urządzeniach i przeglądarkach co jest kluczowe dla zapewnienia pozytywnego doświadczenia użytkownika UX. Praktyczna wiedza na temat CSS pozwala na tworzenie bardziej elastycznych i dostosowanych do różnych potrzeb projektów co jest niezwykle cenne w zmieniających się trendach web designu.

Pytanie 5

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

A. grupowania.
B. sumy.
C. wykluczenia.
D. części wspólnej.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 6

W aplikacjach webowych tablice asocjacyjne to struktury, w których

A. elementy tablicy zawsze są indeksowane od 0
B. indeks ma postać łańcucha znakowego
C. posiadają co najmniej dwa wymiary
D. w każdej komórce tablicy znajduje się inna tablica
W kontekście tablic asocjacyjnych, nie jest prawdą, że muszą one mieć przynajmniej dwa wymiary. Tablice asocjacyjne są zazwyczaj jednowymiarowe, gdzie każdy klucz odnosi się do jednej wartości. Możliwe jest oczywiście zagnieżdżanie tablic asocjacyjnych, tworząc struktury wielowymiarowe, ale sama definicja tablicy asocjacyjnej nie wymaga tego. Dodatkowo, stwierdzenie, że elementy tablicy są zawsze indeksowane od 0, odnosi się głównie do tradycyjnych tablic indeksowanych liczbami całkowitymi, gdzie pierwszy element ma indeks 0. W przypadku tablic asocjacyjnych, klucze mogą być dowolnymi łańcuchami tekstowymi, co oznacza, że nie ma jednolitego sposobu indeksowania. Ostatnia niepoprawna odpowiedź sugeruje, że każda komórka tablicy przechowuje inną tablicę, co jest mylące. W rzeczywistości, w tablicach asocjacyjnych każda komórka może przechowywać dowolny typ danych, w tym liczby, łańcuchy tekstowe, obiekty czy inne tablice. Ostatecznie, w tablicach asocjacyjnych klucze są używane do dostępu do wartości, a nie do indeksowania jak w tradycyjnych tablicach.

Pytanie 7

Aby uzyskać dane dotyczące środowiska, w którym działa serwer obsługujący PHP, należy użyć funkcji

A. php()
B. phpgetinfo()
C. phpinfo()
D. phpinformation()
Funkcja phpinfo() jest kluczowym narzędziem dla programistów i administratorów systemów, pozwalającym na uzyskanie szczegółowych informacji o środowisku PHP zainstalowanym na serwerze. Po jej wywołaniu otrzymujemy kompletny zestaw danych, który obejmuje wersję PHP, zainstalowane rozszerzenia, konfiguracje oraz informacje o serwerze, takie jak wersja serwera HTTP. Przykładowe użycie polega na umieszczeniu w skrypcie PHP linii <?php phpinfo(); ?>, co spowoduje wygenerowanie strony z informacjami, które mogą być przydatne w diagnostyce problemów lub podczas optymalizacji aplikacji. Funkcja ta jest zgodna ze standardami PHP i jest powszechnie stosowana w celu monitorowania środowiska pracy. Ważne jest, aby pamiętać, że udostępnianie wyników phpinfo() publicznie może stanowić zagrożenie dla bezpieczeństwa, dlatego zaleca się ograniczenie dostępu do tej informacji tylko do zaufanych użytkowników i środowisk deweloperskich. W kontekście rozwoju aplikacji, phpinfo() jest również pomocne przy identyfikacji dostępnych ustawień konfiguracyjnych oraz ich wartości, co jest nieocenione podczas procesu rozwoju i testowania.

Pytanie 8

Aby skutecznie zrealizować algorytm wyznaczający największą z trzech podanych liczb a, b oraz c, wystarczy użyć

A. jednej pętli
B. dwóch warunków
C. dwóch tablic
D. pięciu zmiennych
Wybór innej odpowiedzi na to pytanie może wynikać z nieporozumienia dotyczącego efektywności algorytmów i ich implementacji. Odpowiedź sugerująca jedną pętlę wydaje się atrakcyjna, ale w rzeczywistości, aby znaleźć największą liczbę spośród trzech, nie potrzebujemy iteracji, gdyż liczby można porównać bez konieczności przeszukiwania. Dwie tablice są również zbędne, ponieważ do przechowywania liczb nie potrzebujemy dodatkowych struktur, skoro możemy operować na trzech zmiennych. Sugerowanie pięciu zmiennych jest jeszcze bardziej nieefektywne, ponieważ nie wymaga to dodatkowych miejsc w pamięci, a wręcz komplikowałoby algorytm bez potrzeby. Kluczowym błędem jest założenie, że skomplikowanie algorytmu wiąże się z jego efektywnością. W praktyce, prostota algorytmów często przekłada się na ich wydajność w rzeczywistych zastosowaniach. Użycie zbyt wielu zmiennych lub pętli może prowadzić do zwiększenia złożoności kodu, co obniża jego czytelność i utrudnia przyszłe utrzymanie. W kontekście dobrych praktyk programistycznych, należy zawsze dążyć do jak najprostszych rozwiązań, które wykonują zdefiniowane zadanie efektywnie, co w tym przypadku osiągamy za pomocą dwóch warunków.

Pytanie 9

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym przypisaniem indeksów tych elementów?

A. do...while
B. foreach
C. while
D. for
Zarówno konstrukcja 'for', 'while', jak i 'do...while' są pętlami, które służą do wykonywania bloków kodu wielokrotnie, jednak każda z nich ma swoje specyficzne zastosowania, które mogą prowadzić do nieefektywności w kontekście iteracji po tablicach. Użycie pętli 'for' wymaga manualnego zarządzania indeksami, co zwiększa ryzyko błędów, zwłaszcza w przypadku tablic o zmiennej długości. Przykładowo, iterując po tablicy za pomocą 'for', musimy ustawić warunki początkowe, końcowe oraz właściwie modyfikować indeks, co może prowadzić do błędów, jeśli nie zostanie to prawidłowo skonfigurowane. Z drugiej strony, pętle 'while' i 'do...while' są bardziej elastyczne, ale również wymagają dodatkowego sprawdzania warunków, co czyni je mniej przejrzystymi w kontekście iteracji po tablicach. Często prowadzi to do sytuacji, w których programiści popełniają błędy logiczne, takie jak zapętlenie się lub pominięcie elementów, co z kolei skutkuje trudnościami w utrzymaniu kodu. Dlatego, zamiast stosować te pętle, lepiej jest korzystać z 'foreach', która jest dedykowana do pracy z tablicami i eliminuje wiele problemów związanych z zarządzaniem indeksami.

Pytanie 10

W języku JavaScript następujący zapis: var napis1 = new napisy); ma na celu

A. stworzenie nowej klasy napis1
B. wywołanie metody dla obiektu napisy
C. zadeklarowanie zmiennej napis1 oraz wywołanie funkcji, w której argumentem jest napis1
D. stworzenie instancji obiektu napis1 klasy napisy
Pierwsza z niepoprawnych odpowiedzi sugeruje, że kod tworzy nową klasę 'napis1', co jest błędem. W rzeczywistości, w JavaScript klasy są definiowane za pomocą słowa kluczowego 'class', a 'new napisy()' uruchamia konstruktor, a nie definiuje klasę. Klasy w JavaScript można zdefiniować w następujący sposób: 'class napisy { constructor() { this.text = ''; }}', co wyraźnie różni się od podanego przykładu. Kolejna odpowiedź mówi o wywołaniu metody obiektu 'napisy', co również jest mylące, ponieważ aby wywołać metodę, obiekt musi być już stworzony, a 'new napisy()' nie wywołuje metody, lecz tworzy instancję obiektu. Ostatnia z odpowiedzi wskazuje na zadeklarowanie zmiennej 'napis1' i wywołanie funkcji z argumentem 'napis1', co jest całkowicie niezgodne z intencją podanego kodu. Nie ma tu żadnego wywołania funkcji z argumentem, a 'new' jest używane do instancjonowania klasy, co nie ma nic wspólnego z przekazywaniem argumentów do funkcji. Tak więc, wszystkie te odpowiedzi nie oddają prawidłowego zrozumienia działania konstrukcji obiektowych w JavaScript.

Pytanie 11

Użytkownik Jan będzie miał możliwość realizacji

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
A. wszystkie operacje na tabelach bazy dane oraz przekazywać prawa innym użytkownikom
B. tylko operacje manipulacji danymi oraz zmienić jedynie swoje uprawnienia
C. wyłącznie operacje CREATE, ALTER, DROP na tabelach w bazie dane
D. wszystkie operacje na tabelach w bazie dane
Odpowiedź jest prawidłowa, ponieważ polecenie GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost'; przyznaje użytkownikowi Jan wszelkie uprawnienia na wszystkich tabelach w bazie danych o nazwie 'dane'. Oznacza to, że Jan może wykonywać wszystkie operacje, takie jak SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP i inne, które są związane z zarządzaniem danymi oraz strukturą bazy. W praktyce oznacza to, że Jan ma pełną kontrolę nad bazą danych, co może być przydatne w scenariuszach, gdzie administratorzy chcą umożliwić użytkownikom elastyczność w zarządzaniu danymi. Warto jednak pamiętać, że przyznawanie ALL PRIVILEGES powinno być stosowane ostrożnie, aby uniknąć nieautoryzowanego dostępu do informacji. Dobrym rozwiązaniem jest stosowanie polityki minimalnych uprawnień, która ogranicza możliwości użytkowników do tylko tych, które są niezbędne do ich codziennych obowiązków.

Pytanie 12

Element <meta charset="utf-8"> definiuje metadane odnoszące się do strony internetowej dotyczące

A. słów kluczowych
B. opisu witryny
C. języka używanego na stronie
D. kodowania znaków
Element <meta charset="utf-8"> jest kluczowym składnikiem metadanych w dokumentach HTML, który określa sposób kodowania znaków używanych na stronie internetowej. Użycie kodowania UTF-8, które jest najczęściej stosowanym standardem, pozwala na wyświetlanie różnorodnych znaków z różnych języków, w tym znaków diakrytycznych. Dzięki temu, strony internetowe mogą być dostępne dla szerokiego grona użytkowników bez obaw o błędy związane z wyświetlaniem tekstu. Kiedy przeglądarka internetowa napotyka ten element, wie, że powinna interpretować zawartość dokumentu zgodnie z określonym kodowaniem. Jest to szczególnie ważne w kontekście globalizacji internetu, gdzie treści mogą być tworzone w wielu językach. Ustalając odpowiednie kodowanie, programiści minimalizują ryzyko wystąpienia problemów z wyświetlaniem, takich jak zamienione znaki czy nieczytelne fragmenty tekstu. Właściwe ustawienie metadanych jest zgodne z wytycznymi W3C oraz zaleceniami dla twórców stron internetowych, co czyni ten element niezbędnym w każdej współczesnej witrynie.

Pytanie 13

Załatwienie sprawy urzędowej online wymaga autoryzacji

A. imieniem i nazwiskiem.
B. numerem NIP.
C. serią i numerem dowodu osobistego.
D. profilem zaufanym.
Prawidłowo wskazany został profil zaufany, bo właśnie on jest standardowym mechanizmem autoryzacji w polskich e-usługach administracji publicznej. Profil zaufany to specjalne, elektroniczne potwierdzenie tożsamości obywatela, powiązane z jego numerem PESEL i zweryfikowane np. przez bank, urząd skarbowy albo punkt potwierdzający. Dzięki temu urząd ma pewność, że po drugiej stronie ekranu jest konkretna, zidentyfikowana osoba, a nie ktoś podszywający się pod kogoś innego. W praktyce wygląda to tak, że logujesz się do serwisu typu ePUAP, mObywatel, PUE ZUS, e-Urząd Skarbowy właśnie przez profil zaufany (albo bank, który technicznie używa mechanizmu profilu zaufanego). Po zalogowaniu możesz złożyć wniosek o dowód osobisty, zgłosić działalność gospodarczą, sprawdzić punkty karne, wysłać pismo ogólne do urzędu, podpisać elektronicznie dokument urzędowy. Ten podpis nie jest „odręczny”, tylko elektroniczny, ale z punktu widzenia prawa jest wiążący, bo jest połączony z Twoim profilem zaufanym. Moim zdaniem to jest dobry przykład, jak powinno się robić bezpieczeństwo w usługach online: zamiast losowych danych typu imię i nazwisko, używa się centralnego systemu identyfikacji, opartego o silne uwierzytelnianie i protokoły szyfrowania. Dobre praktyki branżowe mówią jasno: autoryzacja do wrażliwych systemów (a takim jest system urzędowy) powinna być oparta na czymś więcej niż tylko dane, które każdy może znać, i powinna być powiązana z mechanizmami logowania dwuskładnikowego oraz zaufaną infrastrukturą państwową. Profil zaufany dokładnie to realizuje i dlatego jest wymagany do załatwiania większości spraw urzędowych online.

Pytanie 14

Jaką wartość przyjmie zmienna a po wykonaniu poniższej sekwencji komend w PHP?

$a = 1;
$a++;
$a += 10;
--$a;
A. 12
B. 10
C. 1
D. 11
Zmienna a początkowo jest ustawiona na wartość 1. Instrukcja $a++ to postinkrementacja co oznacza że pierwotna wartość zmiennej a jest użyta w bieżącym wyrażeniu a dopiero potem zwiększana. Po wykonaniu tej instrukcji a staje się 2. Następnie $a += 10 zwiększa wartość o 10 co daje nam 12. Ostatecznie instrukcja --$a to predekrementacja co oznacza że zmniejsza wartość przed użyciem w wyrażeniu. W efekcie końcowym a wynosi 11. W praktyce zrozumienie różnic między inkrementacją a dekrementacją jest kluczowe dla efektywnego kodowania zwłaszcza przy operacjach na licznikach w pętlach. Dobre praktyki w programowaniu zalecają świadome stosowanie post- i preinkrementacji oraz zrozumienie jak te operacje wpływają na logikę programu. Umiejętność przewidywania efektów tych operacji jest jedną z podstawowych kompetencji programistycznych która znacząco wpływa na jakość i niezawodność tworzonego oprogramowania. Warto także zwrócić uwagę na zachowanie tych operatorów w różnych językach programowania ponieważ mimo pewnych podobieństw zachowanie może się różnić

Pytanie 15

W ramce przedstawiono kod JavaScript z błędem logicznym. Program powinien wypisywać informację, czy liczby są sobie równe, czy nie, lecz nie wykonuje tego. Wskaż odpowiedź, która dotyczy błędu.

var x=5;
var y=3;
if(x=y) document.getElementById("demo").innerHTML='zmienne są równe';
else    document.getElementById("demo").innerHTML='zmienne się różnią';
A. W klauzuli if użyto przypisania zamiast porównania
B. Zmienne zostały zadeklarowane w niewłaściwy sposób
C. Zawartość sekcji if oraz else powinna być zamieniona miejscami
D. Brak średnika przed klauzulą else
W analizowanym kodzie JavaScript występuje błąd związany z użyciem operatora przypisania zamiast operatora porównania w klauzuli if. W języku JavaScript do porównania dwóch wartości używa się operatora '===' lub '=='. Operator '=' to operator przypisania, który przypisuje wartość z prawej strony do zmiennej po lewej stronie. W kontekście warunków if, należy użyć operatora porównania, aby ocenić, czy dwie zmienne są równe. W poprawnej wersji kodu, linia if x = y powinna być zmieniona na if (x === y). Dodatkowo, warto pamiętać o umieszczeniu wartości porównawanych w nawiasach, co zwiększa czytelność i poprawność kodu. Przykład prawidłowego kodu to: var x = 5; var y = 3; if (x === y) { document.getElementById('demo').innerHTML = 'zmienne są równe'; } else { document.getElementById('demo').innerHTML = 'zmienne się różnią'; }. Taki zapis zapewnia, że program poprawnie zidentyfikuje różnicę między zmiennymi x i y i odpowiednio wyświetli komunikat.

Pytanie 16

Zestaw narzędzi oraz funkcji umożliwiający tworzenie aplikacji, który dodatkowo narzuca ramy wizualne aplikacji, jej strukturę oraz czasami wzór, według którego ma być stworzona aplikacja, to

A. biblioteka
B. komponent
C. framework
D. middleware
Biblioteka, komponent oraz middleware to pojęcia, które różnią się od frameworków zarówno pod względem funkcji, jak i sposobu wykorzystania w procesie tworzenia oprogramowania. Biblioteki to zestawy zdefiniowanych funkcji i procedur, które programista może wykorzystać w swoim projekcie, ale nie narzucają one struktury ani architektury aplikacji. Użytkownik biblioteki ma pełną kontrolę nad tym, jak i kiedy dany kod zostanie wykorzystany, co czyni ją bardziej elastyczną, ale także bardziej ryzykowną, gdyż łatwo można wprowadzić nieporządek w kodzie. Komponenty, z kolei, to niezależne moduły, które można wykorzystać w różnych miejscach aplikacji. Zazwyczaj są częścią większej architektury, ale same w sobie nie definiują szkieletu aplikacji. Middleware natomiast to oprogramowanie, które działa jako pośrednik w komunikacji między różnymi systemami lub aplikacjami. Jego główną funkcją jest zarządzanie danymi przesyłanymi pomiędzy aplikacjami, a nie ustalanie struktury samej aplikacji. W związku z tym, wybór frameworku jako odpowiedzi na postawione pytanie jest poprawny, ponieważ jedynie frameworki narzucają szkielet, strukturę i wzorce, które ułatwiają proces programowania.

Pytanie 17

Jakie działanie wykonuje polecenie DBCC CHECKDB("sklepAGD", Repair_fast) w MS SQL Server?

A. zweryfikuje spójność danej tabeli oraz naprawi uszkodzone rekordy
B. sprawdzi spójność bazy danych i naprawi uszkodzone indeksy
C. sprawdzi spójność bazy danych i utworzy kopię zapasową
D. zweryfikuje spójność danej tabeli
Polecenie DBCC CHECKDB w MS SQL Server to narzędzie używane do weryfikacji integralności bazy danych. W przypadku użycia opcji Repair_fast, polecenie to sprawdza spójność bazy danych oraz naprawia uszkodzone indeksy. Jest to istotne w kontekście zapewnienia, że wszystkie dane w bazie są prawidłowo zorganizowane i dostępne. Uszkodzone indeksy mogą prowadzić do problemów z wydajnością zapytań oraz błędów w dostępie do danych. Przykładowo, gdy baza danych ulega uszkodzeniu z powodu awarii sprzętu lub błędów oprogramowania, DBCC CHECKDB umożliwia przywrócenie funkcjonalności. Dobrą praktyką jest regularne wykonywanie tego polecenia jako część strategii utrzymania bazy danych, co pozwoli na wcześniejsze wykrycie potencjalnych problemów, zanim staną się one krytyczne. Warto również zaznaczyć, że DBCC CHECKDB powinno być uruchamiane w odpowiednich oknach serwisowych, by zminimalizować wpływ na wydajność aplikacji korzystających z bazy danych.

Pytanie 18

W CSS, aby stylizować tekst przy użyciu przekreślenia, podkreślenia dolnego lub górnego, należy użyć atrybutu

A. text-decoration
B. text-transform
C. text-align
D. text-indent
Atrybut text-decoration w CSS jest kluczowy do formatowania tekstu, umożliwiając zastosowanie efektów takich jak przekreślenie, podkreślenie dolne oraz górne. Można go użyć w prosty sposób, na przykład: 'text-decoration: underline;' dodaje podkreślenie do tekstu, natomiast 'text-decoration: line-through;' umożliwia przekreślenie. Dzięki tym efektom, projektanci stron mogą skutecznie komunikować różne stany tekstu, takie jak usunięte lub nieaktualne informacje. Standardy CSS, określone przez W3C, zalecają użycie text-decoration w kontekście dostępności, co poprawia czytelność i umożliwia lepsze zrozumienie treści przez użytkowników. Warto pamiętać, że text-decoration posiada również wartość 'none', co pozwala na usunięcie wszelkich dekoracji z tekstu. Dzięki temu deweloperzy mogą z łatwością dostosować wygląd tekstu zgodnie z wymaganiami projektu, co stanowi dobrą praktykę w responsywnym web designie.

Pytanie 19

System informatyczny umożliwiający tworzenie, edycję i publikację treści na stronach internetowych bez konieczności posiadania zaawansowanej wiedzy technicznej, to

A. DBMS
B. CMS
C. RDBMS
D. ERP
W tym pytaniu łatwo się pomylić, bo wszystkie skróty brzmią dość podobnie i kojarzą się z systemami informatycznymi, ale ich przeznaczenie jest zupełnie inne niż w opisie. Kluczowe w treści pytania jest to, że chodzi o tworzenie, edycję i publikację treści na stronach WWW, bez wymagania zaawansowanej wiedzy technicznej. Innymi słowy – użytkownik ma mieć wygodny panel, formularze, edytor tekstu, przyciski do wstawiania obrazków, a cała techniczna „magia” ma dziać się w tle. DBMS, czyli Database Management System, to system zarządzania bazą danych. Takie oprogramowanie jak MySQL, PostgreSQL, Oracle Database czy Microsoft SQL Server służy do tworzenia baz danych, tabel, wykonywania zapytań SQL, nadawania uprawnień użytkownikom. To jest narzędzie typowo dla administratorów baz i programistów, a nie dla redaktorów treści. DBMS sam w sobie nie udostępnia prostego interfejsu do publikowania artykułów na stronie WWW, tylko przechowuje dane, na których później może pracować aplikacja, np. CMS. RDBMS (Relational Database Management System) to po prostu szczególny rodzaj DBMS, który opiera się na modelu relacyjnym – tabele, klucze główne, klucze obce, relacje między tabelami. Z punktu widzenia pytania to jeszcze bardziej techniczny poziom. RDBMS to „zaplecze” wielu systemów, także CMS-ów, ale nie narzędzie, z którego korzysta zwykły użytkownik do edycji treści. Typowym błędem myślowym jest utożsamianie „systemu informatycznego” z czymkolwiek, co pracuje na danych, bez rozróżnienia, czy to jest warstwa bazy danych, czy aplikacja użytkownika. ERP (Enterprise Resource Planning) to z kolei rozbudowany system do zarządzania zasobami przedsiębiorstwa: magazyn, sprzedaż, księgowość, kadry, produkcja. Owszem, ERP może mieć moduł do wystawiania dokumentów, raportów, czasem nawet prosty portal B2B, ale jego głównym celem nie jest publikowanie treści na publicznej stronie WWW. To rozwiązanie skierowane do działów finansowych, logistycznych, produkcyjnych, a nie do webredaktorów. Mylenie ERP z CMS-em zwykle wynika z tego, że oba są „dużymi systemami” i czasem integrują się ze stroną internetową, ale pełnią inne role. Właściwy system opisany w pytaniu to CMS – Content Management System – który łączy się zazwyczaj z bazą danych (często właśnie RDBMS), ale daje użytkownikowi przyjazny interfejs do zarządzania treścią. Jeżeli więc w opisie pojawia się tworzenie stron, artykułów, wpisów blogowych, galerii i to wszystko bez znajomości HTML czy SQL, to jest bardzo silna wskazówka, że chodzi właśnie o CMS, a nie DBMS, RDBMS czy ERP.

Pytanie 20

Wykonano następującą kwerendę SQL na tabeli dania, której wiersze zostały pokazane na obrazie:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?

idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
62wieprzowy przysmak35
72Mintaj w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 2
B. 13
C. 8
D. 5
Gratulacje, dobrze sobie poradziłeś z tym pytaniem! Wykonanie kwerendy SELECT na tabeli danych, oznacza wybieranie konkretnych wierszy z tej tabeli, które spełniają określone kryteria. Kwerendy SQL są podstawowym narzędziem w zarządzaniu bazami danych, a ich zrozumienie jest kluczowe dla efektywnej pracy z danymi. W tym przypadku, kwerenda SELECT wybrała 2 wiersze - jest to prawidłowa odpowiedź. W praktyce, mogłoby to oznaczać na przykład wybranie z bazy danych informacji o dwóch klientach, którzy spełnili określone kryteria. Ważne jest, aby pamiętać, że liczba wybranych wierszy zależy od kryteriów, które określamy w kwerendzie. W SQL mamy wiele możliwości filtrowania i sortowania danych, co pozwala na efektywne zarządzanie informacjami. Dobra praktyka to dokładne zrozumienie działania kwerendy, zanim zostanie ona wykonana na dużej ilości danych.

Pytanie 21

Którego związku selektorów CSS należy użyć w miejscu znaków zapytania, aby zdefiniowany styl został zastosowany tylko do tekstu „paragrafie”?

<!DOCTYPE html>
<html>
  <head>
    <style>
      ???{letter-spacing: 10px; color: red;}
    </style>
  </head>
  <body>
    <p>Styl <b>tekstu</b> w pierwszym <i>paragrafie</i></p>
  </body>
</html>
A. b > i
B. p + i
C. b i
D. p > i
W tym zadaniu kluczowe jest zrozumienie, jak działają różne związki (kombinatory) selektorów w CSS i jak przekładają się one na strukturę drzewa DOM. Cały problem sprowadza się do relacji między znacznikami <p>, <b> i <i>. W kodzie <i> jest bezpośrednim dzieckiem paragrafu, natomiast <b> jest zupełnie osobnym elementem, który nie zawiera w sobie <i>. Jeżeli wybierzemy selektor oparty wyłącznie na listingu nazw znaczników obok siebie, typu „b i”, to w CSS oznacza on: „dowolny element <i> znajdujący się gdziekolwiek wewnątrz elementu <b>”. W naszym HTML nie ma takiej relacji, bo <i> nie jest potomkiem <b>, więc taki selektor zwyczajnie nie trafi w żaden element. To jest dość typowe myślenie: ktoś patrzy na kolejność znaczników w jednej linii i myli ją z hierarchią zagnieżdżenia. Podobny problem występuje przy użyciu selektora „b > i”. Kombinator „>” oznacza dziecko bezpośrednie, więc „b > i” wybiera tylko te elementy <i>, które są jednym poziomem niżej w środku <b>. Ponownie, w naszym drzewie DOM <i> nie jest dzieckiem <b>, więc reguła w ogóle się nie zastosuje. Z mojego doświadczenia to częsty błąd: patrzymy na tekst „tekstu w pierwszym paragrafie” i intuicyjnie kojarzymy słowa, zamiast spojrzeć, jak naprawdę są zagnieżdżone tagi. Jeszcze inna sytuacja dotyczy selektora „p + i”. Znak „+” to tzw. selektor sąsiadującego rodzeństwa (adjacent sibling). Oznacza: „wybierz element <i>, który stoi w DOM bezpośrednio po elemencie <p>, na tym samym poziomie zagnieżdżenia”. W naszym przykładzie <i> nie jest rodzeństwem <p>, tylko jego wnętrzem, więc ten kombinator kompletnie tu nie pasuje. To też jest dość mylące, bo część osób kojarzy „+” z jakimś rodzajem powiązania, ale nie pamięta, że chodzi o dwa znaczniki obok siebie, a nie jeden w środku drugiego. Podsumowując, wszystkie błędne odpowiedzi ignorują faktyczną strukturę HTML i relacje rodzic–dziecko między elementami. Dobra praktyka jest taka, żeby przed wyborem selektora wyobrazić sobie drzewo DOM albo wręcz rozpisać je w formie wcięć. Dopiero potem dobiera się odpowiedni kombinator: spacja dla dowolnego potomka, „>” dla dziecka, „+” dla sąsiada, „~” dla dalszego rodzeństwa. Świadome korzystanie z tych narzędzi pozwala tworzyć precyzyjne, czytelne i łatwe w utrzymaniu arkusze CSS, zgodne z rekomendacjami W3C i dobrymi praktykami front-endowymi.

Pytanie 22

W HTML-u atrybut shape w znaczniku area, który definiuje kształt obszaru, może przyjąć wartość

A. rect, square, circle
B. rect, poly, circle
C. poly, square, circle
D. rect, triangle, circle
Atrybut shape znacznika area w języku HTML jest wykorzystywany do określenia kształtu obszaru, który jest aktywny w mapie obrazów. Przyjmuje on wartości rect (prostokąt), poly (wielokąt) oraz circle (okrąg). Każda z tych wartości definiuje sposób, w jaki kształt obszaru jest interpretowany przez przeglądarkę. Na przykład, wartość 'rect' wymaga czterech parametrów, które określają lewy górny i prawy dolny róg prostokąta. W przypadku 'circle', musimy podać współrzędne środka oraz promień okręgu, a 'poly' wymaga podania współrzędnych wszystkich punktów wierzchołków wielokąta. Praktyczne zastosowanie atrybutu shape pozwala na tworzenie interaktywnych map obrazów, gdzie użytkownik może klikać w różne obszary, co zwiększa dostępność i użyteczność strony. Warto pamiętać, że korzystanie z map obrazów i odpowiedniego atrybutu shape powinno być zgodne z aktualnymi standardami W3C, co wpływa na poprawność i wydajność strony internetowej.

Pytanie 23

Wypisanie tekstu w języku JavaScript nie jest możliwe przy użyciu

A. własności innerHTML
B. metody document.write()
C. funkcji MessageBox()
D. metody window.alert()
W kontekście JavaScriptu w przeglądarce kluczowe jest rozumienie, jakie dokładnie narzędzia udostępnia środowisko uruchomieniowe, a jakie pochodzą z innych technologii czy języków. Częsty błąd polega na mieszaniu pojęć z różnych platform: ktoś programował kiedyś w C#, Delphi czy nawet w jakimś starszym systemie okienkowym i automatycznie zakłada, że funkcja MessageBox() będzie także dostępna w JavaScripcie. Tymczasem standardowe API przeglądarki definiuje inne mechanizmy do wyświetlania komunikatów. Właściwość innerHTML jest elementem DOM i absolutnie można za jej pomocą „wypisać” tekst na stronie. W praktyce sprowadza się to do modyfikacji zawartości konkretnego elementu HTML. Jeśli pobierzemy np. paragraf przez document.getElementById i ustawimy jego innerHTML na jakiś tekst, to użytkownik od razu zobaczy tę zmianę. Część osób myśli, że to coś „bardziej zaawansowanego” i nie traktuje tego jako zwykłego wypisywania, ale w realnych projektach właśnie tak się pokazuje dane: wyniki obliczeń, komunikaty, odpowiedzi z serwera itp. Metoda window.alert() jest prostym, ale w pełni poprawnym sposobem wyświetlania tekstu. Nie umieszcza treści w strukturze HTML, tylko pokazuje systemowe okienko dialogowe. Nadal jednak jest to forma prezentacji tekstu użytkownikowi, więc jak najbardziej spełnia definicję „wypisania tekstu” w kontekście zadania. Błędne przekonanie, że „prawdziwe” wypisywanie to tylko coś, co pojawia się w treści strony, jest po prostu zbyt wąskim podejściem. Document.write() z kolei jest mechanizmem historycznym, ale technicznie pozwala wstrzyknąć tekst do dokumentu podczas jego ładowania. W wielu nowych materiałach odradza się jego używanie, ponieważ utrudnia utrzymanie kodu i może nadpisać zawartość strony po załadowaniu, jednak to nie zmienia faktu, że tekst jest nim realnie wypisywany. Mylenie „złej praktyki” z „brakiem możliwości” to kolejny typowy błąd. Funkcja MessageBox() nie jest częścią standardowego API JavaScriptu w przeglądarce. Jeżeli nie zdefiniujemy jej sami w kodzie, interpreter zgłosi błąd. Właśnie dlatego to ona jest jedynym poprawnym wyborem jako mechanizm, którego nie da się użyć do wypisania tekstu w typowym środowisku webowym. Dobrą praktyką jest zawsze sprawdzanie dokumentacji konkretnego języka i platformy, a nie opieranie się na intuicji wyniesionej z innych technologii.

Pytanie 24

Wskaż fragment kodu CSS, który odpowiada układowi bloków 2 - 5, zakładając, że są one oparte na poniższym kodzie HTML.

Ilustracja do pytania
A. C
B. D
C. A
D. B
Niepoprawne odpowiedzi często wynikają z błędnego zrozumienia działania właściwości float oraz szerokości elementów w układzie blokowym. Float jest potężnym narzędziem które pozwala na pływające rozmieszczenie elementów ale wymaga precyzyjnego planowania aby uniknąć niepożądanych efektów takich jak elementy wychodzące poza przewidywane miejsca. Przy wyborze błędnych odpowiedzi można zauważyć że nieodpowiednie użycie float może prowadzić do nieprawidłowego wyświetlania bloków. Na przykład brak odpowiedniego ustawienia float left lub right dla niektórych bloków może skutkować ich przesunięciem poza zamierzony układ. Dodatkowo nieprawidłowe zarządzanie szerokością bloków może spowodować że układ przekroczy dostępny obszar wyświetlania co szczególnie jest problematyczne w responsywnym projektowaniu stron. Typowym błędem jest również brak uwzględnienia clearfix co może prowadzić do nieprawidłowego przepływu kolejnych elementów w układzie. Zrozumienie jak float wpływa na otaczające elementy oraz jak kontrolować szerokość i przepływ elementów jest kluczowe w tworzeniu stabilnych i przewidywalnych układów stron internetowych. Poprawne zastosowanie tych zasad jest kluczowe dla zgodnego z dobrymi praktykami projektowania stron które są nie tylko estetyczne ale i funkcjonalne w różnych kontekstach urządzeń i środowisk użytkownika.

Pytanie 25

Funkcja agregująca AVG wykorzystana w zapytaniu

SELECT AVG(cena) FROM uslugi;
ma na celu
A. znalezienie najwyższej ceny za usługi
B. wyliczenie średniej arytmetycznej cen wszystkich usług
C. obliczenie liczby dostępnych usług w tabeli
D. zsumowanie wszystkich kosztów usług
Funkcja agregująca AVG w języku SQL oblicza średnią arytmetyczną wartości w określonej kolumnie, w tym przypadku w kolumnie 'cena' tabeli 'uslugi'. W kontekście baz danych, obliczanie średniej jest kluczowym narzędziem analitycznym, które pozwala na uzyskanie ogólnego obrazu wartości danej kolumny. W praktyce, analiza średnich cen usług może być użyteczna dla menedżerów chcących dostosować strategię cenową lub dla działów finansowych oceniających wydajność sprzedaży. Przykładowo, jeżeli średnia cena usług wynosi 100 zł, a kolejny miesiąc przynosi spadek do 80 zł, jest to sygnał do analizy powodów obniżenia przychodów. Stosowanie funkcji AVG jest zgodne z najlepszymi praktykami w zakresie analizy danych, gdyż pozwala na podejmowanie decyzji opartych na faktach i liczbach. Warto również zauważyć, że do obliczeń średnich często używa się danych z różnych grup, co może pomóc w zrozumieniu trendów oraz wzorców w zachowaniach klientów na rynku.

Pytanie 26

W przedstawionym kodzie JavaScript występuje błąd logiczny. Program, zamiast informować, czy liczby są równe, nie działa prawidłowo. Wskaż, która odpowiedź dotyczy tego błędu.

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. Zmienne zostały błędnie zadeklarowane
B. W instrukcji if znajduje się przypisanie zamiast operacji porównania
C. Przed instrukcją else nie powinno być średnika
D. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
W tym przypadku mamy do czynienia z częstym błędem w programowaniu, gdzie zamiast porównania użyto operatora przypisania. W języku JavaScript operator przypisania '=' służy do przypisywania wartości do zmiennej, natomiast do porównania dwóch wartości używa się operatora '==' dla równości lub '===' dla równości i sprawdzania typu. Użycie '=' w warunku if powoduje przypisanie wartości y do x, co zawsze zwróci true, jeśli y jest różne od zera. To prowadzi do nieoczekiwanych rezultatów w logice programu. Poprawnym zapisem w tym kontekście jest if (x == y). Warto pamiętać o dobrych praktykach, które zalecają używanie '===' zamiast '==' dla uzyskania lepszej precyzji i uniknięcia błędów spowodowanych niejawnych konwersji typów. To podejście minimalizuje ryzyko błędów logicznych i poprawia czytelność kodu. Regularne stosowanie takich dobrych praktyk zwiększa jakość kodu i ułatwia jego późniejszą konserwację oraz rozwój.

Pytanie 27

Jakie znaczniki HTML pozwolą na prezentację tekstu w jednym wierszu na stronie, zakładając, że nie zastosowano żadnych reguł CSS?

A. style="margin-bottom: 0cm;"><h3>Dobre strony </h3><h3 style="letter-spacing:3px">mojej strony</h3>
B. style="margin-bottom: 0cm;"><p>Dobre strony </p><p style="letter-spacing:3px">mojej strony</p>
C. style="margin-bottom: 0cm;"><div>Dobre strony </div><div style="letter-spacing:3px">mojej strony</div>
D. <span>Dobre strony </span><span style="letter-spacing:3px">mojej strony</span>
Wszystkie trzy niepoprawne odpowiedzi wykorzystują znaczniki blokowe lub nieodpowiednie stylizacje, które wprowadzają nowe linie. Znacznik <p> (paragraf) domyślnie powoduje, że przeglądarki wstawiają odstęp przed i po elemencie, co zmienia układ tekstu na stronie. Zastosowanie <h3> również prowadzi do podobnych problemów, ponieważ nagłówki są elementami blokowymi, które z definicji powinny być wyświetlane w nowym wierszu. Ostatecznie, użycie <div> ma podobne konsekwencje, gdyż jest to również znacznik blokowy, co prowadzi do niepożądanego układu tekstu w nowych liniach. W kontekście tworzenia stron internetowych, zachowanie zgodności z zasadami HTML oraz CSS jest kluczowe, aby zachować porządek i estetykę strony. Elementy blokowe są idealne do tworzenia struktury, ale nie do wyświetlania tekstu w linii, dlatego w kontekście zadania, wybrane odpowiedzi nie spełniają wymogu utrzymania tekstu w jednej linii. Idealnym rozwiązaniem w takiej sytuacji jest użycie znaczników inline, takich jak <span>, które pozwalają na bardziej elastyczne formatowanie treści bez zakłócania układu.

Pytanie 28

W firmie zajmującej się technologiami informacyjnymi otwarta jest rekrutacja na stanowisko administratora e-sklepu. Do jego zadań należy instalacja i konfiguracja systemu zarządzania treścią, który jest przeznaczony jedynie dla sklepu internetowego, zmiana szablonów wizualnych oraz dostosowanie grafiki. Jakie umiejętności powinien posiadać nowy pracownik?

A. CMS WordPress, HTML, Gimp
B. HTML, CSS, Photoshop
C. Photoshop, Gimp, JavaScript
D. CMS PrestaShop, CSS, Gimp
Wybór odpowiedzi CMS PrestaShop, CSS, Gimp jest prawidłowy, ponieważ dokładnie odpowiada wymaganiom związanym z rolą administratora sklepu internetowego. PrestaShop to jeden z najpopularniejszych systemów zarządzania treścią (CMS) dedykowanych dla e-commerce. Jego znajomość jest kluczowa, gdyż pozwala na efektywną instalację i konfigurację platformy sklepowej, co jest jednym z głównych obowiązków administratora. CSS jest niezbędnym narzędziem do zmiany szablonów i dostosowania wyglądu sklepu zgodnie z wymaganiami klienta oraz standardami responsywnego designu, co zapewnia lepsze doświadczenia użytkowników na różnych urządzeniach. Gimp jako narzędzie graficzne umożliwia modyfikację grafik i tworzenie nowych elementów wizualnych, co jest istotne dla personalizacji sklepu. Dobrą praktyką w branży jest umiejętność integrowania graficznych oraz technologicznych komponentów w celu stworzenia atrakcyjnej i funkcjonalnej platformy handlowej, co znacząco wpływa na konwersje i wyniki sprzedaży. Ponadto, znajomość PrestaShop otwiera drzwi do wielu zasobów i społeczności, co dodatkowo wspiera rozwój zawodowy administratora.

Pytanie 29

Dla tablicy n-elementowej o nazwie t[n], algorytm, zapisany w formie kroków, ma za zadanie obliczenie sumy

Ilustracja do pytania
A. co drugiego elementu tablicy
B. sumy wszystkich elementów tablicy
C. sumy tych elementów tablicy, których wartości są nieparzyste
D. n-elementów tablicy
Algorytm, który masz na zdjęciu, ma na celu sumowanie co drugiego elementu w tablicy. Na początku ustalamy zmienne i=0 oraz wynik=0. Używamy pętli while, żeby przejść przez tablicę, a zmienna i zwiększa się o 2 za każdym razem, więc idealnie nadaje się do zbierania co drugiego elementu. W kroku K3 dodajemy aktualny element tablicy do zmiennej wynik, co w praktyce oznacza, że sumujemy elementy, które są na parzystych indeksach (czyli te z miejsc 0, 2, 4 i tak dalej). Takie podejście jest dosyć popularne, kiedy musimy wyodrębniać fragmenty danych z większej tablicy. Można to wykorzystać w różnych sytuacjach, gdzie liczy się efektywność, jak na przykład przy przetwarzaniu dużych zbiorów danych. Dzięki temu zmniejszamy złożoność obliczeniową i lepiej zarządzamy pamięcią. W branży często doradza się unikanie niepotrzebnych iteracji i skupianie się na mądrym projektowaniu algorytmów, co zdecydowanie prowadzi do lepszego kodu.

Pytanie 30

Debugger to narzędzie programowe, które ma za zadanie

A. instalowanie zestawu do programowania
B. łączenie plików bibliotek oraz wstępnie przetworzonego kodu źródłowego w plik wykonywalny
C. dynamiczna analiza działającego programu mająca na celu identyfikację przyczyn błędnego działania
D. rozpoznawanie błędów składniowych w kodzie źródłowym języka programowania
Debugger to zaawansowane oprogramowanie, które odgrywa kluczową rolę w procesie programowania, umożliwiając programistom dynamiczną analizę uruchomionego programu. Jego głównym zadaniem jest identyfikacja i diagnozowanie problemów, które mogą występować podczas działania aplikacji, co jest nieocenione w procesie tworzenia oprogramowania. Debugger pozwala na obserwację zmiennych, śledzenie przepływu wykonania kodu oraz analizę stanu pamięci, co jest istotne dla wykrywania błędów logicznych i wydajnościowych. Przykłady zastosowania debuggera można znaleźć w różnych środowiskach programistycznych, takich jak Visual Studio, Eclipse czy PyCharm, które oferują wbudowane narzędzia do debugowania. Standardy takie jak IEEE 829, dotyczące dokumentacji testowej, podkreślają znaczenie narzędzi debugujących w zapewnieniu jakości oprogramowania. W kontekście debugowania, programiści mogą korzystać z takich technik jak breakpointy, które zatrzymują wykonywanie programu w określonym miejscu, co umożliwia dokładną analizę jego stanu w danym momencie. Takie praktyki przyczyniają się do poprawy stabilności i wydajności tworzonych aplikacji.

Pytanie 31

Czym jest relacja w bazach danych?

A. kluczem podstawowym w relacji tabel
B. logicznym powiązaniem tabel
C. algebraicznym powiązaniem tabel
D. połączeniem dwóch pól jednej tabeli
Niektóre odpowiedzi wskazujące, że relacja w bazach danych jest algebraicznym połączeniem tabel albo chodzi o klucz główny w relacji tabel, są trudne do przyjęcia. Bo relacje w bazach danych to nie tylko techniczne sprawy, ale przede wszystkim sposób łączenia różnych tabel. Używanie terminu 'algebraiczne połączenie' trochę mija się z celem, bo te relacje są bardziej związane z logiką niż z matematyką. Klucz główny jest ważny do identyfikacji rekordów, ale to nie jest to samo co relacja. To się przypina z założeniem, że relacja to połączenie pól w jednej tabeli, co całkowicie nie zgadza się z tym jak działają relacyjne bazy danych. Takie błędne myślenie może namieszać w projektowaniu baz danych i potem ciężko będzie robić złożone zapytania. Dlatego dobrze jest mieć jasność co do relacji, bo to klucz do skutecznego zarządzania danymi.

Pytanie 32

Funkcją zaprezentowanego kodu PHP jest napełnienie tablicy $tab 10 losowymi liczbami z przedziału od -100 do 100, a następnie wypisanie liczb ujemnych. Kod prezentuje się następująco:

$tab = array();
for ($i = 0; $i < 10; $i++)
{
    $tab[$i] = rand(-100, 100);
}

foreach ($tab as $x)
{
    if ($x < 0)
        echo "$x ";
}
A. 100 losowymi liczbami, a następnie wypisanie liczb dodatnich
B. 10 losowymi wartościami, a następnie wypisanie liczb ujemnych
C. kolejnymi liczbami od -100 do 100 oraz wypisanie liczb ujemnych
D. kolejnymi liczbami od 0 do 9 i ich wyświetlenie
Interpretacja kodu pod kątem generowania liczb od -100 do 100 i ich wypisywania jest błędna ze względu na niewłaściwe zrozumienie funkcji rand oraz struktury pętli. Kod generuje dziesięć losowych wartości, ale nie wypisuje wszystkich liczb z zakresu, a jedynie ujemne liczby z wylosowanego zbioru. Podobnie, przypuszczenie, że kod wypełnia tablicę kolejnymi liczbami od 0 do 9 i je wypisuje, wynika z błędnego pojmowania mechanizmu inkrementacji zmiennej i oraz przypisania losowych wartości w tablicy. Wreszcie, myśl, że kod wypełnia 100 losowymi wartościami, jest błędna, ponieważ struktura pętli została ustawiona na dziesięć iteracji i nie ma elementu, który by sugerował generowanie aż 100 elementów. Ważne jest, aby dokładnie przeanalizować strukturę kodu i zrozumieć, jakie operacje są wykonywane w ramach każdej pętli oraz jakie wartości są faktycznie manipulowane. Zrozumienie funkcji rand i poprawne rozpoznanie zakresu liczby iteracji jest kluczowe w analizie i interpretacji kodu w językach programowania takich jak PHP. Poprawne zrozumienie logiki warunkowej if umożliwia prawidłową identyfikację, jakie elementy są wypisywane na końcu procesu, co jest istotne w wielu praktycznych zastosowaniach programistycznych.

Pytanie 33

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 34

W PHP do zapisywania informacji w pliku służy funkcja

A. freadfile()
B. fgets()
C. fopen()
D. fputs()
Funkcja fputs() w języku PHP jest używana do zapisywania danych do otwartego pliku. Działa na zasadzie wysyłania strumienia danych do pliku, co czyni ją odpowiednią do operacji zapisu. Przykładowe zastosowanie fputs() może wyglądać tak: najpierw należy otworzyć plik za pomocą funkcji fopen(), a następnie wykorzystać fputs() do zapisania danych. Na przykład: $file = fopen('dane.txt', 'w'); fputs($file, 'To jest przykładowy tekst.'); fclose($file); Warto pamiętać, że przy korzystaniu z funkcji fputs() istotne jest, aby plik był wcześniej otwarty w odpowiednim trybie (np. 'w' dla zapisu). W praktyce, fputs() jest zalecane do zapisu danych, ponieważ jest bardziej elastyczne od niektórych innych funkcji i pozwala na zapisywanie danych w formacie tekstowym. Dobre praktyki obejmują również sprawdzenie, czy otwarcie pliku zakończyło się sukcesem, co można zrobić poprzez odpowiednie warunki sprawdzające. Zrozumienie tej funkcji zwiększa efektywność programowania w PHP oraz umiejętność zarządzania danymi.

Pytanie 35

Aby włączyć kaskadowy arkusz stylów zapisany w zewnętrznym pliku, należy zastosować poniższy fragment kodu HTML?

A. <meta charset="styl.css" />
B. <div id="styl.css" relation="css" />
C. <link rel="stylesheet" type="text/css" href="styl.css" />
D. <optionvalue="styl.css" type="text/css" />
Odpowiedź <link rel="stylesheet" type="text/css" href="styl.css" /> jest poprawna, ponieważ jest to standardowy sposób dołączania zewnętrznych arkuszy stylów w HTML. Element <link> jest używany do powiązania dokumentu HTML z zewnętrznym źródłem CSS. Atrybut 'rel' informuje przeglądarkę, że jest to arkusz stylów, natomiast atrybut 'href' wskazuje ścieżkę do pliku CSS. Dzięki temu przeglądarka może załadować stylizacje z pliku, co pozwala na oddzielenie treści od stylu, co jest zgodne z zasadą separacji, kluczową w projektowaniu stron internetowych. Na przykład, dodając ten fragment kodu w sekcji <head> dokumentu HTML, możemy łatwo zarządzać wyglądem wielu stron, zmieniając tylko jeden plik CSS. To podejście zwiększa wydajność i ułatwia konserwację strony, co jest szczególnie ważne w większych projektach. W praktyce, aby załadować różne style dla różnych urządzeń, możemy użyć atrybutu 'media', co pozwoli na bardziej elastyczne podejście do zarządzania stylami.

Pytanie 36

Jakiego elementu HTML należy użyć, aby uzyskać tekst z czcionką o stałej szerokości znaku, w którym uwzględnione są dodatkowe spacje, tabulacje oraz znaki końca linii?

A. <code> ... </code>
B. <pre> ... </pre>
C. <blockquote> ... </blockquote>
D. <ins> ... </ins>
Znacznik <pre> w HTML jest używany do wyświetlania tekstu w formacie preformatowanym. Oznacza to, że w tym przypadku przeglądarka internetowa zachowuje wszystkie wprowadzone spacje, tabulacje i znaki końca linii, co jest kluczowe dla prezentacji kodu źródłowego lub tekstu, który wymaga zachowania dokładnej struktury. Element <pre> wyświetla tekst czcionką o stałej szerokości, co ułatwia czytelność, zwłaszcza w kontekście programowania. Na przykład, jeśli chcemy pokazać fragment kodu w HTML, możemy użyć znacznika <pre>, aby zachować wcięcia i dokładną formę kodu. Przykładowy kod HTML może wyglądać tak: <pre>function helloWorld() { console.log('Hello, World!'); }</pre>. Zgodnie z wytycznymi W3C, element <pre> powinien być używany z umiarem, ponieważ może prowadzić do problemów z dostępnością, jeśli jest stosowany w kontekście, w którym nie jest potrzebny. Należy również zwrócić uwagę, że tekst w <pre> nie jest automatycznie dostosowywany do szerokości kontenera, co może być istotne w projektowaniu responsywnym.

Pytanie 37

Kto z wymienionych zajmuje się stałym przygotowaniem systemu bazy danych do działania w produkcji, zarządzaniem kontami użytkowników oraz instalowaniem nowych wersji systemu bazodanowego?

A. Projektanci i programiści Systemu Zarządzania Bazą Danych
B. Twórcy narzędzi programistycznych
C. Administratorzy serwerów oraz sieci komputerowych
D. Administratorzy systemu bazy danych
Administratorzy systemu bazy danych (DBA) odgrywają kluczową rolę w zarządzaniu bazami danych w organizacji. Ich głównym zadaniem jest zapewnienie ciągłej dostępności systemu bazy danych, co obejmuje zarówno przygotowanie środowiska do pracy produkcyjnej, jak i monitorowanie jego wydajności. DBA są odpowiedzialni za zarządzanie użytkownikami, co oznacza, że tworzą i usuwają konta użytkowników oraz przydzielają odpowiednie uprawnienia dostępu, co jest istotne dla bezpieczeństwa danych. Dodatkowo, DBA instalują nowe wersje systemu bazodanowego, co wiąże się z aktualizacjami oprogramowania, które często zawierają poprawki błędów oraz nowe funkcje. Przykładem takiej praktyki jest regularne tworzenie kopii zapasowych danych oraz ich przywracanie w przypadku awarii. DBA muszą także znać standardy i dobre praktyki branżowe, takie jak modelowanie danych czy optymalizacja zapytań SQL, co wpływa na efektywność działania bazy danych. Współpraca z innymi działami IT, takimi jak programiści czy inżynierowie systemowi, jest również niezbędna dla sprawnego funkcjonowania systemów opartych na bazach danych.

Pytanie 38

SELECT AVGcena) FROM usługi; Celem użycia funkcji agregującej AVG w tym zapytaniu jest

A. zsumować wartości kosztów wszystkich usług
B. wyliczyć średnią arytmetyczną cen wszystkich usług
C. określić najwyższą cenę usług
D. zliczyć ilość dostępnych usług w tabeli
Odpowiedź "obliczyć średnią arytmetyczną cen wszystkich usług" jest poprawna, ponieważ funkcja AVG (average) w SQL jest zaprojektowana do obliczania średniej wartości z zestawu danych w danej kolumnie. W podanym zapytaniu, AVG(cena) ma na celu zsumowanie wartości w kolumnie 'cena' dla wszystkich wierszy w tabeli 'usługi' oraz podzielenie tej sumy przez liczbę wierszy, które zawierają dane. W praktyce, średnia arytmetyczna jest niezwykle użyteczna w analizie danych, ponieważ pozwala na uzyskanie jednego, reprezentatywnego wyniku, który może być pomocny w podejmowaniu decyzji biznesowych. Na przykład, firma usługowa może użyć tej informacji do oceny swojej polityki cenowej, porównując średnią cenę swoich usług do średnich cen konkurencji. Zgodnie z najlepszymi praktykami w branży, stosowanie funkcji agregujących takich jak AVG powinno być integralną częścią procesów analizy danych, szczególnie w kontekście raportowania i oceny efektywności operacyjnej.

Pytanie 39

Technologia, w której komunikacja użytkownika z serwerem odbywa się bez konieczności przeładowywania całego dokumentu HTML, to

A. PHP
B. AJAX
C. Ruby
D. Django
W tym pytaniu łatwo się pomylić, bo wszystkie podane technologie w jakiś sposób kojarzą się z tworzeniem aplikacji webowych, ale tylko jedna opisuje mechanizm komunikacji bez przeładowania całej strony. Kluczowe jest zrozumienie różnicy między językiem programowania, frameworkiem backendowym a techniką asynchronicznej komunikacji po stronie przeglądarki. Django to framework działający po stronie serwera, napisany w Pythonie. Służy do obsługi logiki biznesowej, generowania szablonów HTML, pracy z bazą danych, routingu adresów URL itd. Samo użycie Django nie powoduje automatycznie, że strona staje się „dynamiczna bez przeładowania”. To, czy strona przeładowuje się w całości, zależy od tego, jak zachowuje się kod w przeglądarce, a nie od tego, jaki framework stoi po stronie serwera. Podobnie PHP to język skryptowy po stronie serwera. Generuje HTML, JSON lub inne odpowiedzi HTTP, ale komunikacja odbywa się standardowo: przeglądarka wysyła żądanie, serwer z PHP odsyła odpowiedź. Bez zastosowania JavaScript i mechanizmów asynchronicznych każda interakcja użytkownika, która wymaga kontaktu z serwerem, kończy się pełnym przeładowaniem dokumentu. Częsty błąd myślowy polega na tym, że skoro PHP „tworzy dynamiczne strony”, to odpowiada też za ich dynamiczne odświeżanie w przeglądarce. W rzeczywistości dynamika po stronie serwera i dynamika interfejsu w przeglądarce to dwie różne warstwy. Ruby również jest tylko językiem programowania, a w świecie webowym najczęściej używany jest z frameworkiem Ruby on Rails. Znowu – świetnie nadaje się do tworzenia API, generowania widoków, obsługi baz danych, ale sam z siebie nie rozwiązuje problemu komunikacji asynchronicznej w przeglądarce. Bez JavaScriptu i odpowiednich wywołań HTTP od strony klienta, strona w Ruby zachowuje się tak samo jak w przypadku PHP czy Django: każda odpowiedź to nowy dokument HTML. Sedno jest takie, że AJAX opisuje konkretną technikę po stronie klienta: asynchroniczne wysyłanie żądań HTTP z przeglądarki i aktualizowanie tylko fragmentów strony. Django, PHP i Ruby mogą być serwerowym „końcem” tych zapytań AJAX, ale nie są samą technologią odpowiedzialną za brak przeładowania strony. Rozdzielenie w głowie: frontendowa komunikacja asynchroniczna vs backendowa logika serwera, to bardzo ważna dobra praktyka w programowaniu webowym.

Pytanie 40

W HTML, aby utworzyć poziomą linię, należy zastosować znacznik

A. <line>
B. <hr>
C. <br>
D. <hl>
Znacznik <line> nie jest standardowym elementem HTML i nie istnieje w specyfikacji tego języka. Z tego powodu nie może być użyty do tworzenia poziomej linii. Użytkownicy mogą mylić go z innymi terminami związanymi z grafiką wektorową, gdzie pojawia się pojęcie 'linia', jednak HTML nie przewiduje takiego znacznika. Kolejnym błędnym rozwiązaniem jest znacznik <br>, który jest używany do łamania linii w tekście. Umożliwia on przejście do nowej linii, ale nie daje efektu poziomej linii oddzielającej sekcje treści. Jest to element samodzielny, jednak jego funkcjonalność jest zupełnie inna. Z kolei znacznik <hl> nie istnieje w standardach HTML. Użytkownicy mogą go pomylić z innymi znacznikami, ale <hl> nie jest zdefiniowany w żadnym z wersji HTML, co oznacza, że przeglądarki go nie rozpoznałyby, co skutkowałoby brakiem jakiegokolwiek wizualnego efektu. Użycie niepoprawnych znaczników może prowadzić do problemów z interpretacją dokumentów HTML i ich wyświetlaniem w przeglądarkach, co negatywnie wpłynie na użytkowników oraz SEO strony.