Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 20 kwietnia 2026 11:21
  • Data zakończenia: 20 kwietnia 2026 11:33

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Zdefiniowano bazę danych z tabelą sklepy, zawierającą pola: nazwa, ulica, miasto, branża. Aby odnaleźć wszystkie nazwy sklepów spożywczych znajdujących się wyłącznie we Wrocławiu, należy użyć kwerendy:

A. SELECT sklepy FROM branza='spożywczy' WHERE miasto='Wrocław';
B. SELECT nazwa FROM sklepy WHERE branza='spożywczy' OR miasto='Wrocław';
C. SELECT sklepy FROM nazwa WHERE branza='spożywczy' BETWEEN miasto='Wrocław';
D. SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto='Wrocław';
Żeby znaleźć wszystkie sklepy spożywcze tylko we Wrocławiu, stosujemy kwerendę SQL: SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto='Wrocław'; Ta kwerenda jest OK, bo używa klauzuli WHERE, żeby zawęzić wyniki. Klauzula AND jest bardzo ważna, bo tak naprawdę pozwala na spełnienie obu warunków naraz. Jeśli mamy tabelę 'sklepy', gdzie są różne dane o sklepach, to ta kwerenda zwróci tylko te, które pasują do obu kryteriów. Myślę, że to dobrze pokazuje, jak działa normalizacja baz danych, która mówi, żeby unikać duplikatów przez dokładne filtrowanie. Użycie AND gwarantuje, że dostaniemy wyniki, które są naprawdę zgodne z naszym zapytaniem. Na przykład jeśli w tabeli mamy 'Sklep A, ul. X, Wrocław, spożywczy' i 'Sklep B, ul. Y, Poznań, spożywczy', to nasza kwerenda odda tylko 'Sklep A'.

Pytanie 2

Wskaż polecenie SQL, które dodaje kolumnę miesiacSiewu do już istniejącej tabeli rośliny

A. UPDATE rosliny ADD miesiacSiewu int
B. ALTER TABLE rosliny ADD miesiacSiewu int
C. INSERT INTO rosliny Values (miesiacSiewu int)
D. CREATE TABLE rosliny {miesiacSiewu int}
Polecenie SQL 'ALTER TABLE rosliny ADD miesiacSiewu int;' to całkiem sensowny sposób na dodanie nowej kolumny do tabeli w bazie danych. Gdy chcemy coś zmieniać w tabeli, to 'ALTER TABLE' jest tym, czego szukamy, bo pozwala nam modyfikować tabelę bez jej usuwania. Dodając kolumnę 'miesiacSiewu', przechowamy dane typu całkowitego (int), co idealnie pasuje do wartości miesięcy. Dzięki temu poleceniu możemy łatwo dostosować strukturę bazy do potrzeb aplikacji. Po jego wykonaniu, w każdej chwili można już wrzucać dane do nowej kolumny. To by się na pewno przydało przy analizie danych dotyczących upraw. W SQL to w sumie standard, więc działa w większości systemów jak MySQL czy PostgreSQL.

Pytanie 3

Jakiego znacznika używa się do definiowania listy definicji w kodzie HTML?

A. <abbr>
B. <label>
C. <dl>
D. <td>
Znaczniki <td>, <abbr> i <label> nie są odpowiednie do definiowania list definicyjnych w HTML, ponieważ pełnią zupełnie inne funkcje. Znacznik <td> służy do definiowania komórek w tabelach, stanowiących podstawowy element struktury tabelarycznej. Użycie <td> w kontekście definicji terminów nie jest zasadne, ponieważ nie jest przeznaczony do przedstawiania pary termin-definicja, a jedynie do formatowania danych w tabelach. Z kolei znacznik <abbr> jest używany do oznaczania skrótów oraz akronimów, co pomaga widocznie wskazać ich rozwinięcie, ale nie ma nic wspólnego z tworzeniem list definicyjnych. Zastosowanie <abbr> w kontekście definicji terminów mogłoby wprowadzać w błąd, ponieważ nie spełnia on funkcji opisowej listy. Ostatni z wymienionych znaczników, <label>, służy do powiązania etykiet z elementami formularzy, co jest istotne dla dostępności i użyteczności form, ale także nie ma zastosowania w przypadku definicji. W efekcie, żadna z tych trzech odpowiedzi nie niesie ze sobą funkcji potrzebnej do tworzenia list definicyjnych i może wprowadzać użytkowników w błąd, co do ich rzeczywistego znaczenia oraz zastosowania.

Pytanie 4

W znaczniku <meta ...> w sekcji <meta ...> na stronie internetowej nie zamieszcza się informacji o

A. kodowaniu
B. autorze
C. automatycznym odświeżaniu
D. typie dokumentu
W znaczniku <meta> na stronach WWW umieszczane są różnorodne informacje, które pomagają w optymalizacji strony dla wyszukiwarek oraz w poprawie jej użyteczności. Jednym z elementów, które można umieścić w tym znaczniku, jest opis autora strony, co jest użyteczne w kontekście SEO, gdyż umożliwia przypisanie treści do konkretnej osoby. Innym ważnym elementem jest kodowanie, które wskazuje przeglądarce, jak interpretować znaki na stronie, co jest istotne dla poprawnego wyświetlania treści. Warto również zwrócić uwagę na automatyczne odświeżanie, które można ustawić za pomocą znacznika <meta http-equiv='refresh'>, co jest przydatne w przypadku stron, które wymagają cyklicznej aktualizacji treści. Z drugiej strony, informacja dotycząca typu dokumentu, jak na przykład tekst, HTML, czy XML, nie jest umieszczana w znaczniku <meta>. Zamiast tego, typ dokumentu jest określony w nagłówku HTTP poprzez dyrektywę Content-Type, co jest zgodne z wymaganiami protokołu HTTP i spełnia standardy W3C, które zalecają oddzielać metadane od informacji o typie dokumentu. Dlatego też, umieszczanie informacji o typie dokumentu w znaczniku <meta> jest niepoprawne i niezgodne z przyjętymi normami.

Pytanie 5

$x = mysql_query('SELECT * FROM mieszkanci'); if (!$x) echo "??????????????????????????????"; W podanym kodzie PHP, w miejscu znaków zapytania powinien wyświetlić się komunikat:

A. Nieprawidłowa nazwa bazy danych
B. Błąd w trakcie przetwarzania zapytania
C. Zapytania zakończono sukcesem
D. Złe hasło do bazy danych
Wybór niepoprawnej odpowiedzi na pytanie dotyczące komunikatu o błędzie może prowadzić do nieporozumień w kontekście działania kodu PHP. Odpowiedź wskazująca na 'Zapytania przetworzono pomyślnie' jest błędna, ponieważ jeśli mysql_query zwraca false, oznacza to, że zapytanie nie zostało wykonane poprawnie, a więc nie może być mowy o jego pomyślnym przetworzeniu. Jeżeli chodzi o 'Nieprawidłowa nazwa bazy', to również nie jest to prawidłowe stwierdzenie, ponieważ problem może wystąpić z innymi przyczynami, takimi jak błędna składnia zapytania. W przypadku, gdy nazwa bazy jest nieprawidłowa, zazwyczaj pojawia się inny rodzaj błędu. Wreszcie, 'Nieprawidłowe hasło do bazy danych' to kolejna niepoprawna odpowiedź; błąd autoryzacji związany z hasłem do bazy danych zazwyczaj skutkuje problemem z połączeniem, co nie jest bezpośrednio związane z zapytaniem SQL. Dlatego ważne jest, aby rozumieć, że problemy z połączeniem i błędy w zapytaniach SQL są różnymi kwestiami, które wymagają różnych podejść do diagnozowania oraz rozwiązywania.

Pytanie 6

Zgodnie z zasadami ACID, odnoszącymi się do realizacji transakcji, wymóg trwałości (ang. durability) oznacza, iż

