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 14:34
  • Data zakończenia: 8 czerwca 2026 14:38

Egzamin niezdany

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

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

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

Pytanie 2

Wymień dwa sposoby na zabezpieczenie bazy danych w Microsoft Access.

A. Zaszyfrowanie pliku bazy danych oraz wysyłanie SMS-ów z kodem autoryzacyjnym
B. Wprowadzenie zabezpieczeń na poziomie użytkownika oraz sesji
C. Określenie hasła do otwarcia bazy danych oraz wprowadzenie zabezpieczeń na poziomie użytkownika
D. Używanie funkcji anonimowych oraz ustawienie hasła dostępu do bazy danych
Odpowiedzi sugerujące stosowanie funkcji anonimowych oraz SMS-ów z kodem autoryzującym nie są właściwe w kontekście zabezpieczania bazy danych Microsoft Access. Funkcje anonimowe nie istnieją w standardowym pakiecie Access, co czyni tę koncepcję niepraktyczną i mylącą. W praktyce, anonimowość w systemach baz danych nie jest pożądana, ponieważ uniemożliwia identyfikację użytkowników oraz monitorowanie ich działań, co jest kluczowe dla bezpieczeństwa i zgodności z regulacjami prawnymi, takimi jak RODO. Ponadto, pomysł zabezpieczenia bazy danych za pomocą SMS-ów z kodami autoryzującymi jest stosunkowo nieodpowiedni dla tego typu systemu, ponieważ Microsoft Access nie obsługuje natywnie autoryzacji dwuskładnikowej ani nie jest zaprojektowany do integracji z zewnętrznymi systemami SMS. Takie podejście nie tylko wprowadza dodatkowe ryzyko związane z bezpieczeństwem, ale również stwarza problemy praktyczne, takie jak zależność od zewnętrznych usług, co może prowadzić do przestojów w dostępie do danych. Dlatego kluczowe jest zastosowanie sprawdzonych metod zabezpieczeń, takich jak hasła i uprawnienia użytkowników, które są standardem w zarządzaniu danymi i zapewniają właściwą ochronę przed zagrożeniami.

Pytanie 3

Aby na stronie internetowej wyswietlic logo, ktorego tlo jest przezroczyste, nalezy zastosowac format:

A. CDR
B. PNG
C. BMP
D. JPG
PNG (Portable Network Graphics) to jedyny z wymienionych formatow, ktory zachowa przezroczyste tlo logo na stronie internetowej. Decyduje o tym kanal alfa - dodatkowa informacja o przezroczystosci kazdego piksela, dzieki ktorej miejsca bez grafiki pozostaja puste i przepuszczaja tlo strony. Logo wpasowuje sie wtedy w dowolne tlo bez bialego prostokata dookola. PNG stosuje przy tym kompresje bezstratna, wiec ostre krawedzie liter i jednolite barwy logo nie zostaja rozmyte. Format jest obslugiwany przez wszystkie przegladarki, co czyni go standardowym wyborem dla grafik z przezroczystoscia w sieci WWW.

Pytanie 4

Na czym polega zasada działania algorytmów zachłannych?

A. na wybieraniu rozwiązania najkorzystniejszego na danym etapie
B. na dzieleniu problemu na mniejsze podproblemy
C. na odwoływaniu się funkcji do samej siebie
D. na przeszukiwaniu danych aż do znalezienia rozwiązania
Pozostałe odpowiedzi opisują inne podejścia. Przeszukiwanie danych aż do znalezienia rozwiązania to strategia przeglądania (np. siłowego), a nie zachłanna. Dzielenie problemu na mniejsze podproblemy to technika „dziel i zwyciężaj”, w której wyniki podproblemów się scala. Odwoływanie się funkcji do samej siebie to rekurencja - sposób implementacji, a nie strategia wyboru. Algorytm zachłanny w każdym kroku wybiera lokalnie najlepszą opcję, dlatego ta odpowiedź jest poprawna.

Pytanie 5

Czym jest odpowiednik encji w relacyjnej bazie danych?

A. atrybut
B. wiersz
C. tabela
D. kolumna
W modelu relacyjnym odpowiednikiem encji (obiektu opisywanego danymi) jest TABELA - przechowuje wszystkie egzemplarze danego typu, każdy w osobnym wierszu. Dlatego encji odpowiada tabela.

Pytanie 6

Który atrybut kolumny zapewnia automatyczne nadawanie kolejnych, unikalnych wartości (np. dla klucza głównego)?

A.
AUTO_INCREMENT
B.
DEFAULT
C.
NOT NULL
D.
UNIQUE
Pozostałe atrybuty pełnią inne role. NOT NULL wymusza, by pole nie było puste, lecz żadnej wartości nie tworzy. DEFAULT wstawia ustaloną z góry wartość domyślną, gdy nie podano innej - ta sama dla każdego wiersza, a nie rosnący numer. UNIQUE gwarantuje, że wartości w kolumnie się nie powtórzą, ale to programista musi je dostarczyć. Automatyczne generowanie kolejnych liczb zapewnia AUTO_INCREMENT, dlatego to on jest poprawny.

Pytanie 7

Stronę internetową zapisano w języku XHTML. Który z kodów stanowi implementację przedstawionego fragmentu strony, jeżeli żadne style CSS nie zostały zdefiniowane?

Początki HTML

W 1980 fizyk Tim Berners-Lee, pracownik CERN,
stworzył prototyp hipertekstowego systemu informacyjnego – ENQUIRE


A.
<b>Początki HTML</b>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
B.
<h1>Początki HTML</h1>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
C.
<b>Początki HTML</b>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<hr /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
D.
<h1>Początki HTML</h1>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<i>prototyp hipertekstowego systemu informacyjnego – <b>ENQUIRE</b></i></p>
A. D.
B. A.
C. B.
D. C.
Niestety, twoja odpowiedź nie była poprawna. Wybrany przez ciebie fragment kodu nie odpowiadał strukturze i hierarchii tagów HTML widocznej na obrazku. HTML jest językiem znaczników, który wykorzystuje różne tagi do definiowania struktury i formatowania treści na stronie internetowej. Możliwe, że niepoprawne rozumienie tagów HTML mogło skłonić cię do wybrania nieprawidłowej odpowiedzi. Na przykład, jeśli wybrałeś opcję zawierającą tagi <h2> zamiast <h1> dla nagłówka, to mogło to wynikać z niewłaściwego zrozumienia hierarchii nagłówków w HTML. Podobnie, jeśli wybrałeś opcję, która nie zawierała tagu <br />, mogło to wynikać z niewłaściwego zrozumienia funkcji tego tagu w tworzeniu przerw wiersza. Ważne jest zrozumienie, jak różne tagi HTML wpływają na prezentację i strukturę strony internetowej, aby uniknąć błędów podczas tworzenia stron.