A. transakcja może, w określonych okolicznościach, zostać podzielona na dwa niezależne etapy
B. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od zdarzeń, które nastąpią po jej zakończeniu
C. w sytuacji naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
D. podczas realizacji transakcji dane mogą być zmieniane przez inne transakcje
Pierwsza odpowiedź sugeruje, że transakcje mogą być dzielone na niezależne etapy, co odnosi się do fragmentacji transakcji lub transakcji rozproszonych. Jednakże, w kontekście ACID, trwałość nie odnosi się do sposobu wykonania transakcji, ale do zapewnienia, że zatwierdzone zmiany są trwałe. Druga odpowiedź wskazuje na możliwość modyfikacji danych przez inne transakcje podczas wykonywania jednej z nich. To również jest sprzeczne z zasadą izolacji (ang. isolation) w ramach ACID, która zapewnia, że transakcje są przeprowadzane w sposób, który uniemożliwia ich wzajemne zakłócanie. Tylko po zakończeniu transakcji, zmiany są widoczne dla innych transakcji. Ostatnia odpowiedź sugeruje, że w przypadku naruszenia spójności bazy danych, transakcja może usunąć tabele z kluczami obcymi. Taki mechanizm nie jest zgodny z wymaganiami ACID, ponieważ spójność jest jednym z fundamentalnych zasad, które powinny być zachowane, a usunięcie tabel naruszyłoby integralność danych. Dlatego odpowiedzi te nie spełniają definicji trwałości w kontekście ACID.

Pytanie 7

Tabela filmy zawiera klucz główny id oraz klucz obcy rezyserID. Tabela reżyserzy posiada klucz główny id. Obie tabele są powiązane relacją jeden do wielu, gdzie strona reżyserzy jest po stronie jeden, a filmy po stronie wiele. Aby wykonać kwerendę SELECT łączącą tabele filmy i reżyserzy, należy użyć zapisu

A. ... filmy JOIN rezyserzy ON filmy.rezyserID=rezyserzy.filmyID ...
B. ... filmy JOIN rezyserzy ON filmy.rezyserzyID=rezyserzy.id ...
C. ... filmy JOIN rezyserzy ON filmy.id=rezyserzy.filmyID ...
D. ... filmy JOIN rezyserzy ON filmy.id=rezyserzy.id ...
W odpowiedzi na to pytanie, prawidłowa instrukcja SQL do połączenia tabel 'filmy' i 'rezyserzy' brzmi: '... filmy JOIN rezyserzy ON filmy.rezyserID=rezyserzy.id ...'. W tym przypadku używamy klucza obcego 'rezyserID' z tabeli 'filmy', który wskazuje na klucz główny 'id' w tabeli 'rezyserzy'. Taka konstrukcja jest zgodna z zasadą relacyjnych baz danych, gdzie klucz obcy w jednej tabeli odwołuje się do klucza głównego w drugiej tabeli, co umożliwia powiązanie rekordów. Dzięki temu możemy uzyskać dane o filmach oraz ich reżyserach w jednym zapytaniu. Przykładowe zapytanie SELECT mogłoby wyglądać następująco: 'SELECT filmy.nazwa, rezyserzy.imie, rezyserzy.nazwisko FROM filmy JOIN rezyserzy ON filmy.rezyserID=rezyserzy.id;'. Warto pamiętać, że poprawne użycie kluczy jest kluczowe dla integritety danych w bazie, a także ułatwia późniejsze analizy i raportowanie. W kontekście standardów SQL, ta metoda łączenia tabel jest zgodna z normami ANSI SQL, które definiują struktury zapytań dla relacyjnych baz danych.

Pytanie 8

Jaką właściwość pola w tabeli powinno się ustawić, aby akceptowało ono wyłącznie dane liczbowe?

Ilustracja do pytania
A. Maskę wprowadzania
B. Tagi inteligentne
C. Wartość domyślną
D. Regułę sprawdzania poprawności
Tagi inteligentne są narzędziem umożliwiającym szybki dostęp do dodatkowych funkcji lub opcji związanych z danymi w polu. Nie mają jednak zdolności do ograniczania samej zawartości pola w kontekście dozwolonych znaków. Ich rola jest raczej wspomagająca użytkownika poprzez dodawanie kontekstowych opcji, ale nie dotyczą bezpośrednio walidacji danych. Wartość domyślna to z kolei predefiniowana wartość, jaką pole przyjmuje w momencie tworzenia nowego rekordu, jednak nie wpływa na to, jakie dane użytkownik może wprowadzić. Jest użyteczna do ułatwienia tworzenia danych, ale nie służy do ograniczania formatu wprowadzanych danych. Chociaż reguła sprawdzania poprawności może być stosowana do określania, jakie dane są uznawane za poprawne, jej główną rolą jest weryfikacja już wprowadzonych danych, a nie ich formatowanie w trakcie wprowadzania. Reguły te mogą informować o błędach po wprowadzeniu danych, lecz nie zapobiegają samemu wprowadzaniu błędnych danych. Wiele osób może mylnie sądzić, że reguła sprawdzania poprawności i maska wprowadzania pełnią podobne funkcje, jednak maska działa na poziomie interfejsu wprowadzania, wymuszając określony format w czasie rzeczywistym, podczas gdy reguła działa retrospektywnie. Zrozumienie tych różnic pozwala na odpowiednie zastosowanie tych narzędzi w projektowaniu baz danych, co skutkuje lepszym zarządzaniem jakością danych oraz zwiększeniem intuicyjności interfejsu użytkownika. Stosowanie masek wprowadzania jest szczególnie korzystne w kontekście aplikacji z dużą ilością danych liczbowych, gdzie precyzja jest kluczowa, a reguły poprawności lepiej sprawdzają się w kontekście logicznych zależności pomiędzy polami danych. To rozróżnienie jest kluczowe dla osiągnięcia wysokiej jakości danych i łatwej obsługi w systemach informatycznych.

Pytanie 9

W skrypcie PHP należy stworzyć cookie o nazwie "owoce", które przyjmie wartość "jabłko". Cookie powinno być dostępne przez jedną godzinę od momentu jego utworzenia. W tym celu w skrypcie PHP trzeba zastosować funkcję:

A. cookie("jabłko", "owoce", 3600);
B. setcookie("jabłko", "owoce", time()+3600);
C. setcookie("owoce", "jabłko", time()+3600);
D. cookie("owoce", "jabłko", 3600);
Istnieje kilka istotnych błędów koncepcyjnych w odpowiedziach, które nie są zgodne z poprawnym używaniem funkcji setcookie() w PHP. Zastosowanie cookie() zamiast setcookie() jest fundamentalnym błędem, ponieważ cookie() nie jest zdefiniowaną funkcją w PHP, co prowadzi do sytuacji, w której skrypt nie będzie działał. Dodatkowo, zamiana miejscami nazw cookie i wartości w dwóch odpowiedziach wprowadza w błąd. Właściwa składnia wymaga, aby pierwszym argumentem była nazwa cookie, a drugim jej wartość. Użycie time()+3600 tylko w kontekście konstrukcji wywołania setcookie() jest kluczowe, jako że określa czas wygaśnięcia cookies, co jest istotne dla zarządzania sesjami użytkowników. Utrata tego aspektu w innych opcjach skutkuje brakiem możliwości ograniczenia czasu ważności cookie, co może prowadzić do problemów z bezpieczeństwem i zarządzaniem danymi. Praktyka zarządzania cookies w PHP opiera się na ścisłym przestrzeganiu kolejności i konwencji, co jest niezbędne do poprawnego działania aplikacji internetowych. Niezrozumienie tych zasad może skutkować nieprawidłowym funkcjonowaniem aplikacji oraz potencjalnymi lukami w zabezpieczeniach.

Pytanie 10

Jakiego rodzaju oprogramowanie narzędziowe powinno być zainstalowane, aby umożliwić użytkownikowi przeprowadzanie operacji na zgromadzonych danych?

A. Obiektowy System Zarządzania Bazą Danych
B. System Zarządzania Bazą Danych (SZBD)
C. Klucz obcy
D. Otwarty mechanizm komunikacji bazy danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
System Zarządzania Bazą Danych, czyli SZBD, to coś, co naprawdę ma duże znaczenie w organizacjach, jeśli mówimy o danych. Dzięki niemu możemy działać z danymi znacznie sprawniej – przechowywać je, aktualizować, usuwać i robić wiele innych rzeczy. To taki pomost między tym, co robią użytkownicy, a samymi danymi. Przy takich systemach jak MySQL, PostgreSQL czy Oracle Database, możemy korzystać z super funkcji, takich jak transakcje czy zarządzanie użytkownikami. To nie tylko ułatwia życie, ale też pozwala na lepsze działania. No i nie zapominaj, że standardy jak SQL to klucz do komunikacji z bazami, niezależnie od technologii. Można też mówić o dobrych praktykach, jak robienie kopii zapasowych czy monitorowanie wydajności. Właściwie, wprowadzenie takiego systemu to fundament do skutecznego zarządzania danymi w każdej organizacji, więc warto się tym zająć.

Pytanie 11

Co uzyskujemy po wykonaniu zapytania SQL?

Ilustracja do pytania
A. średnią wszystkich ocen uczniów
B. całkowitą liczbę uczniów
C. suma ocen uczniów, których średnia ocen wynosi 5
D. liczbę uczniów, których średnia ocen wynosi 5
Zapytanie SQL SELECT count(*) FROM Uczniowie WHERE srednia = 5; wykorzystuje funkcję agregującą count(*), która służy do zliczania liczby wierszy spełniających określone warunki. W tym przypadku warunkiem jest srednia = 5 co oznacza że zapytanie zlicza wszystkich uczniów których średnia ocen wynosi dokładnie 5. Jest to powszechna praktyka w analizie danych gdzie często potrzebujemy określić liczebność pewnych grup danych na przykład aby przeanalizować ich rozkład lub porównać je z innymi grupami. W profesjonalnej bazie danych zliczanie wierszy na podstawie kryteriów jest standardem co umożliwia generowanie raportów i podejmowanie decyzji na podstawie danych. Użycie count(*) bez dodatkowych parametrów jest zgodne z dobrymi praktykami ponieważ jest wydajne i łatwe w interpretacji. W praktyce stosowanie tego typu zapytań jest nieodzowne w działach analizy danych zarządzania relacjami z klientami czy w edukacji gdzie analizujemy wyniki uczniów.

Pytanie 12

W skrypcie JavaScript użyto metody DOM getElementsByClassName('akapit'). Ta metoda odniesie się do akapitu

A. <p href="/akapit">akapit3</p>
B. <p>akapit</p>
C. <p id="akapit">akapit2</p>
D. <p class="akapit">akapit4</p>
Selekcja elementów DOM na podstawie ich klas jest kluczowym aspektem w pracy z JavaScript, jednak nie wszystkie odpowiedzi w tym teście są poprawnie skonstruowane. Odpowiedzi takie jak <p>akapit</p>, <p id="akapit">akapit2</p> oraz <p href="/akapit">akapit3</p> mają istotne braki w kontekście wykorzystania metody getElementsByClassName. Element <p>akapit</p> nie ma przypisanej klasy, co uniemożliwia jego selekcję przez tę metodę. Ważne jest, aby pamiętać, że getElementsByClassName wymaga, aby elementy miały przypisaną klasę, a nie aby były zdefiniowane przez inne atrybuty. Z kolei <p id="akapit">akapit2</p> posiada identyfikator, a nie klasę, co również nie umożliwia jego odnalezienia przez tę metodę. Identyfikatory są unikalne w kontekście dokumentu HTML i są bardziej odpowiednie do selekcji z wykorzystaniem metody getElementById. Ostatnia odpowiedź <p href="/akapit">akapit3</p> jest niewłaściwa, ponieważ atrybut href nie jest przypisany do elementów typu p, co jest technicznie błędne. Tego rodzaju błędy mogą wynikać z nieporozumień dotyczących struktury DOM i atrybutów HTML, co jest kluczowe do efektywnego programowania w JavaScript. Właściwe rozumienie różnic między klasami, identyfikatorami i innymi atrybutami jest fundamentalne dla skutecznego zarządzania elementami w kodzie skryptowym.

Pytanie 13

Atrybut, który definiuje lokalizację pliku graficznego w znaczniku <img>, to

A. alt
B. link
C. href
D. src
Wybór atrybutów 'alt', 'href' oraz 'link' w kontekście znacznika <img> jest błędny, ponieważ każdy z nich spełnia inną funkcję. Atrybut 'alt' nie jest atrybutem lokalizującym plik graficzny, lecz służy do dostarczania tekstu alternatywnego dla obrazów. Jest to istotne z punktu widzenia dostępności, ponieważ osoby korzystające z czytników ekranu mogą odczytać ten tekst w miejsce obrazka. Użycie 'href' jest również mylące, gdyż jest on stosowany w znaczniku <a> do określenia adresu URL, na który ma prowadzić link. Ostatni z wymienionych atrybutów, 'link', nie jest standardowym atrybutem w HTML, co sprawia, że jego zastosowanie w kontekście znacznika <img> jest całkowicie niepoprawne. Typowe błędy myślowe w tej kwestii często wynikają z mylenia funkcji różnych atrybutów w HTML oraz braku zrozumienia, jak poszczególne elementy są ze sobą powiązane. Aby poprawnie korzystać z HTML, ważne jest zrozumienie, które atrybuty są przeznaczone do konkretnego użytku oraz ich wpływ na SEO, dostępność oraz ogólną jakość kodu. W praktyce, odpowiednie użycie atrybutów ma kluczowe znaczenie dla doświadczeń użytkowników oraz wydajności witryny.

Pytanie 14

W aplikacji webowej komunikat powinien być wyświetlany jedynie w przypadku, gdy dany użytkownik odwiedza stronę po raz pierwszy. Którą funkcję PHP należy wykorzystać w tym celu?