Pytanie 8

Najłatwiejszym sposobem na zmianę obiektu z numerem 1 na obiekt z numerem 2 jest

Ilustracja do pytania
A. zmiana warstwy obiektu
B. narysowanie obiektu docelowego
C. geometriczne przekształcenie obiektu
D. animacja obiektu
Geometryczne transformowanie obiektu to proces, który pozwala na zmiany w wielkości, kształcie, pozycji lub orientacji obiektu bez modyfikacji jego struktury. W przypadku zamiany obiektu oznaczonego cyfrą 1 na obiekt oznaczony cyfrą 2, transformacja geometryczna, jak skalowanie, jest najprostszą metodą. Skalowanie pozwala na proporcjonalne powiększenie obiektu, co jest niezbędne, gdy chcemy zwiększyć jego rozmiar bez zniekształceń. W praktyce, narzędzia do obróbki grafiki czy modelowania 3D, takie jak Adobe Illustrator czy AutoCAD, oferują funkcje do precyzyjnego skalowania. Kluczowe jest zachowanie proporcji, co można osiągnąć poprzez skalowanie względem określonego punktu odniesienia. Transformacje geometryczne są fundamentalne w wielu dziedzinach, takich jak projektowanie graficzne, inżynieria czy animacja komputerowa, i są zgodne z najlepszymi praktykami, które promują efektywność i precyzję w pracy z obiektami wizualnymi.

Pytanie 9

Na ilustracji przedstawiono schemat rozmieszczenia elementów na stronie WWW, gdzie zazwyczaj umieszcza się stopkę strony?

Ilustracja do pytania
A. 2
B. 1
C. 4
D. 5
Błędne odpowiedzi mogą wynikać z niezrozumienia roli oraz lokalizacji różnych elementów na stronie internetowej. Elementy takie jak nagłówek czy sidebar mają swoje specyficzne miejsce w typowym układzie strony. Nagłówek zwykle znajduje się na górze strony obejmując szerokość witryny i zawiera kluczowe informacje takie jak logo nawigacja główna czy tytuł strony. Sidebar natomiast to boczna kolumna używana do wyświetlania dodatkowych treści jak menu kategorię postów czy reklamy. Umieszczanie stopki w innych miejscach niż dół strony jest niezgodne z powszechnie przyjętymi normami projektowymi. Zasady te są wynikiem badań nad użytecznością oraz ergonomią interakcji użytkownika ze stroną internetową. Elementy powinny być rozmieszczane w sposób przewidywalny by użytkownik mógł łatwo znaleźć potrzebne informacje. Przypisywanie roli stopki innym częściom strony może prowadzić do dezorientacji użytkownika i negatywnie wpływać na jego doświadczenia. Dlatego zrozumienie i stosowanie zasad projektowania stron zgodnych z UX/UI jest kluczowe dla tworzenia intuicyjnych i funkcjonalnych witryn internetowych. Dobrze zaprojektowana strona internetowa zwiększa zadowolenie użytkowników oraz efektywność komunikacji marki z odbiorcą co jest istotne w kontekście konkurencyjnym obecnych rynków cyfrowych.

Pytanie 10

Który format najlepiej nadaje się do zapisu RASTROWEGO obrazu z przezroczystością na stronę WWW?

A. SVG
B. PNG
C. BMP
D. JPG
Do rastrowego obrazu z przezroczystością przeznaczonego na stronę WWW najlepszy jest PNG - łączy kanał alfa, kompresję bezstratną i pełne wsparcie przeglądarek. Sprawdza się przy logo, ikonach i grafikach nakładanych na różne tła. Zapamiętaj: raster + przezroczystość + web = PNG.