A. mysqli_change_user
B. setcookie
C. define
D. session_destroy
Funkcja setcookie w PHP jest kluczowym narzędziem do zarządzania ciasteczkami. Ciasteczka są małymi plikami przechowywanymi na urządzeniu użytkownika, które mogą być wykorzystywane do różnych celów, w tym do śledzenia sesji użytkownika, personalizacji doświadczeń oraz, w tym przypadku, do kontrolowania wyświetlania komunikatów. Gdy użytkownik odwiedza stronę po raz pierwszy, można ustawić ciasteczko, które informuje system, że użytkownik jest nowym odwiedzającym. Na przykład, można ustawić ciasteczko o nazwie "first_visit" z wartością "1", co oznacza, że komunikat powinien się pojawić. Przy kolejnych wizytach, przed wyświetleniem komunikatu, system sprawdzi, czy to ciasteczko istnieje. Jeśli tak, komunikat nie zostanie wyświetlony. Przykładowa implementacja wyglądałaby tak: if (!isset($_COOKIE['first_visit'])) { setcookie('first_visit', '1', time() + 3600); // Ciasteczko ważne przez 1 godzinę echo 'Witamy na stronie!'; // Wyświetlenie komunikatu } Dzięki temu podejściu można efektywnie zarządzać doświadczeniem użytkownika i unikać zasypywania ich komunikatami przy każdej wizycie, co jest zgodne z najlepszymi praktykami UX.

Pytanie 15

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

A. while
B. for
C. foreach
D. do...while
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 16

Jakie zadanie wykonuje funkcja napisana w JavaScript?

function fun1(a,b)
{
    if ( a % 2 != 0 ) a++;
    for(n=a; n<=b; n+=2)
        document.write(n);
}
A. sprawdzenie, czy liczba a jest liczbą nieparzystą; jeśli tak, to jej wypisanie
B. wypisanie liczb parzystych w przedziale od a do b
C. zwrócenie parzystych wartości liczb od a do b
D. wypisanie wszystkich liczb w zakresie od a do b
Analiza niepoprawnych odpowiedzi wymaga zrozumienia, dlaczego poszczególne opcje nie pasują do działania funkcji fun1. W pierwszym przypadku, opcja dotycząca sprawdzania, czy liczba a jest nieparzysta i jej wypisywania, nie jest zgodna z logiką funkcji. Chociaż funkcja sprawdza, czy a jest nieparzysta, to nie wypisuje jej, lecz zmienia ją na parzystą, co wskazuje, że jej celem nie jest wypisywanie liczby a, ale przygotowanie jej do dalszej iteracji. Wypisanie wszystkich liczb z przedziału od a do b również nie jest prawidłowe, ponieważ funkcja nie iteruje po wszystkich liczbach, lecz wyłącznie po liczbach parzystych. Warto zauważyć, że funkcja pomija wszystkie liczby nieparzyste, co wyklucza tę opcję. Kolejna możliwa odpowiedź sugeruje zwracanie wartości parzystych liczb od a do b, jednak funkcja nie wykorzystuje żadnej procedury zwracania wartości, a jej konstrukcja wskazuje na bezpośrednie wypisywanie wyników, co wyklucza tę możliwość. Typowy błąd myślowy to niepoprawne rozumienie działania pętli for oraz operacji wypisywania danych w kontekście przeglądarki internetowej, co jest istotne z punktu widzenia dynamicznych aplikacji webowych. Zrozumienie, jak działa operator modulo i jego rola w wyznaczaniu parzystości liczb, jest kluczowe dla poprawnego interpretowania takich fragmentów kodu. Wskazane jest również, aby programiści byli świadomi różnicy między wypisywaniem a zwracaniem wyników, co często prowadzi do nieporozumień w kontekście funkcji i metod w JavaScript i innych językach programowania.

Pytanie 17

Na ilustracji przedstawiono strukturę bloków na stronie internetowej. Który z poniższych fragmentów CSS odpowiada takim ustawieniom? (Dla uproszczenia pominięto właściwości dotyczące koloru tła, wysokości oraz czcionki)

Ilustracja do pytania
A. #pierwszy { width: 30%; } #drugi { width: 70%; } #trzeci { width: 70%; } #czwarty { width: 100%; }
B. #pierwszy{float:left; width:30%;} #drugi {clear:both; width:70%;} #trzeci {clear:both; width:70%;} #czwarty {float:left; width:100%;}
C. #pierwszy {float:left; width:30%; } #drugi {clear:both; width:70%; } #trzeci {float:left; width:70%; } #czwarty {clear:both; }
D. #pierwszy {float:left; width:30%;} #drugi {float:left; width:70%;} #trzeci {float:left; width:70%;} #czwarty {clear:both; }
Inne odpowiedzi wykorzystują niewłaściwe zastosowanie właściwości float oraz clear, co skutkuje nieprawidłowym wyświetlaniem elementów na stronie. Użycie clear:both dla elementów, które powinny być wyświetlane w tej samej linii co inne elementy, powoduje, że te elementy są przesuwane do nowej linii, co nie jest zgodne z zamierzonym układem. Clear:both powinno być stosowane w celu zakończenia efektu float i rozpoczęcia nowego wiersza dla elementów, które mają być poniżej tych unoszących się. Ponadto brak użycia float przy elementach takich jak #drugi i #trzeci oznacza, że nie będą one ułożone w jednej linii, co jest kluczowe dla zaawansowanego rozplanowania przestrzeni na stronie. Niepoprawne użycie tych właściwości może prowadzić do niezgodności w różnych przeglądarkach, co jest częstym błędem w projektowaniu stron. Wiedza o tym, jak i kiedy stosować float oraz clear, jest niezbędna w tworzeniu funkcjonalnych i estetycznych layoutów. Zrozumienie właściwego użycia tych mechanizmów pozwala na unikanie problemów związanych z układem strony, szczególnie w kontekście responsywności i kompatybilności z różnymi urządzeniami. Dlatego ważne jest, aby dobrze zrozumieć zasady relacji między elementami, aby tworzyć bardziej złożone struktury stron internetowych, które są zgodne z obecnymi standardami web developmentu.

Pytanie 18

Jakie znaczniki należy zastosować, aby umieścić kod PHP w pliku z rozszerzeniem php?

A. <?php> ........ <php?>
B. <php> ......... </php>
C. <php .......... />
D. <?php .......... ?>
Odpowiedź <?php .......... ?> jest poprawna, ponieważ jest to standardowy sposób wstawiania kodu PHP do plików z rozszerzeniem .php. Znaczniki te pozwalają interpreterowi PHP rozpoznać, że zawarty w nich kod powinien być przetworzony przez silnik PHP, a nie przez przeglądarkę jako HTML. W praktyce, użycie tych znaczników umożliwia twórcom aplikacji webowych dynamiczne generowanie treści, operowanie na danych wejściowych oraz integrację z bazami danych. Przykład zastosowania może obejmować skrypty do przetwarzania formularzy, generowania stron internetowych w zależności od warunków lub wyświetlania danych z bazy danych. Standardowe znaczniki <?php ?> są również zalecane w dokumentacji PHP jako najlepsza praktyka, co zapewnia większą kompatybilność i zrozumiałość kodu, a także minimalizuje ryzyko błędów związanych z interpretacją kodu przez serwer. Warto również pamiętać, że znaczniki te powinny być stosowane z zachowaniem odpowiednich zasad formatowania, aby kod był czytelny i łatwy do utrzymania.

Pytanie 19

Za pomocą zapytania SQL trzeba uzyskać z bazy danych nazwiska pracowników, którzy pełnią funkcję kierownika, a ich wynagrodzenie mieści się w przedziale jednostronnie domkniętym (3000, 4000>. Która klauzula sprawdza ten warunek?

A. WHERE kierownik = true AND pensja => 3000 AND pensja <= 4000
B. WHERE kierownik = true AND pensja > 3000 AND pensja <= 4000
C. WHERE kierownik = true OR pensja > 3000 OR pensja <= 4000
D. WHERE kierownik = true AND pensja => 3000 OR pensja < 4000
Wszystkie pozostałe odpowiedzi zawierają błędne podejścia do formułowania odpowiednich warunków w zapytaniu SQL. Przykładowo, pierwsza z odpowiedzi sugeruje użycie operatora '=>', który jest nieprawidłowy, ponieważ w standardowym SQL powinien być użyty operator '>=', który oznacza 'większy lub równy'. Użycie tego operatora w tym kontekście powoduje, że zapytanie zwraca pracowników z pensją równą 3000, co jest niezgodne z wymaganym przedziałem. Kolejna odpowiedź wykorzystuje operator '>', co jest poprawne, ale połączenie go z 'pensja <= 4000' w sposób, w jaki to zostało sformułowane, również nie spełnia wymogu jednostronnego domknięcia przedziału. Oznacza to, że odpowiedź ta nie respektuje struktury zadania, które precyzuje, iż dolna granica pensji powinna być wyłączona, a górna włączona. Odpowiedzi oparte na operatorze 'OR' w przypadku niektórych odpowiedzi wprowadzają zamieszanie, ponieważ sugerują, że jakikolwiek spełniony warunek (kierownik lub pensja) wystarczy do zwrócenia pracownika. To jest fundamentalny błąd w logice zapytania, ponieważ nie uwzględnia wymogu, że oba warunki muszą być jednocześnie spełnione, aby właściwie zdefiniować grupę pracowników. Prawidłowe formułowanie zapytań SQL wymaga zrozumienia operatorów logicznych oraz zasad filtracji danych, co jest kluczowe dla skutecznej analizy i zarządzania danymi w bazach danych.

Pytanie 20

W języku JavaScript należy sformułować warunek, który będzie prawdziwy, gdy zmienna a będzie jakąkolwiek liczbą naturalną dodatnią (również nie zerową) lub gdy zmienna b będzie liczbą mieszczącą się w przedziale od 10 do 100, włącznie. Wyrażenie logiczne zastosowane w tym warunku powinno mieć formę

A. (a>0) && ((b>=10) && (b<=100))
B. (a>0) && ((b>=10) || (b<=100))
C. (a>0) || ((b>=10) || (b<=100))
D. (a>0) || ((b>=10) && (b<=100))
Odpowiedź (a>0) || ((b>=10) && (b<=100)) jest poprawna, ponieważ precyzyjnie odwzorowuje wymagane warunki. Warunek logiczny składa się z dwóch głównych części. Pierwsza część, (a>0), sprawdza, czy zmienna a jest liczbą naturalną dodatnią. Liczby naturalne dodatnie to liczby całkowite większe od zera, co oznacza, że a musi być większe od zera, aby warunek był spełniony. Druga część warunku, ((b>=10) && (b<=100)), wymaga, aby zmienna b znajdowała się w przedziale od 10 do 100, włącznie z tymi wartościami. Zastosowanie operatora && w tej części oznacza, że obie nierówności muszą być spełnione jednocześnie. Operator || łączy te dwie części, co oznacza, że wystarczy spełnić jeden z warunków, aby cały wyrażenie logiczne zwróciło prawdę. Jest to zgodne z zasadami programowania, które wskazują na konieczność precyzyjnego definiowania warunków w celu uniknięcia niejasności. W praktyce takie wyrażenie jest niezwykle przydatne w sytuacjach, gdy konieczne jest weryfikowanie wartości zmiennych przed ich dalszym przetwarzaniem, co pozwala na zwiększenie bezpieczeństwa i stabilności aplikacji.

Pytanie 21

Jak prawidłowo skomentować linię kodu w języku Java Script? Komentarz powinien być umieszczony po znakach //

x = Math.max(a,b,c); //
A. nieprawidłowe dane
B. w zmiennej x maksymalna wartość ze zmiennych a, b, c
C. wybór losowej wartości ze zmiennych a, b i c
D. w zmiennej x minimalna wartość ze zmiennych a, b, c
Komentarze w kodzie JavaScript są spoko, bo pomagają opisać różne rzeczy, które robi nasz kod. Używając // można dodać komentarz w jednej linii, co jest dosyć popularne w językach takich jak C, C++ czy Java. Ale wracając do Math.max, to naprawdę ważne jest, żeby zrozumieć jak ta funkcja działa. Ona zwraca największą wartość spośród argumentów, więc wybieranie losowej wartości z zmiennych a, b i c nie będzie działać. Math.max działa zawsze tak samo dla tych samych argumentów, więc nie można się spodziewać, że dobierze coś losowo. Żeby uzyskać minimalną wartość, trzeba by użyć Math.min, nie Math.max. Takie myślenie o losowości w kontekście Math.max to niezbyt trafne zrozumienie. Warto to podkreślić, bo błędne przekonania mogą prowadzić do błędów w kodzie i problemów w działaniu aplikacji. Programiści powinni mieć na uwadze, jak chodzi o funkcje, żeby unikać takich sytuacji, bo mogą się one rozrastać w większych projektach. Dobry komentarz w kodzie jest ważny, bo to wpływa na jego jakość i czytelność w dłuższym czasie.

Pytanie 22

Jakie polecenie należy zastosować, aby wysłać dane przy pomocy funkcji mysqli_query() w skrypcie PHP, który dodaje informacje z formularza umieszczonego na stronie internetowej do bazy danych?

A. SELECT
B. ALTER
C. UPDATE
D. INSERT INTO
Wybór innych opcji związany jest z nieporozumieniami co do funkcji kwerend SQL. ALTER jest stosowany do modyfikacji struktury istniejącej tabeli, co nie ma zastosowania w kontekście wstawiania danych. Użycie tej komendy sugeruje chęć zmiany kolumn, ich typów czy nazw, a nie dodawania nowych rekordów. UPDATE służy do aktualizacji istniejących danych w tabelach, co również nie jest związane z dodawaniem nowych wartości. Użytkownicy często mylą operacje aktualizacji z wstawieniem nowych danych, co może prowadzić do błędnych implementacji. SELECT to zapytanie używane do pobierania danych z bazy, a nie do ich wstawiania. Stosowanie SELECT w kontekście wstawiania danych może prowadzić do nieporozumień, zwłaszcza gdy użytkownicy próbują zrozumieć, jak działa interakcja z bazą danych. Typowe błędy myślowe to mylenie operacji na danych z operacjami na strukturze bazy, co może być szczególnie problematyczne w przypadku pracy z większymi aplikacjami, w których zarządzanie danymi jest kluczowe dla ich funkcjonowania. Aby skutecznie zarządzać danymi w bazach, kluczowe jest zrozumienie różnic między tymi operacjami oraz ich właściwe zastosowanie.

Pytanie 23

W HTML-u, aby połączyć w poziomie dwie sąsiednie komórki w danym wierszu tabeli, należy wykorzystać atrybut

A. rowspan
B. cellspacing
C. colspan
D. cellpadding
Wybór niewłaściwego atrybutu do scalania komórek w tabeli HTML wskazuje na pewne nieporozumienia dotyczące funkcji atrybutów. Atrybut cellpadding służy do określenia odstępu wewnętrznego między zawartością komórki a jej krawędzią, co nie ma żadnego wpływu na scalanie komórek. Z kolei atrybut cellspacing dotyczy odstępu pomiędzy samymi komórkami tabeli, również nie mając nic wspólnego z ich scalaniem. Zastosowanie tych atrybutów może poprawić estetykę tabeli, ale nie wpłynie na sposób, w jaki komórki są łączone. Z kolei atrybut rowspan, mimo że ma podobne zastosowanie do colspan, służy do łączenia komórek w pionie, a nie w poziomie. Użytkownicy często mylą te atrybuty, co prowadzi do błędnych założeń, że mogą one pełnić tę samą funkcję. Niezrozumienie różnicy między tymi atrybutami może prowadzić do niepoprawnych implementacji w praktyce, co z kolei wpływa na wydajność i czytelność stron internetowych. W kontekście projektowania stron internetowych ważne jest, aby dobrze rozumieć nie tylko działanie poszczególnych atrybutów, ale także ich zgodność z najlepszymi praktykami HTML i CSS, co zapewnia lepszą dostępność i doświadczenie użytkownika.

Pytanie 24

Podczas realizacji grafiki na stronę internetową konieczne jest wycięcie jedynie jej części. Jak nazywa się ta czynność?

A. łącznie warstw
B. zmiana rozmiaru
C. odwrócenie obrazu
D. kadrowanie
Kadrowanie to proces, który polega na przycinaniu obrazu w celu uzyskania określonego obszaru, eliminując zbędne fragmenty. W kontekście przygotowywania grafiki na stronę internetową, kadrowanie jest kluczowe, ponieważ pozwala na dostosowanie wymiarów obrazu do wymagań projektu, co jest szczególnie istotne w kontekście responsywnego designu. Przykładowo, jeśli mamy zdjęcie o wysokiej rozdzielczości, a chcemy je wykorzystać jako tło na stronie, kadrowanie pozwala nam wybrać najważniejszy fragment, który będzie najlepiej komponował się w ustalonym układzie. W praktyce kadrowanie nie tylko poprawia estetykę grafiki, ale także wpływa na jej wydajność, zmniejszając rozmiar pliku, co jest korzystne dla szybkości ładowania strony. Warto również zaznaczyć, że dobrym zwyczajem jest zachowanie proporcji obrazu podczas kadrowania, co można osiągnąć przy pomocy narzędzi takich jak Adobe Photoshop czy GIMP, które oferują funkcje do precyzyjnego wycinania i dostosowywania wymiarów.

Pytanie 25

W jaki sposób będzie uporządkowana lista stworzona z wszystkich kolumn tabeli uczniowie, obejmująca uczniów o średniej wyższej niż 5, która zostanie zwrócona jako rezultat przedstawionego zapytania?

SELECT *
FROM uczniowie
WHERE srednia > 5
ORDER BY klasa DESC;
A. Rosnaco według parametru srednia
B. Malejąco według parametru srednia
C. Rosnąca według parametru klasa
D. Malejąco według parametru klasa
Zapytanie SQL używa klauzuli ORDER BY klasa DESC co oznacza że wyniki będą posortowane malejąco według kolumny klasa Klauzula ORDER BY jest używana w języku SQL do sortowania wyników zapytania Użycie DESC oznacza że sortowanie będzie w porządku malejącym co w praktyce oznacza że najwyższe wartości będą na początku listy a najniższe na końcu To jest przydatne gdy chcemy uzyskać strukturę danych w której najważniejsze lub najbardziej istotne rekordy są prezentowane na samym początku na przykład gdy analizujemy dane w kontekście hierarchicznym lub priorytetowym W tym przypadku sortujemy malejąco według klasy co może być użyteczne na przykład gdy chcemy szybko zidentyfikować uczniów z wyższych klas którzy osiągają wysokie wyniki średnia powyżej 5 Dobre praktyki w SQL zalecają jasne i precyzyjne definiowanie kryteriów sortowania co ułatwia zrozumienie logiki zapytania oraz zapewnia jego przewidywalne działanie Jeśli dane wymagają częstego sortowania warto rozważyć optymalizację poprzez odpowiednie indeksy co może znacząco poprawić wydajność zapytań zwłaszcza w dużych zestawach danych

Pytanie 26

Głównym celem systemu CMS jest oddzielenie treści serwisu informacyjnego od jego wizualnej formy. Ten efekt osiągany jest przez generowanie zawartości

A. z plików HTML o stałej zawartości oraz wizualizacji z użyciem ustalonego szablonu
B. z plików HTML o stałej zawartości oraz wizualizacji przy pomocy technologii FLASH
C. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
D. z bazy danych oraz wizualizacji poprzez atrybuty HTML
Wybór odpowiedzi, która sugeruje wykorzystanie ze statycznych plików HTML, jest w istocie niezgodny z ideą systemów CMS. stosowanie statycznych plików HTML oznacza, że każda zmiana treści serwisu wymagałaby ręcznej edycji plików, co jest czasochłonne i podatne na błędy. Takie podejście ogranicza elastyczność i możliwość szybkiej aktualizacji treści. Z kolei odpowiedzi wskazujące na wykorzystanie technologii FLASH są przestarzałe, ponieważ Flash nie jest już wspierany przez większość nowoczesnych przeglądarek i nie spełnia wymogów dostępności, co stawia pod znakiem zapytania jego użyteczność w kontekście nowoczesnych stron internetowych. Ponadto, odpowiedzi sugerujące wykorzystanie atrybutów HTML do definiowania wyglądu również są niewłaściwe, ponieważ atrybuty HTML nie są wystarczające do efektywnego kształtowania i zarządzania stylem aplikacji. W praktyce do definiowania wyglądu stosuje się arkusze stylów CSS, a nie tylko atrybuty. W konsekwencji, błędne koncepcje opierające się na statycznych plikach czy przestarzałych technologiach prowadzą do sytuacji, w której serwis staje się trudny w utrzymaniu i mało elastyczny, co jest sprzeczne z głównymi zaletami systemów zarządzania treścią.

Pytanie 27

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

Ilustracja do pytania
A. geometriczne przekształcenie obiektu
B. narysowanie obiektu docelowego
C. animacja obiektu
D. zmiana warstwy 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 28

Jakie jest zadanie funkcji agregującej AVG w zapytaniu?

SELECT AVG(cena) FROM uslugi;
A. obliczyć średnią arytmetyczną wartości wszystkich usług
B. określić najwyższą wartość spośród cen usług
C. zliczyć całkowity koszt wszystkich usług
D. sprawdzić, ile usług znajduje się w tabeli
Funkcja AVG w SQL jest jednym z podstawowych narzędzi do analizy danych w bazach danych. Jej głównym celem jest obliczenie średniej arytmetycznej wartości w kolumnie, co jest kluczowe w raportowaniu i analizie danych. W zapytaniu SQL SELECT AVG(cena) FROM uslugi; funkcja AVG jest użyta, aby uzyskać średnią cenę wszystkich usług zapisanych w tabeli uslugi. Taka średnia jest przydatna w wielu kontekstach biznesowych na przykład przy tworzeniu raportów finansowych czy analizie kosztów w celu optymalizacji oferty. Średnia arytmetyczna pozwala zrozumieć przeciętną wartość danego zestawu danych co jest istotne w podejmowaniu decyzji. Standardy branżowe zalecają użycie funkcji AVG wszędzie tam gdzie potrzebna jest szybka i efektywna analiza danych liczbowych. Zrozumienie działania funkcji AVG jest kluczowe w pracy z bazami danych SQL gdyż pozwala na bardziej złożone analizy jak np. porównanie średnich z różnych okresów czasu lub segmentów rynku.

Pytanie 29

W CSS wprowadzono formatowanie

p > i {color: blue} 

Co oznacza, że tekst zapisany będzie w kolorze niebieskim

A. cały tekst akapitu bez względu na jego formatowanie
B. pochylony tekst akapitu
C. cały tekst nagłówków bez względu na ich formatowanie
D. pogrubiony tekst akapitu
Przy analizowaniu dostępnych odpowiedzi, warto zauważyć, że niektóre z nich opierają się na błędnych założeniach dotyczących działania selektorów CSS. Odpowiedź, która sugeruje, że <code>p > i</code> dotyczy całego tekstu paragrafu, jest nieprawidłowa, ponieważ selektor w tym przypadku odnosi się wyłącznie do elementów <code><i></code>, które są bezpośrednimi dziećmi elementu <code><p></code>. W CSS, operator > wskazuje na relację rodzica do dziecka, co oznacza, że tylko bezpośrednie potomki będą podlegały zastosowanemu stylowi. W związku z tym, odpowiedzi, które mówią o całym tekście paragrafu, nie uwzględniają tej kluczowej zasady działania CSS. Podobnie, odpowiedź mówiąca o pogrubionym tekście również jest mylna - stylizacja <code>color: blue</code> nie wpływa na grubość tekstu, a jedynie na kolor, co ilustruje nieporozumienie związane z właściwościami CSS. Ostatecznie, koncepcje dotyczące nagłówków w odpowiedzi również są niedokładne, ponieważ w analizowanym selektorze nie ma odniesienia do jakiegokolwiek nagłówka. Warto zatem pamiętać, że CSS wymaga precyzyjnego rozumienia struktury dokumentu oraz zastosowania odpowiednich selektorów, aby móc skutecznie modyfikować style elementów HTML.

Pytanie 30

Który z poniższych kodów XHTML sformatuje tekst zgodnie z podanym przykładem?

Ala ma kota
a kot ma Alę

A. <p>Ala ma <b>kota</b> <br/> a <b>kot</b> ma Alę</p>
B. <p>Ala ma <b>kota</b> <br/> a <i>kot</i> ma Alę</p>
C. <p>Ala ma <b>kota</i><br/> a <b>kot</b> ma Alę</p>
D. <p>Ala ma <b>kota <br /> a <i>kot</i> ma Alę</p>
Odpowiedź <p>Ala ma <b>kota</b> <br/> a <i>kot</i> ma Alę</p> jest poprawna, ponieważ zgodnie z zasadami XHTML, użycie znaczników <b> i <i> do formatowania tekstu jest odpowiednie; <b> stosowany jest do wyróżniania tekstu pogrubionego, a <i> do kursywy. W tej odpowiedzi zastosowano również poprawny znacznik <br/>, który jest samodzielnym znacznikiem i nie wymaga zamknięcia w parze. Zgodnie z dobrymi praktykami, kod XHTML powinien być poprawnie sformatowany, a każdy otwierający znacznik powinien mieć odpowiadający mu zamykający znacznik, chyba że jest to znacznik samodzielny, jak <br/>. Warto zaznaczyć, że XHTML wymaga również, aby wszystkie atrybuty były zapisane w formacie małych liter, co zostało spełnione w tej odpowiedzi. Przykład zastosowania tej wiedzy można znaleźć w tworzeniu stron internetowych, gdzie poprawne sformatowanie kodu HTML lub XHTML jest kluczowe dla prawidłowego wyświetlania treści w przeglądarkach.

Pytanie 31

O obiekcie zdefiniowanym w języku JavaScript można stwierdzić, że zawiera

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: functon() { … }
}
A. dwie właściwości oraz jedną metodę
B. trzy metody
C. dwie metody oraz jedną właściwość
D. trzy właściwości
Analizując niepoprawne odpowiedzi, można zauważyć typowe błędy w zrozumieniu struktury obiektów w JavaScript. Odpowiedzi sugerujące, że obiekt ma trzy właściwości lub trzy metody, zbudowane są na błędnych założeniach dotyczących struktury obiektu. Obiekt `obiekt1` wyraźnie definiuje tylko dwie właściwości: `x` i `y`, co jest kluczowe dla zrozumienia, czym są właściwości w kontekście obiektów. Właściwości są to dane przechowywane w obiekcie, podczas gdy metody to funkcje przynależące do obiektu. Stwierdzenie, że obiekt ma trzy metody, błędnie interpretuje funkcję `wsp` jako wiele metod, podczas gdy w rzeczywistości jest to tylko jedna funkcja, a więc jedna metoda. Takie nieporozumienia mogą prowadzić do trudności w projektowaniu obiektów oraz ich późniejszym użytkowaniu. W praktyce, umiejętność prawidłowego identyfikowania właściwości i metod obiektów jest istotna w kontekście programowania obiektowego, które jest kluczowym paradygmatem w JavaScript. Niezrozumienie tych podstaw może skutkować błędami w kodzie, które są trudne do zdiagnozowania, zwłaszcza w większych projektach, gdzie struktura obiektów może być złożona. W związku z tym, zaleca się dokładne zapoznanie się z zasadami definiowania obiektów oraz ich składników, aby uniknąć takich nieporozumień w przyszłości.

Pytanie 32

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

A. usuwania białych znaków lub innych określonych w parametrze znaków z obu końców tekstu
B. porównywania dwóch tekstów i wyświetlania ich wspólnej części
C. redukcji tekstu o liczbę znaków określoną w parametrze
D. podawania długości tekstu
Wybór niewłaściwej odpowiedzi może wynikać z pomylenia funkcji <i>trim</i> z innymi funkcjami w PHP, które pełnią różne role. Na przykład, porównywanie dwóch napisów i wypisywanie części wspólnej nie jest funkcjonalnością dostępną w <i>trim</i>, lecz w funkcjach takich jak <i>similar_text</i> lub używając operatorów porównania. Dodatkowo, funkcja <i>strlen</i> jest odpowiedzialna za podawanie długości napisu, co również nie ma związku z działaniem <i>trim</i>. Zmniejszanie napisu o wskazaną liczbę znaków można zrealizować za pomocą funkcji takich jak <i>substr</i>, a nie <i>trim</i>, która koncentruje się jedynie na usuwaniu nadmiarowych znaków z końców. Te pomyłki często wynikają z niepełnego zrozumienia funkcji dostępnych w PHP oraz ich specyfiki w kontekście obróbki tekstu. Aby uniknąć takich nieporozumień, warto dokładnie zapoznać się z dokumentacją PHP oraz zwracać uwagę na kontekst i zastosowanie każdej funkcji. Zrozumienie, jakie zadania są przeznaczone dla poszczególnych funkcji, jest kluczowe dla efektywnego programowania oraz unikania błędów w kodzie.

Pytanie 33

W kodzie HTML zdefiniowano formularz, który wysyła dane do pliku formularz.php. Po naciśnięciu przycisku typu submit przeglądarka przechodzi do poniższego adresu:

../formularz.php?imie=Anna&nazwisko=Kowalska
Na podstawie podanego adresu można stwierdzić, że dane do pliku formularz.php zostały przesłane metodą:
A. GET
B. SESSION
C. COOKIE
D. POST
Wybrana przez ciebie odpowiedź jest nieprawidłowa. Wybrałeś metodę POST, COOKIE lub SESSION jako sposób przesyłania danych do pliku formularz.php, ale na podstawie widocznego adresu URL, który zawiera parametry przekazane po znaku zapytania (?), odpowiedź jest GET. Metoda POST jest również popularna w przesyłaniu danych, ale różni się od GET tym, że dane są przesyłane w ciele żądania, nie są widoczne w pasku adresu. COOKIE to mechanizm, który pozwala na przechowywanie danych na stronie klienta, nie jest to metoda przesyłania danych do serwera. SESSION to technika, która pozwala na przechowywanie informacji po stronie serwera, która jest powiązana z konkretnym użytkownikiem za pomocą identyfikatora sesji. Żadna z tych technik (POST, COOKIE, SESSION) nie powoduje, że parametry są widoczne w adresie URL, co jest charakterystyczne dla metody GET.

Pytanie 34

Przedstawiony serwis internetowy służy do walidacji

Ilustracja do pytania
A. dokumentów HTML.
B. arkuszy stylów.
C. bazy danych SQL.
D. skryptów JavaScript.
Wygląda na to, że wybrałeś niepoprawną odpowiedź. Aby poprawnie odpowiedzieć na to pytanie, musisz zrozumieć funkcję różnych technologii internetowych i jak są one walidowane. Dokumenty HTML, bazy danych SQL i skrypty JavaScript są częściami składowymi stron internetowych, ale walidacja każdego z nich wymaga różnych narzędzi. Na przykład, dokumenty HTML są walidowane za pomocą narzędzi takich jak 'HTML Validation Service', podczas gdy bazy danych SQL i skrypty JavaScript są sprawdzane za pomocą różnych narzędzi do debugowania i testowania. Wybranie jednej z tych opcji sugeruje, że nie zrozumiałeś, do czego służy serwis 'CSS Validation Service'. Ten konkretny serwis jest stworzony do walidacji arkuszy stylów CSS, nie do walidacji dokumentów HTML, baz danych SQL czy skryptów JavaScript. Pamiętaj, że każda technologia webowa ma swoje specificzne narzędzia do walidacji, co umożliwia tworzenie zgodnych, efektywnych i bezbłędnych stron internetowych.

Pytanie 35

W systemach baz danych, aby przedstawić dane spełniające określone kryteria, należy stworzyć

A. relację
B. raport
C. formularz
D. makropolecenie
Relacja w kontekście baz danych odnosi się do sposobu, w jaki dane są ze sobą powiązane w modelu relacyjnym. Chociaż relacje są fundamentalnym elementem baz danych, nie pełnią one funkcji prezentacji danych w formie zrozumiałej dla użytkownika. Relacje definiują struktury i związki pomiędzy różnymi tabelami, ale nie są narzędziem do generowania i prezentacji raportów. W praktyce to, co można zrealizować za pomocą relacji, to zapewnienie integralności danych oraz umożliwienie efektywnego dostępu do informacji. Formularze, z kolei, służą głównie do zbierania danych od użytkowników, a nie do ich analizy czy prezentacji w czytelnej formie. Zazwyczaj traktuje się je jako interfejsy, które wspierają wprowadzanie danych do bazy, ale nie są odpowiednie do skomponowania raportu. Makropolecenia natomiast, to zestawy instrukcji wykonywanych automatycznie, które mogą wspierać różne zadania, ale nie zastępują one tworzenia raportów, które są kluczowe dla analizy danych. Typowe błędy w myśleniu polegają na myleniu funkcji związanych z relacjami, formularzami czy makropoleceniami z potrzebą generowania raportów. Każde z tych narzędzi pełni inną rolę i nie należy ich stosować zamiennie.

Pytanie 36

Przedstawiony fragment kodu ilustruje działanie

Ilustracja do pytania
A. podjęcia decyzji
B. wykorzystania zdefiniowanej procedury lub funkcji
C. prezentacji danych
D. pozyskiwania danych
Blok przedstawiony na rysunku to romb, który w diagramach przepływu danych reprezentuje punkt decyzyjny. W kontekście programowania i modelowania procesów biznesowych, zastosowanie takich punktów jest kluczowe dla podejmowania decyzji na podstawie warunków logicznych. Na przykład, w algorytmach komputerowych romb służy do określenia, którą ścieżką proces powinien się dalej przemieszczać, zależnie od spełnienia określonych warunków. W praktyce, może to być na przykład wybór między dwiema różnymi akcjami, jak wysłanie e-maila lub zapis do bazy danych w zależności od wartości wprowadzonej przez użytkownika. Zastosowanie rombu zgodnie z zasadami BPMN (Business Process Model and Notation) oraz UML (Unified Modeling Language) pozwala na precyzyjne i czytelne modelowanie złożonych procesów, co jest kluczowe w projektowaniu systemów informatycznych i optymalizacji procesów biznesowych.

Pytanie 37

W języku CSS przedstawione w ramce stylizacje będą miały następujące zastosowanie. Kolorem czerwonym zostanie zapisany

h1 i {color: red;}
A. kompletny tekst nagłówka pierwszego stopnia oraz pochylony tekst akapitu
B. pełny tekst nagłówka pierwszego stopnia oraz cały tekst pochylony, bez względu na jego lokalizację na stronie
C. wyłącznie tekst pochylony we wszystkich nagłówkach
D. jedynie tekst pochylony w nagłówku pierwszego stopnia
W przypadku analizowania podejść do formatowania w CSS, ważne jest zrozumienie, jak działają selektory. W analizowanym kodzie CSS 'h1 i' oznacza selektor złożony, który odnosi się wyłącznie do elementu <i> zagnieżdżonego w <h1>. Nie jest prawdą, że selektor ten wpłynie na wszystkie poziomy nagłówków, ponieważ jest on ograniczony do <h1>. Błędne rozumienie struktury selektorów często prowadzi do niewłaściwego stosowania stylów, co jest powszechnym problemem wśród początkujących. Również stwierdzenie, że cały tekst nagłówka <h1> będzie czerwony jest błędne, ponieważ selektor 'h1 i' dotyczy tylko zagnieżdżonego tekstu pochylonego. Wreszcie, twierdzenie, że cały tekst pochylony na stronie zmieni kolor jest błędne, ponieważ selektor jest specyficzny dla kontekstu nagłówka <h1>. Takie błędy mogą prowadzić do nieprzewidywalnych wyników i trudności w utrzymaniu spójności stylistycznej na stronie, dlatego zrozumienie i odpowiednie stosowanie selektorów złożonych i zagnieżdżonych jest kluczowe w profesjonalnym projektowaniu stron internetowych.

Pytanie 38

Co to jest AJAX?

A. Technologia umożliwiająca asynchroniczne przesyłanie danych między klientem a serwerem bez przeładowania strony
B. Język programowania służący do tworzenia stron internetowych
C. Biblioteka JavaScript do obsługi animacji i efektów wizualnych
D. System zarządzania bazą danych używany do przechowywania i manipulacji danymi
Wiele osób mylnie sądzi, że AJAX to język programowania. W rzeczywistości AJAX to technologia, która w połączeniu z JavaScript, HTML i CSS pozwala na tworzenie dynamicznych stron internetowych. JavaScript jest rzeczywiście językiem programowania, ale AJAX to raczej technika, która wykorzystuje jego możliwości. Kolejny błąd to utożsamianie AJAX z biblioteką do animacji. Podczas gdy biblioteki JavaScript, jak jQuery, mogą wspierać AJAX i oferować efekty wizualne, same animacje nie są związane z przesyłaniem danych. Z kolei system zarządzania bazą danych to całkiem odmienna dziedzina. Bazy danych są używane do przechowywania i zarządzania danymi, ale AJAX nie jest narzędziem do tego celu. Często błędnie kojarzy się to ze względu na fakt, że AJAX może pobierać dane z serwera, który z kolei korzysta z bazy danych. Takie myślenie prowadzi do nieprawidłowych wniosków, ponieważ AJAX jest jedynie sposobem komunikacji między klientem a serwerem, a nie narzędziem do zarządzania danymi. Kluczem do zrozumienia AJAX jest jego rola w poprawie interakcji użytkownika z aplikacją webową poprzez asynchroniczne przesyłanie danych.

Pytanie 39

<script>
  var imiona = ["Ala", "Ola", "Ela", ""];
  tymczasowa=imiona.length;
</script>
Przedstawiony kod JavaScript powoduje przypisanie do zmiennej tymczasowa wartości:
A. 3
B. 9
C. 4
D. 1
W tym fragmencie kodu tworzona jest tablica `imiona` z czterema elementami: "Ala", "Ola", "Ela" oraz pusty łańcuch znaków `""`. W JavaScript właściwość `.length` tablicy zwraca liczbę elementów w tablicy, a nie długość tekstu, ani sumę długości napisów. Niezależnie od tego, że ostatni element jest pustym stringiem, on nadal jest pełnoprawnym elementem tablicy. Dlatego `imiona.length` zwraca wartość 4, która następnie jest przypisywana do zmiennej `tymczasowa`. Moim zdaniem warto zapamiętać jedną prostą zasadę: dla obiektów typu Array w JavaScript `.length` oznacza ilość elementów, a dla stringów `.length` oznacza ilość znaków w napisie. To jest częste źródło pomyłek, szczególnie na początku nauki. Gdybyśmy napisali `"Ala".length`, wtedy dostalibyśmy 3, bo napis ma trzy znaki. Ale `imiona.length` patrzy tylko na to, ile pozycji ma tablica, więc wynik to 4. W praktyce `.length` jest bardzo często używane w pętlach, np. `for (var i = 0; i < imiona.length; i++) { ... }`, żeby przejść po wszystkich elementach tablicy. Dobrą praktyką jest też świadome operowanie na długości tablicy, bo w JavaScript można ją zmienić: ustawienie `imiona.length = 2` przytnie tablicę do dwóch elementów, a ustawienie większej wartości doda puste miejsca (tzw. `empty slots`). W nowoczesnym kodzie warto też pamiętać o metodach takich jak `forEach`, `map`, `filter`, które ukrywają bezpośrednią pracę z `.length`, ale nadal działają na tej samej koncepcji liczby elementów w tablicy. Z mojego doświadczenia dokładne rozumienie, co zwraca `.length` w różnych typach danych, bardzo ułatwia debugowanie i pisanie czytelnego kodu.

Pytanie 40

W języku skryptowym JavaScript operatory: || oraz && należą do grupy operatorów

A. bitowych.
B. logicznych.
C. arytmetycznych.
D. przypisania.
Operatory || oraz && w JavaScript to klasyczne operatory logiczne. Działają na wartościach, które można zinterpretować jako prawdę lub fałsz (tzw. wartości truthy i falsy) i zwracają wynik wyrażenia logicznego. && oznacza „i” logiczne – całe wyrażenie jest prawdziwe tylko wtedy, gdy oba operandy są traktowane jako prawdziwe. || oznacza „lub” logiczne – wystarczy, że jeden z operandów jest prawdziwy, żeby całe wyrażenie było uznane za prawdę. W praktyce bardzo często wykorzystuje się je w instrukcjach warunkowych, np.: if (isLoggedIn && isAdmin) { … } albo if (isMobile || isTablet) { … }. W JavaScript te operatory mają jeszcze jedną, moim zdaniem bardzo przydatną cechę: nie zwracają po prostu true/false, tylko konkretną wartość jednego z operandów. Na przykład: const name = userName || "Gość"; – jeśli userName jest wartością „falsy” (np. pusty string, null, undefined), to do name trafi "Gość". To jest tzw. krótkie spięcie (short-circuit evaluation): przy operatorze &&, jeśli pierwszy operand jest falsy, drugi nie jest już w ogóle obliczany; przy ||, jeśli pierwszy jest truthy, drugi też nie jest sprawdzany. W dobrych praktykach front-endu wykorzystuje się to do prostego ustawiania wartości domyślnych, zabezpieczania wywołań funkcji (np. callback && callback()) oraz budowania bardziej czytelnych warunków. Warto też pamiętać o różnicy między operatorami logicznymi (&&, ||, !) a porównania (===, !==), bo to są różne grupy operatorów, chociaż często używa się ich razem w tych samych warunkach. Z mojego doświadczenia, świadome używanie tych operatorów logicznych bardzo upraszcza kod i zmniejsza liczbę if-ów rozrzuconych po skryptach.