Pytanie 11

Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma poniższą postać. Aby dodawanie wykonane było po kliknięciu przycisku o nazwie "dodaj", należy w wykropkowane miejsce wstawić

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
….
<script type=text/javascript>
function dodaj()
{
    // ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onclick="return dodaj()">dodaj</button>
B. <button onclick="return oblicz()">dodaj</button>
C. <button onselect="return dodaj()">dodaj</button>
D. <button onselect="return dodaj()">oblicz</button>
Wybór niewłaściwej odpowiedzi sugeruje pewne nieporozumienie związane z obsługą zdarzeń w JavaScript i jak są one wywoływane w kontekście przycisków. Wszystkie pozostałe odpowiedzi używają zdarzenia 'onselect' lub wywołują nieistniejącą funkcję 'oblicz'. Zdarzenie 'onselect' jest wyzwalane, gdy użytkownik zaznacza tekst w elemencie, co jest nieodpowiednie dla przycisku. Innymi słowy, 'onselect' nie jest odpowiednim zdarzeniem do obsługi kliknięcia przycisku. Co więcej, wywołanie funkcji 'oblicz' jest błędem, ponieważ nie istnieje taka funkcja zdefiniowana w skrypcie. Ta myląca odpowiedź może wynikać z niezrozumienia, jak zdarzenia są obsługiwane w JavaScript i jakie zdarzenia są odpowiednie dla różnych elementów. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają używanie odpowiednich zdarzeń dla różnych elementów i typów interakcji użytkownika.

Pytanie 12

Które wywołanie is_float() zwróci true?

A.
is_float(334)
B.
is_float(NULL)
C.
is_float('3,34')
D.
is_float(3.34)
Funkcja is_float() zwraca true tylko dla liczby ZMIENNOPRZECINKOWEJ, a w kodzie część dziesiętną oddziela KROPKA - dlatego is_float(3.34) da true.

Pytanie 13

Który mechanizm jest kluczowy dla Systemu Zarządzania Bazą Danych (SZBD)?

A. narzędzia do generowania statystyk
B. moduł do wizualizacji diagramów encji
C. system zarządzania wersjami bazy
D. wielodostępność do danych
Kluczowym mechanizmem SZBD jest WIELODOSTĘPNOŚĆ - umożliwienie wielu użytkownikom jednoczesnej, bezpiecznej pracy na tych samych danych, z kontrolą współbieżności, blokadami i transakcjami. To podstawa działania systemu bazodanowego. Dlatego kluczowa jest wielodostępność do danych.

Pytanie 14

Przy użyciu polecenia ALTER TABLE można

A. usuwać tabelę
B. zmieniać wartości zapisane w rekordach tabeli
C. zmieniać strukturę tabeli
D. tworzyć nową tabelę
W kontekście zarządzania bazami danych istnieje wiele podstawowych operacji, które można wykonywać, a polecenie ALTER TABLE jest jednoznacznie związane z modyfikowaniem struktury tabeli, co wyklucza możliwość jego użycia do usuwania lub tworzenia tabel. Odpowiedź sugerująca, że ALTER TABLE może usuwać tabelę, jest merytorycznie błędna. Tego rodzaju operacje realizowane są przez inne polecenia, takie jak DROP TABLE, które służy do usuwania tabeli i jej danych. Podobnie, tworzenie tabeli jest realizowane poleceniem CREATE TABLE. Mylne stwierdzenie, że ALTER TABLE może być używane do modyfikacji wartości w rekordach, również jest niepoprawne, ponieważ zmiana wartości zapisanych w tabeli jest realizowana za pomocą polecenia UPDATE. Niezrozumienie różnicy pomiędzy tymi poleceniami może prowadzić do błędnych operacji na bazie danych, narażających na utratę danych lub nieprawidłowe funkcjonowanie aplikacji. Dlatego tak ważne jest zrozumienie, jakie konkretne operacje można wykonać za pomocą poszczególnych poleceń SQL oraz ich właściwego zastosowania w praktyce, aby zapewnić integralność i bezpieczeństwo danych.

Pytanie 15

Które wartości będą przechowywane w zmiennych po wykonaniu przedstawionej pętli języka PHP?

$i = 20;    $a = 0;
while($i) {
  $a += 2;
  $i--;
}
A. a = 40, i = 20
B. a = 20, i = 20
C. a = 40, i = 0
D. a = 0, i = 20
Odpowiedź jest poprawna, ponieważ zrozumienie jak działa pętla w języku PHP jest kluczowe dla efektywnej pracy z tym językiem. W tym przypadku mamy do czynienia z pętlą, która zaczyna się od wartości i = 20 i w każdej iteracji zmniejsza wartość i o 1, aż dojdzie do 0, kończąc pętlę. Zmienna 'a' jest zwiększana o 2 w każdej iteracji, co daje nam finalną wartość a = 40 po 20 iteracjach. To jest kluczowe dla zrozumienia, jak zmienne są aktualizowane i przechowywane w pętli PHP. Przykład ten pokazuje, jak można wykorzystać pętle do wykonywania powtarzalnych operacji na danych, co jest podstawowym elementem programowania. Pamiętaj, że zrozumienie, jak działa pętla, jest kluczowe do tworzenia efektywnych i wydajnych programów, nie tylko w PHP, ale w każdym języku programowania.

Pytanie 16

Który efekt został zaprezentowany na filmie?

A. Zmiana jasności zdjęć.
B. Zwiększenie ostrości zdjęcia.
C. Przenikanie zdjęć.
D. Zmniejszenie kontrastu zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 17

Rozważ tabelę pracownicy. Jakie jest polecenie MySQL, które usuwa wszystkie wpisy z tabeli, gdzie pole rodzaj_umowy jest puste?

A. DELETE FROM pracownicy WHERE rodzaj_umowy IS NULL
B. DROP pracownicy FROM rodzaj_umowy = 0
C. DROP pracownicy WHERE rodzaj_umowy IS NULL
D. DELETE pracownicy WHERE rodzaj_umowy ='brak'
Wszystkie zaproponowane odpowiedzi, z wyjątkiem poprawnej, zawierają istotne błędy syntaktyczne lub semantyczne, które skutkują nieprawidłowym usunięciem rekordów z tabeli. Przykładowo, użycie DROP zamiast DELETE jest całkowicie niewłaściwe, gdyż DROP służy do usunięcia całej tabeli, a nie tylko jej rekordów. W sytuacji, kiedy chcemy zachować strukturę tabeli, ale usunąć konkretne dane, wybór polecenia DELETE jest absolutnie kluczowy. Dodatkowo, w niektórych odpowiedziach odniesienie do wartości 'brak' jest problematyczne. W SQL, aby skutecznie usunąć rekordy, należy używać wartości NULL, ponieważ 'brak' może być interpretowane jako string, co nie odnosi się do braku jakiejkolwiek wartości. Wartości NULL i stringi to różne typy danych, co może prowadzić do niepożądanych rezultatów. Tak więc, próba usunięcia rekordów, które nie mają pola rodzaj_umowy wypełnionego, polegająca na sprawdzeniu ich równości z 'brak', nie tylko nie przyniesie oczekiwanych efektów, ale może także wprowadzać w błąd, sugerując, że takie wartości istnieją w bazie. Zrozumienie różnicy między tymi wartościami jest kluczowe dla prawidłowego zarządzania danymi w systemach bazodanowych.

Pytanie 18

Metainformacja "Description" umieszczona w pliku HTML powinna zawierać

<head>
    <meta name="Description" content="...">
</head>
A. spis słów kluczowych, które są wykorzystywane przez wyszukiwarki internetowe
B. informację na temat autora strony
C. opis treści znajdującej się na stronie
D. nazwę aplikacji, za pomocą której stworzono stronę
Metainformacja Description nie jest odpowiednia do przechowywania nazwy programu użytego do stworzenia strony internetowej Taka informacja nie jest istotna z punktu widzenia użytkowników odwiedzających stronę czy też algorytmów wyszukiwania które analizują treść strony pod kątem jej użyteczności oraz zgodności z zapytaniami użytkowników Opisanie kluczowych informacji na stronie jest bardziej użyteczne ponieważ pozwala użytkownikom i wyszukiwarkom zrozumieć jej zawartość Wyszukiwarki analizują treść strony w tym opisy aby lepiej dopasować je do zapytań użytkowników Podczas gdy słowa kluczowe odgrywają rolę w SEO nie powinny być zamieszczane w metainformacji Description w formie listy ale raczej harmonijnie wplecione w naturalnie brzmiący tekst Opis strony ma za zadanie przyciągnąć uwagę i zachęcić do kliknięcia dlatego powinien być skonstruowany w sposób precyzyjnie oddający zawartość strony co jest zgodne z najlepszymi praktykami SEO i doświadczeniem użytkownika Ostatecznie informacje o autorze strony mogą być umieszczane w innych miejscach takich jak stopka strony lub w metainformacji Author ale nie są głównym przeznaczeniem metatagu Description Rozumienie tych zasad pomaga w skutecznym projektowaniu stron internetowych zgodnych z oczekiwaniami użytkowników i standardami branżowymi

Pytanie 19

W języku PHP funkcja trim służy do

A. redukcji tekstu o zdefiniowaną w parametrze liczbę znaków
B. określenia długości tekstu
C. porównywania dwóch tekstów i zwracania ich wspólnej części
D. usuwania białych znaków lub innych znaków wymienionych w parametrze z obu końców tekstu
Analizując inne odpowiedzi, można zauważyć, że każda z nich opiera się na mylnych założeniach dotyczących funkcji trim. Wyznaczanie długości napisu to funkcjonalność, którą realizuje funkcja strlen. Użytkownicy mogą mylić te dwie funkcje, jednak trim nie zwraca liczby znaków w łańcuchu, a jedynie przekształca jego zawartość poprzez usunięcie białych znaków. Porównywanie dwóch napisów i wypisywanie ich części wspólnej to z kolei funkcjonalność, którą można zrealizować przy pomocy funkcji takich jak strcmp lub strcasecmp, które są dedykowane do porównań łańcuchów i operacji na nich. Pomijając funkcjonalności porównawcze, zrozumienie, że trim nie zmniejsza napisu o wskazaną liczbę znaków, lecz usuwa tylko białe znaki z końców, jest kluczowe dla poprawnego korzystania z tej funkcji. Takie podejście może prowadzić do błędnych interpretacji, gdyż funkcja trim działa na zasadzie operacji na końcach łańcucha, a nie na konkretnych pozycjach. Dlatego istotne jest, aby użytkownicy PHP zdobyli wiedzę na temat specyfikacji poszczególnych funkcji, aby uniknąć takich nieporozumień, co w praktyce ułatwia rozwój i utrzymanie kodu.

Pytanie 20

Do której właściwości można przypisać wartości: static, relative, fixed, absolute oraz sticky?

A. display
B. list-style-type
C. position
D. text-transform
Wybór czegoś innego niż 'position' pokazuje, że mogło dojść do małego miszmaszu z rozumieniem CSS. Na przykład, 'display' decyduje, jak elementy się wyświetlają – czy są blokowe, czy liniowe – ale nie ma nic wspólnego z ich pozycjonowaniem. 'display: block' sprawia, że element zajmuje całą szerokość, a 'display: inline' pozwala na mniejszy wpływ na inne elementy, co może wprowadzić w błąd, jeśli chodzi o pozycjonowanie. 'list-style-type' to kwestia stylizacji list, więc to też nie ma związku z układem elementów na stronie. Tak samo, 'text-transform' zmienia wygląd tekstu, na przykład na wielkie litery, ale nie wpływa na to, gdzie elementy są umieszczone. Wydaje mi się, że warto by było jeszcze raz przestudiować, jak działa pozycjonowanie w CSS. Fajnie by było też zajrzeć do dokumentacji i zobaczyć konkretne przykłady, żeby lepiej to zrozumieć.

Pytanie 21

Tabela naprawy ma kolumny klient i czyNaprawione. Jak usunąć rekordy, w których czyNaprawione jest prawdą?

A.
DELETE FROM naprawy;
B.
DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
C.
DELETE naprawy WHERE czyNaprawione = TRUE;
D.
DELETE FROM naprawy WHERE czyNaprawione = TRUE;
DELETE FROM naprawy; bez WHERE usunęłoby WSZYSTKIE wiersze. DELETE naprawy WHERE ... pomija słowo FROM. DELETE klient FROM ... błędnie wskazuje kolumnę (DELETE usuwa całe wiersze). Poprawne jest DELETE FROM naprawy WHERE czyNaprawione = TRUE;.

Pytanie 22

Ograniczanie dostępu do niektórych pól lub metod obiektów danej klasy, tak aby mogły być one wykorzystywane wyłącznie przez wewnętrzne metody tej klasy lub funkcje zaprzyjaźnione, to

A. dziedziczenie
B. konkatenacja
C. hermetyzacja
D. polimorfizm
Dziedziczenie to mechanizm, który pozwala na tworzenie nowych klas na podstawie już istniejących, co umożliwia ponowne wykorzystanie kodu i wprowadzanie hierarchii w projektach, jednak nie ma nic wspólnego z ukrywaniem pól i metod. W dziedziczeniu, klasy pochodne dziedziczą właściwości i metody klas bazowych, co sprawia, że możliwe jest ich wykorzystanie, a nie ukrycie. Kolejną koncepcją jest konkatenacja, która w kontekście programowania nie odnosi się do hermetyzacji, lecz do łączenia ciągów tekstowych, co nie ma zastosowania przy ukrywaniu danych w klasach. Polimorfizm natomiast to zdolność obiektów do przyjmowania wielu form, co jest związane z interfejsami i dziedziczeniem, ale również nie dotyczy hermetyzacji. Typowym błędem myślowym jest mylenie tych pojęć z hermetyzacją, ponieważ wszystkie one są fundamentami programowania obiektowego, lecz służą różnym celom. Zrozumienie tego rozróżnienia jest istotne dla prawidłowego stosowania technik programistycznych i wdrażania efektywnych rozwiązań w praktyce.

Pytanie 23

W SQL, po wykonaniu przedstawionych poleceń GRANT, prawo do edytowania struktury tabeli oraz jej usunięcia zostanie przyznane

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@'localhost';
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';
A. tylko Annie
B. Tomaszowi i Adamowi
C. Adamowi i Annie
D. Tomaszowi i Annie
Odpowiedź Adamowi i Annie jest poprawna ponieważ polecenie GRANT w SQL służy do przydzielania określonych uprawnień użytkownikom. W zapytaniu GRANT ALL ON firmy TO 'adam'@'localhost' Adam otrzymuje wszystkie możliwe uprawnienia do tabeli co obejmuje również możliwość zmiany struktury tabeli poprzez ALTER oraz jej usuwania poprzez DROP. Z kolei Anna dzięki poleceniu GRANT ALTER CREATE DROP również uzyskuje te same dwa kluczowe uprawnienia dotyczące zmiany struktury i usuwania tabeli. Takie przydzielanie uprawnień jest zgodne z branżowymi standardami zapewniającymi elastyczność i bezpieczeństwo w zarządzaniu bazami danych. Praktyczne zastosowanie tych uprawnień umożliwia administratorom bazy danych delegowanie odpowiedzialności za różne aspekty zarządzania bazą innym użytkownikom co jest szczególnie przydatne w dużych zespołach. Ważne jest również aby zawsze monitorować i regularnie audytować przydzielone uprawnienia aby zapewnić że użytkownicy posiadają tylko te uprawnienia które są niezbędne do wykonywania ich zadań co jest zgodne z zasadą najmniejszych uprawnień w bezpieczeństwie IT.

Pytanie 24

Jeżeli rozmiar pliku graficznego jest zbyt duży do publikacji w sieci, co należy zrobić?

A. zwiększyć jego głębię kolorów
B. zapisać w formacie BMP
C. zmniejszyć jego rozdzielczość
D. dodać kanał alfa
Zwiększenie głębi kolorów w pliku graficznym nie prowadzi do zmniejszenia jego rozmiaru, a wręcz przeciwnie, może spowodować, że plik stanie się większy. Głębia kolorów odnosi się do liczby bitów używanych do reprezentacji koloru pojedynczego piksela obrazu. Na przykład, zwiększenie głębi z 8 bitów (256 kolorów) do 16 bitów (65 536 kolorów) zwiększa objętość danych, co skutkuje większym rozmiarem pliku. Ponadto, zapis w formacie BMP to również błędny wybór, ponieważ BMP jest formatem, który przechowuje dane w sposób mało efektywny i niekompresowany, co sprawia, że pliki BMP są znacznie większe niż ich odpowiedniki w formatach skompresowanych, takich jak JPEG czy PNG. Dodanie kanału alfa do obrazu, choć może być przydatne w przypadku potrzeby przejrzystości, również zwiększy rozmiar pliku, ponieważ dodaje dodatkowe informacje o przezroczystości dla każdego piksela. W rezultacie, wszystkie te działania wprowadzą niepotrzebny wzrost rozmiaru pliku, co jest sprzeczne z celem optymalizacji pod kątem publikacji online.

Pytanie 25

Który z akapitów został zapisany w wskazanym stylu, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 2
B. Efekt 4
C. Efekt 1
D. Efekt 3
W analizowanym pytaniu trzy efekty nie spełniają wszystkich warunków zdefiniowanych w stylu CSS dla paragrafu. Pierwszy efekt pokazuje tekst z niebieskim tłem który nie jest zgodny z zadanym stylem ponieważ kolor tła nie został określony w stylizacji. Zastosowanie niebieskiego tła często wynika z chęci wizualnego wyróżnienia elementu ale w tym przypadku styl określa jedynie kolor tekstu na niebieski a nie tła. Drugi efekt charakteryzuje się użyciem kursywy co również nie jest zgodne z deklaracją stylu CSS. Stylizacja paragrafu nie zawiera property font-style co oznacza że tekst powinien być w domyślnej formie czyli zwykły a nie kursywa. Trzeci i czwarty efekt mają niezgodne kolory tekstu i inne elementy które nie pasują do zadanego stylu. Typowym błędem w interpretacji stylów CSS jest niedokładne odczytanie wszystkich zdefiniowanych parametrów co prowadzi do błędnych założeń ostatecznego wyglądu elementu. Poprawne zrozumienie stylów wymaga zwrócenia uwagi na wszystkie atrybuty nawet jeśli nie są one wyraźnie widoczne na pierwszy rzut oka. W związku z tym kluczowe jest dokładne zapoznanie się z każdą definicją w stylu aby prawidłowo dopasować wygląd do specyfikacji.

Pytanie 26

Co umożliwiają w JavaScript metody i właściwości DOM?

A. pobieranie i modyfikowanie elementów strony w przeglądarce
B. manipulowanie łańcuchami zadeklarowanymi w kodzie
C. przesyłanie danych formularza wprost do bazy danych
D. operacje na zmiennych liczbowych
DOM dotyczy struktury strony w przeglądarce, a nie innych operacji. Przesyłanie danych formularza do bazy to rola kodu serwerowego (np. PHP), a nie DOM. Operacje na łańcuchach czy liczbach to ogólne działania na zmiennych, niezależne od DOM. DOM służy do pobierania i modyfikowania elementów strony.

Pytanie 27

Rodzaj zmiennej w języku JavaScript

A. ma miejsce poprzez przypisanie wartości.
B. jest tylko jeden rodzaj.
C. musi być zadeklarowany na początku skryptu.
D. nie istnieje.
Wiele osób uważa, że typ zmiennej w JavaScript powinien być z góry zadeklarowany, co jest niezgodne z jego zasadami działania. Twierdzenie, że typ zmiennej 'nie występuje', jest mylne, ponieważ każda wartość przypisana do zmiennej ma swój typ, nawet jeśli nie jest to jawnie określone. Ignorowanie tego faktu prowadzi do nieporozumień i błędów w kodzie. Kolejne nieprecyzyjne stwierdzenie, że 'jest tylko jeden' typ zmiennej, pomija kluczową cechę JavaScript jako języka dynamicznego, który obsługuje wiele typów, takich jak liczby, stringi, obiekty i tablice. Typy te mogą zmieniać się w trakcie działania programu, co czyni język bardzo elastycznym. Z kolei przekonanie, że zmienne muszą być zadeklarowane na początku skryptu, jest również błędne, ponieważ JavaScript pozwala na przypisywanie wartości do zmiennych w dowolnym miejscu w kodzie, co zwiększa jego dynamikę. Takie myślenie może prowadzić do nieefektywnego kodu, który jest trudniejszy w utrzymaniu oraz rozwijaniu. Ważne jest, aby zrozumieć zasady działające w tym języku, aby unikać typowych pułapek związanych z typowaniem zmiennych oraz właściwie wykorzystać zalety, jakie oferuje JavaScript.

Pytanie 28

W zaprezentowanym fragmencie kodu HTML zdefiniowano pole input, które można opisać jako

<input type="password" name="pole">
A. pokazuje znaki, które zostały do niego wprowadzone
B. ukrywa znaki, które zostały do niego wprowadzone
C. dopuszcza jedynie wprowadzanie wartości liczbowych
D. zawiera domyślny tekst „pole”
W formularzach HTML często spotykamy różne typy pól input, mające specyficzne zastosowania. Pole input z atrybutem type="text" pozwala na wpisywanie dowolnego tekstu, co sprawia, że jest ono bardziej elastyczne, ale nie zapewnia żadnej ochrony dla wprowadzanych danych. Problematyczne mogą być sytuacje, gdzie takie pole jest używane dla danych wrażliwych, ponieważ nie oferuje ono żadnego poziomu prywatności. Wprowadzenie domyślnego tekstu w polu input jest realizowane poprzez atrybut value, który ustawia początkową wartość, widoczną dla użytkownika. To rozwiązanie bywa mylone z placeholderem, który służy jako podpowiedź wewnątrz pola, ale nie jest domyślną wartością samego pola. Input o typie "number" w HTML ogranicza wprowadzane dane wyłącznie do liczb, co jest przydatne w przypadku pól wymagających wartości liczbowych, takich jak wiek czy ilość. Choć to ograniczenie jest zasadne i chroni przed błędami użytkownika, nie ma zastosowania w kontekście ochrony prywatności danych. Typ password natomiast nie tylko ogranicza wprowadzone dane, ale również ukrywa je przed wglądem, co jest kluczowe dla zapewnienia bezpieczeństwa. Tym samym, zrozumienie różnic w funkcjonalności i zastosowaniu tych różnych typów pól pozwala na lepsze projektowanie bezpiecznych i funkcjonalnych formularzy w aplikacjach webowych. Błędem jest zakładanie, że każde pole input domyślnie zabezpiecza dane, co często prowadzi do niepoprawnych implementacji, które mogą narazić użytkowników na ryzyko wycieku danych.

Pytanie 29

Która z definicji CSS określa formatowanie nagłówka h1: tekst nadkreślony, z odstępami między wyrazami 10 px i czerwonym kolorem tekstu?

h1{
  text-decoration: overline;
  word-spacing: 10px;
  color: red;
}                       A.

h1{
  text-decoration: overline;
  letter-spacing: 10px;
  color: red;
}                       B.

h1{
  text-transform: none;
  line-height: 10px;
  color: rgb(255,0,0);
}                       C.

h1{
  text-decoration: underline;
  line-height: 10px;
  color: rgb(255,0,0);
}                       D.
A. B.
B. A.
C. C.
D. D.
Niektóre z odpowiedzi, które wybrałeś, zawierają nieprawidłowe pojęcia i błędy w zrozumieniu CSS. Polecenie 'letter-spacing' stosowane w odpowiedzi B jest służy do określania odległości między literami, nie między wyrazami. Jest to różnica kluczowa, która ma duży wpływ na wygląd i czytelność tekstu. Odpowiedź C nie zawiera żadnego z wymaganych stylów, co pokazuje brak zrozumienia dla zadania. Używanie 'underline' zamiast 'overline', jak to miało miejsce w odpowiedzi D, prowadzi do podkreślenia tekstu zamiast nadkreślenia. To ilustruje błąd w zrozumieniu różnych stylów tekstu dostępnych w CSS. W codziennej praktyce, zrozumienie różnicy między tymi dwoma stylami jest kluczowe dla efektywnego formatowania tekstu. W CSS, jest ważne aby dokładnie rozumieć, co każde polecenie robi, oraz jak te polecenia wpływają na ostateczny wygląd strony.

Pytanie 30

Jakie będzie działanie podanych instrukcji JavaScript?

var elementy = document.getElementsByClassName("styl1");
  for(var i = 0; i < elementy.length; i++)
    elementy[i].style.fontWeight = "bolder";
A. Wyłącznie dla pierwszego elementu przypisanego do klasy styl1 zostanie nadany styl pogrubienia tekstu bolder
B. Dla wszystkich elementów na stronie zostanie zastosowany styl pogrubienia tekstu na bolder
C. Dla wszystkich elementów przypisanych do klasy styl1 zostanie nadany styl pogrubienia tekstu bolder
D. Jedynie dla elementu o id równym styl1 będzie przypisany styl pogrubienia tekstu na bolder
Jednym z często popełnianych błędów jest założenie że metoda getElementsByClassName przypisuje styl wszystkim elementom na stronie. W rzeczywistości zwraca ona tylko te elementy które posiadają określoną klasę styl1. To ogranicza zakres działania funkcji wyłącznie do wybranych elementów z przypisaną klasą co jest istotne dla zrozumienia selektorów w JavaScript. Innym nieporozumieniem może być przekonanie że metoda działa podobnie do selektorów CSS takich jak ID gdzie tylko jeden element jest modyfikowany. W rzeczywistości metoda ta operuje na kolekcji elementów a nie na pojedynczym elemencie. Dodatkowo częstym błędem jest myślenie że getElementsByClassName działa jak querySelector który mógłby zwrócić tylko pierwszy napotkany element. To nieporozumienie może prowadzić do błędnych założeń na temat zakresu i efektu działania skryptu. Warto również pamiętać że manipulacja stylami poprzez bezpośrednie modyfikowanie właściwości style elementu często jest bardziej wydajna niż modyfikowanie arkuszy stylów CSS zwłaszcza w kontekście dynamicznego działania skryptów na stronie internetowej. Kluczowe jest zrozumienie jak różne metody selekcji i manipulacji dokumentem wpływają na działanie i wydajność aplikacji webowych oraz unikanie myślenia że jedna metoda selekcji jest uniwersalna dla wszystkich celów i przypadków użycia co jest istotne w profesjonalnym podejściu do programowania w JavaScript i pracy z DOM.

Pytanie 31

W tabeli artykuly przeprowadzono poniższe operacje związane z uprawnieniami użytkownika jan.

GRANT ALL PRIVILEGES ON artykuły TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan

Jakie będą uprawnienia użytkownika jan po wykonaniu tych operacji?

A. aktualizowania informacji oraz przeglądania tabeli
B. przeglądania tabeli
C. tworzenia tabeli oraz aktualizowania danych w niej
D. tworzenia tabel oraz ich zapełniania danymi
Wybór odpowiedzi dotyczącej "aktualizowania danych i przeglądania tabeli" nie jest poprawny, ponieważ po wykonaniu polecenia REVOKE SELECT, UPDATE ON artykuly FROM jan, jan traci te konkretne uprawnienia. Warto zauważyć, że polecenie GRANT ALL PRIVILEGES przyznaje użytkownikowi szereg uprawnień, ale ich zakres można ograniczyć innymi poleceniami, jak REVOKE. Z tego powodu jan nie ma już możliwości przeglądania tabeli ani jej aktualizowania, co czyni tę odpowiedź nieaktualną. Często w praktyce zawodowej zdarza się, że nadawane są szerokie uprawnienia, a następnie w miarę potrzeby są one ograniczane, co może prowadzić do nieporozumień, jeśli nie zrozumie się działania tych poleceń. Kolejna niepoprawna odpowiedź, która sugeruje "przeglądanie tabeli", również jest błędna z tego samego powodu - jan nie ma takich uprawnień po REVOKE. Ostatnia z odpowiedzi, mówiąca o "tworzeniu tabeli i aktualizowaniu w niej danych", jest niepoprawna, ponieważ użytkownik jan nie ma już prawa aktualizacji danych po wycofaniu tych uprawnień. Zrozumienie mechanizmów zarządzania uprawnieniami jest kluczowe w pracy z bazami danych, aby uniknąć przypisania użytkownikom większych niż potrzebne przywilejów, co mogłoby prowadzić do nieautoryzowanego dostępu lub usunięcia danych.

Pytanie 32

Podana linia kodu została napisana w języku?

document.getElementById("paragraf1").innerHTML = wynik;
A. JavaScript
B. Python
C. C#
D. PHP
Odpowiedź JavaScript jest prawidłowa, ponieważ linia kodu, którą przedstawiono, wykorzystuje standardową metodę DOM (Document Object Model) do dynamicznej manipulacji zawartością HTML. W kodzie 'document.getElementById("paragraf1").innerHTML = wynik;' funkcja 'getElementById' służy do odnajdywania elementu HTML o identyfikatorze 'paragraf1'. Następnie, przypisanie wartości zmiennej 'wynik' do 'innerHTML' tego elementu zmienia jego zawartość tekstową. JavaScript jest głównym językiem do tworzenia interaktywnych stron internetowych i umożliwia programistom tworzenie dynamicznych funkcjonalności. Przykład praktycznego użycia to sytuacja, gdy na stronie internetowej chcemy wyświetlić obliczone wyniki w czasie rzeczywistym, np. w aplikacjach kalkulatorów online. W kontekście standardów branżowych, używanie DOM do manipulacji elementami HTML w JavaScript jest uważane za dobrą praktykę, a jego znajomość jest niezbędna dla każdego web developera.

Pytanie 33

W języku HTML sposób na zdefiniowanie kodowania polskich znaków to

A. atrybut znacznika <meta>
B. atrybut znacznika <p>
C. znacznik <charset>
D. znacznik <title>
Inne opcje, które rozważono jako poprawne, nie są odpowiednie do określenia kodowania znaków w HTML. Znacznik <charset> nie istnieje w standardzie HTML, co czyni go niewłaściwym wyborem. Kodowanie znaków nie jest definiowane przez atrybut znacznika <p>, który jest używany głównie do formatowania tekstu, a więc nie ma wpływu na kodowanie znaków. Warto również zauważyć, że znacznik <title> jest stosowany do nadania tytułu dokumentu, który pojawia się na karcie przeglądarki, ale nie ma on związku z kodowaniem znaków. Wybór odpowiedniego kodowania jest kluczowy dla zachowania integralności tekstu, a niewłaściwe przypisanie może prowadzić do problemów z wyświetlaniem znaków i błędów w interpretacji treści. Często użytkownicy mylnie zakładają, że inne znaczniki HTML mogą mieć wpływ na kodowanie, co prowadzi do nieporozumień. Dlatego istotne jest, aby być świadomym roli znacznika <meta> w kontekście kodowania znaków, zwłaszcza w przypadku języków z diakrytykami, takich jak język polski.

Pytanie 34

W systemie baz danych wykonano następujące operacje dotyczące uprawnień użytkownika adam: GRANT ALL PRIVILEGES ON klienci To adam REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam. Jakie prawa będzie miał użytkownik adam po zrealizowaniu tych operacji?

A. tworzenia tabeli klienci oraz wprowadzania do niej danych
B. aktualizowania danych oraz przeglądania tabeli klienci
C. usunięcia tabeli lub jej danych
D. przeglądania tabeli klienci i dodawania do niej rekordów
Użytkownik adam po wykonaniu poleceń GRANT i REVOKE nie będzie miał wszystkich przywilejów na tabeli klienci, co wymaga szczegółowej analizy. Gdy polecenie GRANT ALL PRIVILEGES ON klienci TO adam zostało wykonane, użytkownik zyskał pełne prawa do tabeli klienci, w tym usuwania, aktualizowania, wstawiania, a także przeglądania danych. Następnie, polecenie REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam odebrało mu możliwość przeglądania (SELECT), wstawiania (INSERT) oraz aktualizowania (UPDATE) danych w tej tabeli. Jednakże, usunięcie (DELETE) nie zostało wymienione w poleceniu REVOKE, co oznacza, że użytkownik adam wciąż ma prawo do usunięcia rekordów w tabeli klienci. To zjawisko jest zgodne z zasadami zarządzania uprawnieniami w systemach baz danych SQL, gdzie uprawnienia mogą być przyznawane i odbierane niezależnie, co pozwala na precyzyjne zarządzanie dostępem do danych. W praktyce, sytuacja ta może prowadzić do niebezpieczeństw związanych z bezpieczeństwem danych, dlatego ważne jest, aby administratorzy baz danych dokładnie analizowali przyznawane i odbierane uprawnienia.

Pytanie 35

W języku JavaScript stworzono funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Jak powinno wyglądać prawidłowe wywołanie tej funkcji oraz uzyskanie jej wyniku?

A. var wynik=liczba_max(a,b,c);
B. liczba_max(a,b,c)=wynik;
C. liczba_max(a,b,c);
D. liczba_max(a,b,c,wynik);
Odpowiedź "var wynik=liczba_max(a,b,c);" jest poprawna, ponieważ w ten sposób prawidłowo wywołujemy funkcję liczba_max, przekazując do niej trzy argumenty: a, b oraz c. Funkcja ta ma na celu zwrócenie maksymalnej wartości z przekazanych liczb, więc przypisanie jej wyniku do zmiennej wynik jest logicznym krokiem. W języku JavaScript, operator przypisania (=) pozwala na zdefiniowanie zmiennych, co w tym przypadku oznacza, że zmienna wynik będzie zawierać wartość zwróconą przez funkcję. Wartością tą jest największa liczba spośród a, b i c. Zastosowanie takiego podejścia jest zgodne z koncepcją programowania funkcjonalnego, gdzie funkcje są traktowane jako „pierwszej klasy obywateli”, co oznacza, że można je przypisywać do zmiennych. Dobrą praktyką w programowaniu jest również używanie czytelnych nazw zmiennych oraz funkcji, co ułatwia zrozumienie kodu przez inne osoby. Dodatkowo, warto zwrócić uwagę na typy danych przekazywanych do funkcji, aby uniknąć nieprzewidzianych błędów podczas obliczeń.

Pytanie 36

W każdej iteracji wartość bieżącego elementu tablicy jest przypisywana do zmiennej, a wskaźnik przesuwa się o jeden - aż do ostatniego elementu. Opis ten pasuje do instrukcji:

A.
foreach
B.
switch
C.
if
D.
next
Opisane zachowanie - „weź bieżący element, przypisz do zmiennej, przejdź do następnego, aż do końca” - to dokładnie pętla foreach. Iteruje ona po wszystkich elementach tablicy (lub kolekcji), w każdym obrocie udostępniając wartość (a opcjonalnie i klucz), np. foreach ($tab as $element) { echo $element; }. Programista nie musi sam pilnować indeksu ani warunku końca - pętla robi to automatycznie, co czyni ją wygodniejszą od klasycznego for przy przeglądaniu tablic. Dlatego opis pasuje do instrukcji foreach.

Pytanie 37

Którego narzędzia używa się do naprawy i optymalizacji bazy danych w MySQL?

A.
mysqlcheck
B.
mysqldump
C.
mysqlslap
D.
mysqladmin
Pozostałe narzędzia robią co innego. mysqldump tworzy kopię zapasową, mysqladmin administruje serwerem, a mysqlslap testuje wydajność. Naprawą i optymalizacją zajmuje się mysqlcheck.

Pytanie 38

W obiektowym programowaniu w języku JavaScript zapis: this.zawod w podanym kodzie oznacza

function Uczen(){
  this.imie = '';
  this.nazwisko = '';
  this.technik = 'informatyk';
  this.zawod = function() {
    return this.technik;
  };
}
A. klasę
B. właściwość
C. konstruktor
D. metodę
W programowaniu obiektowym w JavaScript słowo kluczowe this odnosi się do kontekstu bieżącego obiektu. W przedstawionym kodzie mamy do czynienia z funkcją konstrukcyjną Uczen, która jest używana do tworzenia nowych obiektów. Wewnątrz tej funkcji, this związuje się z nowo tworzonym obiektem. Metoda this.zawod, która jest zdefiniowana jako funkcja, odwołuje się do właściwości technik za pomocą słowa this i zwraca jej wartość. W JavaScript metody są funkcjami, które są przypisane do właściwości obiektu i które mogą być wywoływane jako część tego obiektu. Zapis this.zawod = function() { return this.technik; } definiuje metodę zawod w kontekście obiektu tworzonego przez konstruktor Uczen. Praktyczne zastosowanie tej metody umożliwia dostęp do wartości właściwości technik w sposób kontrolowany, co jest zgodne z dobrymi praktykami programowania obiektowego, gdzie enkapsulacja i zarządzanie dostępem do danych są kluczowymi elementami. Metody w JavaScript są podstawowym elementem umożliwiającym realizację zachowań obiektów dzięki czemu programy są bardziej modularne i łatwiejsze do utrzymania

Pytanie 39

Zadanie polecenia w języku SQL ALTER TABLE USA ... polega na

A. usunięciu tabeli USA
B. modyfikacji tabeli USA
C. zamianie starej tabeli USA
D. stworzeniu nowej tabeli USA
Odpowiedzi wskazujące na utworzenie nowej tabeli, usunięcie istniejącej tabeli oraz nadpisanie starej tabeli są błędne, ponieważ nie odpowiadają na rzeczywistą funkcję polecenia ALTER TABLE w SQL. Utworzenie nowej tabeli wymaga użycia polecenia CREATE TABLE, które definiuje nową strukturę danych w bazie, co jest zupełnie inną operacją niż modyfikacja istniejącej tabeli. Usunięcie tabeli jest realizowane przez polecenie DROP TABLE, a nie przez ALTER TABLE, co może prowadzić do katastrofalnych skutków, jeśli nie zostanie przeprowadzone świadome i ostrożne. Nadpisanie tabeli w kontekście SQL nie jest standardowym podejściem, gdyż w praktyce, aby 'nadpisać' dane, najpierw trzeba by usunąć starą tabelę, co wiąże się z ryzykiem utraty danych. Typowe błędy myślowe wynikają z mylenia tych podstawowych operacji i nieznajomości standardów SQL. Dlatego kluczowe jest zrozumienie różnic między podstawowymi poleceniami baz danych oraz ich rzeczywistych zastosowań w kontekście zarządzania danymi. Użycie właściwych poleceń w odpowiednich sytuacjach jest fundamentalne dla efektywności i bezpieczeństwa w pracy z bazami danych.

Pytanie 40

Programista stworzył pętlę w języku C++, która miała za zadanie obliczyć wynik 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż

int a = 1;
for (int i=1; i < 5; i++)
{
    a = a * i;
}
cout << a;
Ilustracja do pytania
A. zmienna i w pętli powinna być rozpoczynana od 0, a nie od 1
B. w drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5
C. zmienna i pętli powinna być zmniejszana, a nie zwiększana
D. zmienna a powinna być początkowo ustawiona na 0 zamiast 1
Zmienna a, odpowiedzialna za przechowywanie wyniku, nie powinna być inicjowana wartością 0, gdyż każdy wynik mnożenia przez 0 również daje 0, co zniweczyłoby cały proces obliczeniowy. Inicjalizacja zmiennej wartością 1 jest odpowiednia, ponieważ jest to element neutralny dla mnożenia. Pomysł inicjowania parametru i pętli wartością 0 zamiast 1 jest błędny, ponieważ obliczanie silni wymaga rozpoczęcia od wartości 1, nie 0. Rozpoczęcie od 0 jest odpowiednie dla iteracji związanych z indeksami tablic w wielu językach programowania, ale nie w przypadku obliczeń liczbowych, takich jak silnia. Dekrementacja parametru i zamiast inkrementacji w kontekście silni jest nieodpowiednia, ponieważ wymagałaby przebiegania pętli wstecz od większej wartości do 1, co komplikuje logikę i zwiększa ryzyko błędów logicznych. Takie podejście nie tylko odbiega od standardowych praktyk, ale również jest mniej czytelne i trudniejsze do zrozumienia oraz utrzymania. Dobre praktyki kodowania zalecają, aby pętla for była używana w sposób, który jest intuicyjnie zrozumiały i logiczny, co oznacza inkrementację w przypadku iteracji przez rosnące wartości. Ustalenie poprawnego warunku zakończenia pętli jest kluczowe dla otrzymania właściwego wyniku, a w przypadku obliczania silni, musi obejmować wszystkie liczby w zakresie od 1 do n. Zrozumienie tych podstawowych zasad jest niezbędne dla każdego programisty, aby unikać powszechnych błędów logicznych w algorytmach.