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: 22 kwietnia 2026 09:33
  • Data zakończenia: 22 kwietnia 2026 09:35

Egzamin niezdany

Wynik: 9/40 punktów (22,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Zaprezentowano tabelę stworzoną za pomocą kodu HTML, bez zastosowania stylów CSS. Który z poniższych fragmentów kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. C
B. A
C. B
D. D
W przypadku odpowiedzi A zastosowano znaczniki <td> co jest błędną praktyką dla nagłówków tabeli. Znaczniki <td> służą do definiowania zwykłych komórek danych a nie komórek nagłówkowych. Użycie <td> w nagłówkach pozbawia tabelę odpowiednich walorów semantycznych co utrudnia jej późniejsze stylizowanie oraz dostępność. W odpowiedzi B użyto znacznika <i> jako części nagłówków co jest nieoptymalne ponieważ znacznik ten semantycznie oznacza zmianę tonu lub stylu i nie jest przeznaczony do formatowania komórek tabeli. Oznacza to że formatowanie takie może być odebrane jako nieodpowiednie przez czytniki ekranowe co dodatkowo wpływa na dostępność. Natomiast w odpowiedzi C zastosowano znacznik <center> wewnątrz <td> co jest przestarzałą techniką HTML oraz nie jest zalecane we współczesnym tworzeniu stron internetowych. Znacznik <center> został zdeprecjonowany w HTML 4.01 i nie powinien być używany ponieważ jego funkcjonalność można osiągnąć za pomocą CSS. Wszystkie te podejścia pomijają aspekty semantycznego tworzenia stron internetowych co jest kluczowe dla utrzymania prawidłowej struktury dokumentu oraz dostępności dla użytkowników z różnymi potrzebami.

Pytanie 2

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Barwienie.
B. Progowanie.
C. Krzywe.
D. Inwersja.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 3

Istnieje tabela o nazwie wycieczki z kolumnami: nazwa, cena oraz miejsca (reprezentujące liczbę dostępnych miejsc). Aby wyświetlić tylko nazwy wycieczek, których cena jest mniejsza od 2000 zł oraz mają co najmniej cztery wolne miejsca, należy użyć zapytania

A. SELECT * FROM wycieczki WHERE cena < 2000 OR miejsca > 3
B. SELECT * FROM wycieczki WHERE cena < 2000 AND miejsca > 4
C. SELECT nazwa FROM wycieczki WHERE cena < 2000 OR miejsca > 4
D. SELECT nazwa FROM wycieczki WHERE cena < 2000 AND miejsca > 3
Wszystkie inne odpowiedzi są po prostu błędne i prowadzą do złych wyników w kontekście pytania. Na przykład zapytanie z operatorem OR, czyli 'SELECT nazwa FROM wycieczki WHERE cena < 2000 OR miejsca > 4', pozwala na zwrócenie wycieczek, które spełniają tylko jeden z warunków. To oznacza, że mogą być pokazywane wycieczki droższe, które mają wystarczająco dużo miejsc, co jest niezgodne z wymaganiami. Jeszcze innym błędnym przypadkiem jest użycie operatora AND w 'SELECT nazwa FROM wycieczki WHERE cena < 2000 AND miejsca > 3', gdzie ten drugi warunek jest zbyt ogólny. Powinien precyzować, że miejsc musi być co najmniej cztery, a nie tylko więcej niż trzy. Co więcej, zapytanie 'SELECT * FROM wycieczki WHERE cena < 2000 AND miejsca > 4' zwróci wszystkie kolumny, a nie tylko nazwy wycieczek, co też nie jest tym, czego potrzebujemy. Typowe błędy w myśleniu, które prowadzą do tych błędnych wniosków, to złe łączenie warunków i niewłaściwe zrozumienie, co jest ważne w kontekście wymagań. Aby dobrze pisać zapytania SQL, kluczowe jest zrozumienie struktury danych i logiki, która pozwala na wybranie odpowiednich rekordów.

Pytanie 4

Jakie imiona spełniają warunek klauzuli LIKE w poniższym zapytaniu: SELECT imię FROM mieszkańcy WHERE imię LIKE '_r%';?

A. Krzysztof, Krystyna, Romuald
B. Arieta, Krzysztof, Krystyna, Tristan
C. Gerald, Jarosław, Marek, Tamara
D. Rafał, Rebeka, Renata, Roksana
Odpowiedź "Arieta, Krzysztof, Krystyna, Tristan" jest prawidłowa, ponieważ wszystkie te imiona spełniają warunki klauzuli LIKE w zapytaniu SQL. Klauzula LIKE z wzorcem '_r%' oznacza, że imię musi mieć na drugiej pozycji literę 'r' oraz może zawierać dowolne znaki po tej literze. Przykładowo, imię 'Krzysztof' ma 'r' na drugiej pozycji, tak samo jak 'Krystyna', a 'Tristan' również spełnia ten warunek. Imię 'Arieta' również odpowiada, ponieważ 'r' występuje na drugiej pozycji. W praktyce, zastosowanie klauzuli LIKE jest typowe przy wyszukiwaniu wzorców w bazach danych, co jest nieocenione przy tworzeniu systemów informacyjnych, w których istotna jest elastyczność w wyszukiwaniu. Dobra praktyka sugeruje również stosowanie operatora LIKE w połączeniu z innymi warunkami, aby zwiększyć precyzję zapytań, co z kolei przyczynia się do efektywności systemów bazodanowych.

Pytanie 5

W przedstawionej na rysunku relacji pole AutorID znajdujące się w tabeli ksiazki jest kluczem

Ilustracja do pytania
A. obcym.
B. kandydującym.
C. podstawowym.
D. sztucznym.
Na tym przykładzie bardzo dobrze widać, jak łatwo pomylić różne rodzaje kluczy w relacyjnej bazie danych. W tabeli ksiazki pole AutorID wygląda jak zwykła kolumna z liczbą, ale jego sens wynika dopiero z relacji z tabelą autorzy. To pole nie identyfikuje jednoznacznie rekordu książki, więc nie może być kluczem podstawowym. Kluczem podstawowym jest tu IDKsiazki, bo to ono służy do unikalnego oznaczania każdego wiersza z książką. Typowy błąd myślowy polega na tym, że skoro AutorID też jest liczbą i też wygląda jak identyfikator, to ktoś uznaje go za klucz podstawowy lub kandydujący. Tymczasem klucz kandydujący to taki, który mógłby być kluczem podstawowym, czyli musi gwarantować unikalność. AutorID tej cechy nie ma – jeden autor może mieć wiele książek, więc ta wartość powtarza się w wielu wierszach. Dlatego nie spełnia warunku unikalności i odpada jako kandydat. Czasem pojawia się też skojarzenie z kluczem sztucznym, bo pola typu ID są często tworzone sztucznie, np. jako auto_increment. Klucz sztuczny to jednak pojęcie opisujące sposób tworzenia identyfikatora w tabeli, a nie jego rolę w relacji między tabelami. Sztuczny (surrogate) może być np. IDKsiazki czy IDAutor – liczba bez znaczenia biznesowego, używana tylko jako identyfikator. AutorID w tabeli ksiazki nie jest nowym sztucznym kluczem, tylko przechowywaniem wartości z innej tabeli. Jego podstawowa funkcja to łączenie tabel, czyli właśnie rola klucza obcego. Z mojego doświadczenia warto zawsze zadać sobie pytanie: „czy to pole jednoznacznie identyfikuje wiersz w tej tabeli, czy tylko wskazuje na wiersz w innej tabeli?”. Jeśli to drugie, to mówimy o kluczu obcym, a nie o kluczu podstawowym, kandydującym czy sztucznym. Taka prosta mentalna checklista bardzo pomaga przy projektowaniu schematów i unikaniu nieporozumień w nazewnictwie i projektowaniu relacji.

Pytanie 6

Częstotliwość próbkowania ma wpływ na

A. jakość analogowego dźwięku
B. amplitudę fali dźwiękowej utworu
C. skalę głośności zapisywanego utworu
D. jakość cyfrowego dźwięku
Częstotliwość próbkowania, wyrażana w hercach (Hz), odnosi się do liczby próbek dźwięku zbieranych na sekundę w procesie cyfryzacji sygnału audio. Im wyższa częstotliwość próbkowania, tym więcej szczegółów dźwiękowych jest uchwyconych, co bezpośrednio wpływa na jakość cyfrowego dźwięku. Standardowe częstotliwości próbkowania to 44,1 kHz, stosowane w płytach CD, oraz 48 kHz, powszechnie używane w filmach. Wyższe częstotliwości, jak 96 kHz czy 192 kHz, są stosowane w profesjonalnych studiach nagraniowych, gdzie jakość audio jest kluczowa. W praktyce, zwiększona częstotliwość próbkowania umożliwia lepsze odwzorowanie wysokich tonów oraz bardziej precyzyjne oddanie niuansów dźwięku, co jest istotne w produkcji muzycznej. Warto jednak zauważyć, że zbyt wysoka częstotliwość próbkowania może prowadzić do nadmiernego obciążenia systemu oraz zwiększenia rozmiaru plików audio, co wymaga równowagi między jakością a wydajnością.

Pytanie 7

W języku JavaScript zapisano funkcję. Co ona ma za zadanie.

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f
}
A. wypisać wartość odwrotną do f
B. wypisać wartość bezwzględną z f
C. zwrócić wartość bezwzględną z f
D. zwrócić wartość odwrotną do f
Niepoprawna odpowiedź wskazuje, że funkcja ma za zadanie zwrócić wartość odwrotną do f, lub wypisać wartość bezwzględną z f, lub wypisać wartość odwrotną do f. Te wszystkie odpowiedzi są błędne. Wartość odwrotna do f to 1/f, a nie wartość bezwzględna z f. Wypisanie wartości to inny rodzaj operacji niż jej zwrócenie. Funkcje wypisują wartość, kiedy używamy instrukcji console.log() w JavaScript. Zwrócenie wartości oznacza, że funkcja po zakończeniu swojego działania przekazuje tę wartość do miejsca, skąd została wywołana. Zwracanie wartości jest podstawą działania większości funkcji, które następnie używane są do budowy bardziej skomplikowanych algorytmów. Dlatego też ważne jest, aby dobrze rozumieć, jakie wartości są zwracane przez różne typy funkcji.

Pytanie 8

Aby sformatować wszystkie obrazy w akapicie przy użyciu stylów CSS, należy zastosować selektor

A. p.img
B. p img
C. p + img
D. p # img
Jak spojrzysz na odpowiedzi, to widać, że selektor 'p # img' jest pomyłką. W CSS '#' oznacza 'id', a to powinno być unikalne dla konkretnego elementu. Nie da się tego używać z selektorem potomka, bo to by oznaczało, że szukasz <img> z unikalnym id w akapicie, co nie ma sensu. Z kolei 'p + img' odnosi się do obrazków, które są bezpośrednio po akapicie, czyli nie stylizuje wszystkich obrazków wewnątrz akapitów. Takie coś nie zadziała. A 'p.img' to błąd, bo sugeruje, że <p> ma klasę 'img', co nie jest ok. Klasa 'img' powinna być przypisana do <img>, nie do akapitu. Te wszystkie błędy w selektorach pokazują, jak ważne jest zrozumienie struktury DOM i hierarchii w HTML, żeby dobrze ogarniać CSS.

Pytanie 9

Jak nazywa się składnik bazy danych, który umożliwia jedynie przeglądanie informacji z bazy, prezentując je w formie tekstowej lub graficznej?

A. Raport
B. Formularz
C. Tabela
D. Zapytanie
Tabela to jakby podstawowy element bazy danych, gdzie trzymamy dane w sposób uporządkowany. Ale to nie jest takie narzędzie, które pokazuje gotowe raporty. Tabele służą do wprowadzania i edytowania danych, więc mogą pojawić się niejasności, bo niektórzy mogą mylić rolę tabel z raportami. Zapytanie z kolei to mechanizm do wyciągania danych z bazy. Ale ono samo w sobie nie pokazuje ich w przystępny sposób. Zapytania można wykorzystać do przygotowania danych do raportu, ale to nie jest to samo, co je wyświetlać. A formularz to interaktywny element, który zazwyczaj wykorzystuje się do wprowadzania danych przez użytkowników, a nie do ich odczytu. Więc nawet jeśli formularze mogą wyświetlać dane, ich głównym celem jest dać ludziom możliwość wpisywania informacji do systemu. Jak się nie rozumie tych różnych elementów bazy danych, to można łatwo trafić na błędne wnioski, jak dane są analizowane. Ważne jest, żeby pamiętać, że raporty służą do analizy i wizualizacji danych, a nie do ich przechowywania czy wprowadzania.

Pytanie 10

Który z języków skryptowych nie wykonuje operacji po stronie serwera?

A. CSS
B. ASP
C. PHP
D. Perl
ASP, PHP i Perl to języki skryptowe, które są używane po stronie serwera, co oznacza, że ich kod jest wykonywany na serwerze przed dostarczeniem strony do użytkownika. ASP (Active Server Pages) to technologia opracowana przez Microsoft, która umożliwia tworzenie dynamicznych stron internetowych poprzez integrację z bazami danych oraz obsługę skryptów. PHP (Hypertext Preprocessor) jest jednym z najpopularniejszych języków skryptowych, który również działa po stronie serwera, umożliwiając tworzenie stron internetowych, które mogą generować HTML w oparciu o dane z różnych źródeł, takich jak bazy danych MySQL. Perl, pierwotnie stworzony do przetwarzania tekstu, stał się również wszechstronnym językiem skryptowym do aplikacji webowych, obsługując różnorodne zadania serwerowe. Te języki są integralną częścią nowoczesnego rozwoju aplikacji webowych i pozwalają na obsługę logiki biznesowej, interakcji z użytkownikami oraz komunikacji z bazami danych, co jest niezbędne w tworzeniu dynamicznych i interaktywnych aplikacji internetowych.

Pytanie 11

ID_PracownikaNazwiskoImięStanowiskoWynagrodzenie
1KowalskiKrzysztofkasjer3215,76
2NowakAntonikierownik5350,00
3ZającAlicjaksięgowy4568,70
4KrólWitoldkasjer3045,00
5NowikGrzegorzkasjer2750,65
6KotulskiAndrzejkierowca3467,00
7TutkaKatarzynakierownik4935,33
8PoradaJakubmagazynier3321,56
Które zapytanie SQL należy wykonać na tabeli Pracownicy, aby otrzymać średnie wynagrodzenie dla pracownika na stanowisku kasjer?
A. SELECT AVG(kasjer.Wynagrodzenie) FROM Pracownicy;
B. SELECT SUM(*) FROM Pracownicy AND Stanowisko= 'kasjer';
C. SELECT SREDNIA(Wynagrodzenie) AND Stanowisko='kasjer' FROM Pracownicy;
D. SELECT AVG(Wynagrodzenie) FROM Pracownicy WHERE Stanowisko='kasjer';
W tym zadaniu widać kilka typowych pułapek związanych z pisaniem zapytań SQL, zwłaszcza przy funkcjach agregujących. Kluczowa rzecz: jeśli chcemy policzyć średnie wynagrodzenie dla konkretnego stanowiska, to zawsze musimy połączyć poprawną funkcję agregującą z poprawnym filtrowaniem danych. Standard SQL definiuje funkcję AVG() do liczenia średniej, SUM() do sumowania, COUNT() do liczenia wierszy i tak dalej. Nie ma natomiast funkcji o nazwie SREDNIA, bo to byłaby już jakaś specyficzna, niestandardowa funkcja w danej bazie (a w typowych systemach jak MySQL, PostgreSQL, SQL Server czy Oracle po prostu jej nie ma). Częsty błąd to próba używania nazwy stanowiska jakby była nazwą tabeli lub aliasu, np. coś w stylu AVG(kasjer.Wynagrodzenie). Tu „kasjer” nie jest ani aliasem tabeli, ani osobną tabelą, tylko wartością tekstową w kolumnie Stanowisko. W SQL nie można w ten sposób „kropkować” wartości. Do filtrowania służy klauzula WHERE: Stanowisko='kasjer'. Kolejna rzecz to używanie SUM(*) czy innych funkcji w połączeniu z AND w niewłaściwym miejscu. Wyrażenie typu SELECT SUM(*) FROM Pracownicy AND Stanowisko='kasjer'; jest po prostu składniowo błędne. Warunki logiczne AND, OR, NOT zawsze trafiają do części WHERE lub JOIN ON, a nie między nazwę tabeli a funkcję agregującą. Inny typowy błąd myślowy to mieszanie logiki zapytania: ktoś próbuje jednocześnie pisać coś w rodzaju SELECT SREDNIA(Wynagrodzenie) AND Stanowisko='kasjer' FROM Pracownicy; jakby można było w jednym miejscu łączyć funkcję i warunek. SQL ma jasno rozdzielone sekcje: SELECT (co zwracamy), FROM (z jakiej tabeli), WHERE (jak filtrujemy), opcjonalnie GROUP BY, HAVING, ORDER BY. Warunek filtrowania nie pojawia się w środku listy wybieranych kolumn, tylko w WHERE. Z mojego doświadczenia wynika, że jak ktoś zaczyna poprawnie myśleć o kolejności wykonywania zapytania (najpierw FROM, potem WHERE, potem agregacja), to takie błędy po prostu znikają. Dobrą praktyką jest też, zanim użyje się funkcji agregującej, zadać sobie pytanie: na jakim dokładnie podzbiorze danych chcę tę funkcję zastosować? I właśnie ten podzbiór trzeba opisać w WHERE.

Pytanie 12

Jakie mechanizmy powinno się wykorzystać do stworzenia ankiety w języku działającym po stronie serwera, tak aby wyniki były zapisane w postaci małego pliku u użytkownika?

A. ciasteczek
B. sesji
C. tablicy globalnej $_FILES
D. bazy danych SQL
Przy wyborze nieodpowiednich mechanizmów do przechowywania wyników ankiety, warto zrozumieć, dlaczego inne opcje nie są właściwe. Używanie tablicy globalnej $_FILES jest całkowicie niewłaściwe, ponieważ ta tablica służy do obsługi przesyłanych plików, a nie do przechowywania danych w formie ankiety. Z kolei sesje, mimo że pozwalają na przechowywanie danych użytkownika w kontekście danej sesji, są bardziej odpowiednie do przechowywania tymczasowych informacji, które nie wymagają długoterminowego przechowywania. W przypadku ankiety, gdzie istotne jest zachowanie wyników pomiędzy różnymi sesjami, sesje mogą być nieefektywne i prowadzić do ich utraty po zakończeniu sesji przeglądarki. Bazy danych SQL, chociaż są potężnym narzędziem do przechowywania danych, wymagają większej złożoności w implementacji oraz zarządzaniu danymi, co może być zbędne w przypadku prostych ankiet, gdzie ciasteczka mogą spełnić wystarczające wymagania. Typowym błędem myślowym jest zakładanie, że każda forma przechowywania danych wymaga skomplikowanej infrastruktury, podczas gdy w wielu przypadkach prostsze rozwiązania, takie jak ciasteczka, oferują wystarczającą funkcjonalność w bardziej ergonomicznym podejściu do programowania aplikacji webowych.

Pytanie 13

W tabeli artykuly w bazie danych sklepu znajduje się pole o nazwie nowy. Jak należy wykonać kwerendę, aby wypełnić to pole wartościami TRUE dla wszystkich rekordów?

A. UPDATE nowy FROM artykuly VALUE TRUE;
B. INSERT INTO nowy FROM artykuly SET TRUE;
C. INSERT INTO artykuly VALUE nowy=TRUE;
D. UPDATE artykuly SET nowy=TRUE;
Żeby zaktualizować wartości w kolumnie 'nowy' w tabeli 'artykuły' na TRUE, musisz użyć komendy SQL UPDATE. To jest standardowy sposób, żeby zmieniać już istniejące rekordy w tabelach. W tym przypadku komenda 'UPDATE artykuly SET nowy=TRUE;' oznacza, że wszystkie rekordy w tabeli 'artykuły' będą miały pole 'nowy' ustawione na TRUE. To dość prosta i skuteczna operacja, która pozwala na jednolitą zmianę w całej tabeli. Na przykład, jeśli w tabeli 'artykuły' jest 1000 rekordów, to wszystkie z nich dostaną wartość TRUE w polu 'nowy', co może być pomocne, jeśli chcemy oznaczyć nowe produkty. Pamiętaj, żeby robić kopie zapasowe bazy danych przed takimi masowymi zmianami. To może uratować Cię od utraty ważnych danych, gdyby coś poszło nie tak. Użycie tej komendy jest zgodne z ogólnymi zasadami SQL, więc jest to bezpieczny sposób działania dla każdego, kto zarządza bazą danych.

Pytanie 14

Jakie polecenie wydane w terminalu systemu operacyjnego, które zawiera w swojej składni opcję --repair, pozwala na naprawę bazy danych?

A. mysqldump
B. mysqlcheck
C. truncate
D. create
Truncate to polecenie, które służy do szybkiego usuwania wszystkich wierszy z tabeli, a nie do naprawy bazy danych. Często mylone jest z usuwaniem danych, jednak nie wykonuje ono operacji naprawczych ani nie zdejmuje blokad związanych z integralnością danych. Mysqldump to z kolei narzędzie do tworzenia kopii zapasowych baz danych, które eksportuje dane do postaci pliku, ale również nie ma możliwości naprawy istniejących błędów w danych czy strukturze tabel. Create to komenda używana do tworzenia nowych tabel lub baz danych, jednak nie ma zastosowania w kontekście naprawy już istniejących obiektów. Typowym błędem myślowym jest przypisywanie funkcji, które są dedykowane do zarządzania danymi, do operacji naprawczych, co może prowadzić do utraty danych lub niewłaściwego postępowania z bazą. Kluczowym aspektem w zarządzaniu bazami danych jest znajomość właściwych narzędzi i ich zastosowań, co pozwala na skuteczne i bezpieczne zarządzanie danymi. Użycie niewłaściwych poleceń w kontekście zarządzania bazami danych może prowadzić do problemów z dostępnością, a nawet do uszkodzenia danych, dlatego istotne jest, aby dobrze rozumieć funkcje narzędzi, które się wykorzystuje.

Pytanie 15

W języku HTML, aby stworzyć pole do wprowadzania hasła, w którym wpisywany tekst będzie ukrywany (zastępowany kropkami), należy zastosować znacznik

A. <input type="password" />
B. <form input type="password" />
C. <form="password" type="password" />
D. <input name="password" />
W przypadku odpowiedzi <input name="password" /> brakuje kluczowego atrybutu 'type', co uniemożliwia prawidłowe zdefiniowanie pola do wprowadzania hasła. Standard HTML wymaga, aby każdy input miał określony typ, aby przeglądarka wiedziała, jak ma obsługiwać dane wejściowe. Użycie tylko 'name' bez 'type' sprawia, że przeglądarka interpretuje to pole jako standardowe pole tekstowe, co nie maskuje wprowadzanych danych i naraża hasło na nieautoryzowany dostęp. W przypadku zastosowania <form="password" type="password" /> oraz <form input type="password" /> zawężamy logikę do niewłaściwego użycia znaczników formularzy. 'form' jest elementem kontenerowym dla grupy inputów, a jego atrybuty powinny odnosić się do dodatkowych informacji, ale nie pozwalają na umieszczenie inputa wewnątrz samego formularza w taki sposób. Te błędne konstrukcje mogą prowadzić do nieczytelności kodu i problemów z interpretacją przez przeglądarki, co jest szczególnie niekorzystne w kontekście dostępności i użyteczności. Warto przy projektowaniu formularzy przestrzegać standardów HTML oraz praktyk takich jak semantyczne użycie elementów, aby poprawić zarówno SEO, jak i UX.

Pytanie 16

Przyjmując, że użytkownik Adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do

GRANT CREATE, ALTER ON sklep.* TO adam;
A. dodawania i modyfikacji danych w tabeli sklep
B. tworzenia oraz modyfikowania struktury w tabeli sklep
C. tworzenia i zmiany struktury wszystkich tabel w bazie sklep
D. dodawania i modyfikacji danych we wszystkich tabelach bazy sklep
Ta odpowiedź nie jest właściwa, bo dotyczy wstawiania i zmieniania danych w tabeli 'sklep', a tak naprawdę polecenie SQL daje tylko uprawnienia do zmiany struktury tabel, nie do danych w środku. Do wstawiania danych potrzebne jest użycie komendy 'INSERT', której tutaj w ogóle nie ma. Jak ktoś ma tylko prawa do tworzenia i zmiany struktury tabel, to nie może dodać ani zmienić danych, a to jest kluczowe do operacji na danych. I jeszcze jedno – odpowiedzi, które mówią o ograniczeniu do jednej tabeli, też są błędne, bo 'sklep.*' dotyczy wszystkich tabel w bazie. Ważne, żeby rozróżniać te uprawnienia, bo często ludzie mylą uprawnienia do zarządzania strukturą tabel z możliwościami operacji na danych. To zrozumienie różnic jest kluczowe dla bezpiecznego zarządzania bazami danych i trzymania się zasady minimalnych uprawnień, co jest naprawdę dobrą praktyką w świecie bezpieczeństwa informatycznego.

Pytanie 17

W sklepie z farbami obowiązuje określony sposób obliczania kosztu farby: dla koloru niebieskiego i zielonego przy pojemności 2 litry cena farby wynosi cena bazowa + 20%. Wyrażenie logiczne w języku JavaScript, które weryfikuje tę zasadę, ma formę

A. kolor = 'niebieski' || kolor = 'zielony' && pojemnosc = 2
B. (kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2
C. (kolor = 'niebieski' || kolor = 'zielony') || pojemnosc = 2
D. kolor == 'niebieski' && kolor == 'zielony' && pojemnosc == 2
Analizując niepoprawne odpowiedzi, można zauważyć kilka powszechnych błędów, które prowadzą do mylnych wniosków. Przede wszystkim, użycie operatora '=' zamiast '==' jest fundamentalnym błędem w kontekście języka JavaScript. Operator '=' służy do przypisania wartości, podczas gdy '==' jest operatorem porównania, który sprawdza, czy dwie wartości są sobie równe. Zastosowanie '=' w warunkach logicznych prowadzi do nieprawidłowego działania warunków, ponieważ zamiast porównania wykonujemy przypisanie, co zazwyczaj skutkuje zawsze prawdziwym wynikiem. Ponadto, użycie operatora '&&' w przypadku kolorów w odpowiedzi, która stwierdza, że kolor jest jednocześnie 'niebieski' i 'zielony', jest logicznie niemożliwe, ponieważ jedna zmienna nie może przyjmować dwóch różnych wartości jednocześnie. Tego typu niepoprawne podejścia mogą prowadzić do niezamierzonych wyników w kodzie, co jest sprzeczne z podstawowymi zasadami programowania, takimi jak zasada jedności odpowiedzialności. Kluczowe jest również zrozumienie, że warunki powinny być jasno sformułowane, aby kod był zarówno funkcjonalny, jak i łatwy do zrozumienia dla innych programistów. Dobre praktyki programistyczne wskazują na konieczność stosowania dobrze zdefiniowanych i jednoznacznych warunków, co znacznie ułatwia dalszy rozwój i konserwację kodu.

Pytanie 18

Polecenie MySQL:

ALTER TABLE ksiazki
    MODIFY tytul VARCHAR(100) NOT NULL;
Przedstawione polecenie MySQL ma za zadanie
A. zmienić nazwę kolumny w tabeli ksiazki
B. zmienić typ kolumny tytul w tabeli ksiazki
C. dodać do tabeli ksiazki kolumnę tytul
D. usunąć kolumnę tytul z tabeli ksiazki
Polecenie ALTER TABLE w przedstawionym zapytaniu jest używane do modyfikacji struktury istniejącej tabeli w bazie danych MySQL. W szczególności, zapytanie zmienia typ kolumny 'tytul' w tabeli 'ksiazki' na VARCHAR(100) oraz ustawia ten typ jako NOT NULL, co oznacza, że ta kolumna nie może zawierać wartości NULL. Typ VARCHAR jest typem danych zmiennych o długości, co pozwala na przechowywanie ciągów znaków o zmiennej długości do 100 znaków. Zmiana typu kolumny może być przydatna w sytuacjach, gdy chcemy zmienić sposób przechowywania danych lub dostosować je do nowych wymagań aplikacji. Przykładem może być sytuacja, w której początkowo tytul był przechowywany jako tekst o stałej długości (np. CHAR), ale później zdecydowano, że lepszym rozwiązaniem będzie przechowywanie go jako VARCHAR dla oszczędności miejsca. W kontekście standardów SQL, modyfikacja kolumny zgodnie z definicją standardu SQL jest dopuszczalna, pod warunkiem, że nie narusza ona reguł dotyczących integralności danych i typów. Warto również pamiętać, że zmiana typu kolumny w bazie danych może wymagać migracji danych, co należy uwzględnić w planowaniu zmian.

Pytanie 19

Aby cofnąć uprawnienia danemu użytkownikowi, należy użyć polecenia

A. REVOKE
B. GRANT NO PRIVILEGES
C. DELETE
D. DELETE PRIVILEGES
Wybór 'DELETE' do odbierania uprawnień to zły ruch, bo to polecenie służy do usuwania rekordów z tabel, a nie do zarządzania uprawnieniami. Ludzie często się mylą co do tego, a 'DELETE PRIVILEGES' brzmi trochę sensownie, ale w rzeczywistości to nie jest standardowa komenda w żadnym systemie baz danych. Można sobie to pomylić z 'REVOKE', co prowadzi do błędnych wniosków. Dodatkowo, 'GRANT NO PRIVILEGES' nie ma racji bytu, bo nie funkcjonuje jako polecenie w SQL. Zamiast tego, trzeba sięgać po 'REVOKE', żeby cofnąć konkretne uprawnienia. To typowy błąd, jakim jest mieszanie operacji na danych z operacjami na uprawnieniach, co może skutkować nieefektywnym zarządzaniem dostępem i zagrożeniami bezpieczeństwa. Ważne jest, żeby zrozumieć, że operacje na danych i zarządzanie uprawnieniami to zupełnie różne sprawy, co jest kluczowe do odpowiedniego administrowania bazą danych.

Pytanie 20

W PHP, aby usunąć białe znaki z początku i końca ciągu tekstowego, można skorzystać z funkcji

A. strlen()
B. sort()
C. time()
D. trim()
W kontekście wybranych odpowiedzi, sort() jest funkcją, która służy do sortowania tablic. Użycie tej funkcji w celu usunięcia spacji z ciągu znaków nie ma sensu, ponieważ jej zadaniem jest porządkowanie elementów w tablicy według zdefiniowanej kolejności, a nie manipulowanie zawartością ciągów tekstowych. Prawidłowe przetwarzanie danych wymaga stosowania odpowiednich funkcji, a sort() nie jest jedną z nich. Z kolei funkcja time() jest używana do uzyskiwania bieżącego znacznika czasu w formacie Unix timestamp. Jej zastosowanie w kontekście usuwania spacji jest nieadekwatne, ponieważ time() zwraca wartość liczbową reprezentującą czas, a nie operuje na ciągach znaków. Ostatnia z wymienionych funkcji, strlen(), służy do obliczania długości danego ciągu znaków. Chociaż może być przydatna w kontekście walidacji długości ciągów wejściowych, nie ma żadnej funkcji w usuwaniu spacji. Każda z tych funkcji ma swoje unikalne zastosowanie, ale żadna z nich nie jest odpowiednia do zadania, jakim jest usunięcie zbędnych spacji z początku i końca ciągu. Właściwe użycie funkcji trim() jest kluczowe dla uzyskania oczekiwanych rezultatów w operacjach na tekstach.

Pytanie 21

Aby w tabeli praca, tworzonej w SQL, dodać warunek w kolumnie stawka, który nakazuje przyjmowanie dodatnich wartości rzeczywistych mniejszych niż 50, należy zastosować zapis

A. ... stawka float CHECK(stawka>0 OR stawka<50.00)
B. ... stawka float CHECK(stawka>0 AND stawka<50.00)
C. ... stawka float CHECK(stawka IN (0, 50.00))
D. ... stawka float CHECK(stawka BETWEEN 0 AND 50.00)
Aby w tabeli SQL dodać warunek dla kolumny 'stawka', który zapewni, że wartości będą rzeczywiste, dodatnie i mniejsze od 50, należy skorzystać z klauzuli CHECK. Odpowiedni zapis to 'CHECK(stawka > 0 AND stawka < 50.00)'. Klauzula CHECK w SQL pozwala na definiowanie ograniczeń dla wartości kolumny, co jest kluczowe w zapewnieniu integralności danych. W tym przypadku, użycie operatora AND jest istotne, ponieważ umożliwia jednoczesne sprawdzenie dwóch warunków: że 'stawka' jest większa od 0 oraz mniejsza od 50. Zastosowanie tego warunku jest zgodne z zasadami normalizacji bazy danych, która ma na celu eliminację nieprawidłowych danych. Przykładowo, jeśli spróbujesz wprowadzić wartość 0 lub 50 do kolumny 'stawka', system zwróci błąd, co zapobiega wprowadzeniu niepożądanych danych. Takie podejście jest również zalecane w standardach SQL, takich jak ANSI SQL, które podkreślają znaczenie walidacji danych.

Pytanie 22

W CSS, aby zmienić kolor tekstu dowolnego elementu HTML po najechaniu na niego myszą, należy wykorzystać pseudoklasę

A. :visited
B. :coursor
C. :active
D. :hover
Wybór nieodpowiednich pseudoklas, takich jak :visited, :cursor oraz :active, może prowadzić do nieporozumień w zakresie ich funkcji i zastosowania w stylizacji elementów na stronach internetowych. Pseudoklasa :visited jest używana do stylizacji linków, które zostały już odwiedzone przez użytkownika, co oznacza, że nie jest ona związana z interakcją w czasie rzeczywistym. Może być stosowana do zmiany koloru lub stylu linków, lecz nie wpływa na ich wygląd w momencie, gdy użytkownik z nimi współdziała za pomocą kursora. Z kolei :cursor nie jest rzeczywistą pseudoklasą CSS; zamiast tego, właściwości związane z kursorem definiuje się poprzez `cursor`, co nie dotyczy bezpośrednio efektów hover. Użytkownicy często mylą te pojęcia, co prowadzi do nieefektywnego stylizowania elementów. Na koniec, :active odnosi się do elementów, które są aktualnie aktywowane, np. podczas kliknięcia, co również nie koreluje z najechaniem kursorem. W praktyce, pomyłki w wyborze tych pseudoklas mogą obniżyć interaktywność oraz estetykę strony, co jest sprzeczne z zasadami dobrego designu i użyteczności. Właściwe wykorzystanie :hover zamiast powyższych pseudoklas nie tylko poprawia funkcjonalność, ale także podnosi ogólną jakość projektu.

Pytanie 23

W zapytaniu SQL, umieszczonym w ramce, symbol gwiazdki wskazuje, że w wyniku tego zapytania

Ilustracja do pytania
A. zostanie pokazane pole o nazwie "*" (gwiazdka)
B. zostaną wyświetlone wszystkie wpisy z tabeli mieszkańcy
C. zostanie pominięty warunek dotyczący imienia
D. zostaną wyświetlone wszystkie kolumny tabeli mieszkańcy
W zapytaniach SQL użycie znaku gwiazdki (*) po klauzuli SELECT jest częstą praktyką, która wskazuje na potrzebę wyświetlenia wszystkich kolumn z tabeli wynikowej. W kontekście zapytania SELECT * FROM mieszkańcy WHERE imie = 'Anna'; oznacza to, że zostaną zwrócone wszystkie kolumny dla rekordów, które spełniają warunek imie='Anna'. Jest to szybki sposób na uzyskanie pełnych danych dla określonych kryteriów bez konieczności wyszczególniania nazw kolumn, co może być szczególnie przydatne w przypadku tabel o dużej liczbie kolumn. Ważnym aspektem jest tutaj optymalizacja zapytań; choć użycie * jest wygodne, w dużych zbiorach danych lepiej jest selekcjonować tylko te kolumny, które są rzeczywiście potrzebne do analizy, co zmniejsza obciążenie bazy danych i poprawia wydajność. W praktykach branżowych zaleca się również zwracanie uwagi na bezpieczeństwo danych i dostępność użytkowników do informacji, szczególnie w kontekście RODO i innych regulacji dotyczących ochrony danych osobowych.

Pytanie 24

W HTML zdefiniowano hiperłącze zawierające znak #. Co się wydarzy po kliknięciu na ten odsyłacz?

<a href="#dane"></a>
A. Strona przewinie się do elementu o id równym dane
B. Otworzy się nowa karta przeglądarki o nazwie dane
C. Uruchomi się skrypt o nazwie dane
D. Zostanie wskazany względny adres URL o nazwie dane
W HTML znacznik <a> to taki element, który tworzy hiperłącza. Dzięki nim możesz przeskakiwać po stronie lub między różnymi stronami. Atrybut href wskazuje, dokąd prowadzi to łącze. Jak widzisz, gdy href zaczyna się od #, to znaczy, że przeniesie Cię do konkretnego miejsca na tej samej stronie, które jest oznaczone atrybutem id. Czyli, jeśli masz href="#dane", to strona przewinie się do elementu z id="dane". To bardzo przydatna rzecz, szczególnie na długich stronach, bo zamiast przewijać wszystko, możesz od razu trafić do odpowiedniej sekcji. To zgodne z tymi sztywnymi zasadami W3C, które mówią o tym, że strony powinny być łatwe w obsłudze. Powinieneś też pamiętać, żeby zawsze sprawdzać, czy id, do którego się odnosisz, istnieje. Dzięki temu unikniesz problemów z nawigacją.

Pytanie 25

Jaką konstrukcją w języku C++ jest double *x;?

A. Zmienna całkowita
B. Wskaźnik
C. Formalny argument typu rzeczywistego
D. Zmienna rzeczywista
Wybór odpowiedzi, która sugeruje, że 'double *x;' jest parametrem formalnym typu rzeczywistego, jest nieprawidłowy, ponieważ wskaźnik nie jest sam w sobie parametrem formalnym. Parametry formalne w C++ są definiowane w nagłówkach funkcji i odnoszą się do zmiennych przekazywanych do funkcji. Wskaźnik, jak 'double *x;', jest po prostu zmienną, która przechowuje adres innej zmiennej, co jest zupełnie inną koncepcją. Z kolei określenie zmiennej całkowitej jest również błędne, ponieważ 'double' wskazuje na typ zmiennoprzecinkowy, a nie całkowity. Zrozumienie różnicy między typami danych jest kluczowe w C++. Ostatnia niepoprawna opcja, mówiąca o zmiennej rzeczywistej, nie odnosi się do wskaźnika, ponieważ wskaźnik nie jest zmienną przechowującą wartość typu 'double', ale adresem, pod którym taka wartość może być przechowywana. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych odpowiedzi, obejmują mylenie pojęcia wskaźnika z typem zmiennej, a także brak zrozumienia roli wskaźników w kontekście zarządzania pamięcią i przekazywania danych do funkcji. Właściwe zrozumienie tych podstawowych koncepcji jest niezbędne do skutecznego programowania w C++.

Pytanie 26

Na podstawie przypisania wartości do zmiennych zapisanych w języku PHP można stwierdzić, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. zmienna1 i zmienna3 są tego samego typu.
B. zmienna1 i zmienna2 są tego samego typu.
C. zmienna2 i zmienna3 są tego samego typu.
D. Wszystkie zmienne są tego samego typu.
Niestety, twoja odpowiedź była nieprawidłowa. Wydaje się, że mogła wynikać z niezrozumienia typów zmiennych w języku PHP. W tym pytaniu zmienna1 była typu int (liczba całkowita), zmienna2 była typu string (ciąg znaków), natomiast zmienna3 była wynikiem rzutowania zmiennej1 na typ string. Stąd wynika, że zmienna2 i zmienna3 są obie typu string. Natomiast zmienna1, pomimo że miała taką samą wartość jak zmienna2 i zmienna3 (15), nie była tego samego typu. W językach programowania typ danych jest ważny, szczególnie przy operacjach porównania czy połączenia różnych typów danych. PHP jest językiem o dynamicznych typach, co oznacza, że typ zmiennej może ulec zmianie w trakcie wykonania skryptu, ale mimo to warto zawsze świadomie operować na typach zmiennych.

Pytanie 27

Wykonanie zapytania SQL spowoduje skasowanie

DELETE FROM mieszkania WHERE status = 1;
A. rekordów, w których wartość pola status jest równa 1, z tabeli mieszkania
B. elementów o nazwie status z tabeli mieszkania
C. tabeli mieszkania znajdującej się w bazie danych
D. tabel, w których wartość pola status wynosi 1, z bazy danych mieszkania
Wskazanie, że kwerenda SQL usunie tabele, pola lub całą tabelę, jest niepoprawne i opiera się na nieporozumieniach dotyczących struktury zapytań SQL. Składnia SQL rozróżnia operacje na poziomie tabel, kolumn i rekordów. W przypadku zapytania DELETE, operacja dotyczy zawsze rekordów, które spełniają określony warunek, a nie struktur tabeli ani kolumn. Usunięcie tabeli wymagałoby użycia zapytania DROP TABLE, natomiast usunięcie kolumny to operacja ALTER TABLE, a następnie DROP COLUMN. Warto zauważyć, że nie można usunąć pola (kolumny) przy pomocy zapytania DELETE, ponieważ to zapytanie nie działa na poziomie strukturalnym bazy danych, a jedynie na danych. W procesie uczenia się SQL, ważne jest, aby zrozumieć, że każdy typ zapytania ma swoje specyficzne zastosowanie i niepoprawne zrozumienie ich funkcji może prowadzić do poważnych pomyłek. Dlatego kluczowe jest, aby przed przystąpieniem do edycji danych w bazie, zapoznać się z dokumentacją oraz najlepszymi praktykami zarządzania danymi, co pozwala uniknąć niepożądanych skutków.

Pytanie 28

W programowaniu istnieje tylko jeden typ danych, który może przyjąć tylko dwie wartości. Jak nazywa się ten typ?

A. tablicowy
B. znakowy
C. ciągowy
D. logiczy
Wybór zmiennej łańcuchowej jako odpowiedzi jest błędny, ponieważ typ ten może przechowywać wiele różnych wartości w postaci sekwencji znaków. Łańcuchy znakowe są używane do reprezentacji tekstu, co czyni je znacznie bardziej złożonymi niż tylko dwie możliwości. Z kolei zmienna znakowa (char) również nie spełnia tego kryterium, gdyż pozwala na reprezentację pojedynczego znaku, a nie ogranicza się do dwóch specyficznych wartości. Typ tablicowy z kolei jest strukturą danych, która może przechowywać wiele elementów jednego typu, co również wykracza poza ograniczenia dwóch wartości. Typowe błędy myślowe prowadzące do takich wniosków to pomylenie typów danych z ich możliwościami przechowywania oraz funkcjami. Warto zrozumieć, że w programowaniu każdy typ zmiennej ma swoje specyficzne zastosowanie, a typ logiczny jest wyjątkowy w tym, że jego zastosowanie opiera się na prostocie i jednoznaczności w podejmowaniu decyzji. Zrozumienie tych różnic jest kluczem do efektywnego programowania oraz do tworzenia kodu, który jest nie tylko funkcjonalny, ale również łatwy do analizy i konserwacji w przyszłości.

Pytanie 29

Gdzie należy umieścić znacznik metajęzyka HTML?

A. w sekcji nagłówkowej witryny internetowej
B. pomiędzy znacznikami <body> ... </body>
C. w dolnej części witryny internetowej
D. pomiędzy znacznikami paragrafu
Umieszczanie znaczników metajęzyka HTML w niewłaściwych miejscach, takich jak stopka witryny czy sekcja <body>, może prowadzić do problemów z interpretacją dokumentu przez przeglądarki oraz wyszukiwarki. Sekcja <body> jest przeznaczona wyłącznie dla treści widocznej dla użytkowników, co oznacza, że wszelkie informacje dotyczące indeksowania czy metadanych powinny być w nagłówku. Umieszczanie znaczników metadanych w stopce nie tylko narusza konwencje HTML, ale także może sprawić, że nie będą one w ogóle przetwarzane przez wyszukiwarki, co ogranicza możliwości SEO witryny. Kolejnym błędem jest umieszczanie znaczników metadanych pomiędzy znacznikami paragrafu, co jest syntaktycznie niepoprawne oraz semantycznie nieuzasadnione. Takie działania mogą prowadzić do konfuzji zarówno dla programistów, jak i narzędzi analizujących strony internetowe. Właściwe umiejscowienie znaczników <meta> w sekcji nagłówkowej jest nie tylko standardem, ale też kluczowym elementem strategii tworzenia stron internetowych, które są przyjazne dla użytkowników i wyszukiwarek. Warto również zauważyć, że nieprzestrzeganie tych zasad może mieć negatywne skutki dla wydajności strony oraz jej pozycji w wynikach wyszukiwania.

Pytanie 30

Metainformacja “Description" zawarta w pliku źródłowym HTML powinna zawierać

<head>
    <meta name="Description" content="..." >
</head>
A. informację, kto jest autorem strony.
B. nazwę programu, przy użyciu którego została stworzona strona.
C. opis, co znajduje się na stronie.
D. wyrazy kluczowe, z których korzystają wyszukiwarki sieciowe.
Należy podkreślić, że choć autor strony czy program, którym strona została stworzona, to informacje mogą być ciekawe, nie są one celem metainformacji 'Description'. Informacje o autorstwie czy narzędziach służących do stworzenia strony mogą zostać uwzględnione w innych metatagach lub sekcjach strony, ale nie w 'Description'. Na przykład, metatag 'author' jest przeznaczony do wskazywania autora strony. Podobnie, informacje o oprogramowaniu, które zostało użyte do stworzenia strony, zwykle są zawarte w metatagu 'generator'. Co do wyrazów kluczowych, to choć są one istotne dla optymalizacji strony pod kątem wyszukiwarek, nie powinny być jedyną zawartością metatagu 'Description'. Kluczowe słowa powinny być raczej wplecione w naturalny, czytelny dla użytkownika opis strony. W ten sposób 'Description' staje się efektywnym narzędziem SEO, które pomaga zwiększyć ruch na stronie.

Pytanie 31

Dzięki poleceniu ALTER TABLE można

A. skasować tabelę
B. zmieniać wartości rekordów
C. usunąć rekord
D. zmieniać strukturę tabeli
Niektóre odpowiedzi mogą wydawać się na pierwszy rzut oka sensowne, jednak po głębszej analizie widać, że są one błędne. Zmiana wartości rekordów nie jest możliwa przy użyciu polecenia ALTER TABLE. To zadanie realizuje się za pomocą polecenia UPDATE, które umożliwia modyfikację danych istniejących w tabeli. Tabela jest strukturą danych, która przechowuje rekordy, więc usunięcie tabeli odbywa się przy użyciu polecenia DROP TABLE, a nie ALTER TABLE. Podobnie, usunięcie pojedynczego rekordu w tabeli to operacja, którą wykonujemy przy pomocy polecenia DELETE. Zrozumienie różnic między tymi poleceniami jest kluczowe dla efektywnego zarządzania bazami danych. Często popełnianym błędem jest mylenie poleceń, co może prowadzić do niezamierzonych skutków, takich jak utrata danych czy naruszenie integralności bazy. Na przykład, użycie ALTER TABLE w kontekście dodawania kolumny, a następnie nieprzemyślane usunięcie kolumny za pomocą DELETE spowoduje, że nie tylko stracimy całą kolumnę, ale również naruszymy relacje w bazie danych. Dlatego ważne jest, aby znać właściwe komendy oraz ich zastosowania, aby unikać nieporozumień i błędów w przyszłości.

Pytanie 32

Jakie z poniższych warunków logicznych w języku C weryfikuje, czy zmienna o nazwie zm1 znajduje się w zakresie 6, 203>?

A. (zm1 > 6) || (zm1 != 203)
B. (zm1 > 6) && (zm1 <= 203)
C. (zm1 > 6) && (zm1 != 203)
D. (zm1 > 6) || (zm1 <= 203)
Wybór zaliczający odpowiedzi, które nie spełniają wymogów dotyczących przedziału wartości, może prowadzić do mylnych wniosków. W przypadku opcji (zm1 > 6) || (zm1 <= 203), zastosowano operator logiczny OR (||), co oznacza, że wystarczy, aby jeden z warunków był spełniony, co nie odpowiada wymaganym kryteriom przynależności do przedziału. Nie zabezpiecza to przed sytuacjami, w których zm1 może być mniejsze od 6, co wydłuża zakres wartości i narusza założenia. Podobnie, odpowiedź (zm1 > 6) || (zm1 != 203) również wykorzystuje operator OR, co prowadzi do nieprecyzyjnych wyników, ponieważ nie zapewnia, że zm1 pozostaje w założonym przedziale. Wartość zm1 może być równa 203, a jednocześnie spełniać warunek bycia różnym od tej samej liczby, co jest sprzeczne z celem określenia rzeczywistego zakresu. Ostatecznie, wybór opcji (zm1 > 6) && (zm1 != 203) wprowadza dodatkowy błąd, gdyż nie uwzględnia dolnej granicy przedziału oraz pozwala na wartości, które są powyżej 6, ale nie określają górnej granicy, co jest sprzeczne z założeniem. Te błędne koncepcje wynikają często z nieprecyzyjnej interpretacji operatorów logicznych oraz niezrozumienia, jak ważne jest ich odpowiednie użycie w kontekście definiowania przedziałów.

Pytanie 33

Zakładając, że żadne style CSS nie zostały zdefiniowane, przedstawiony efekt zostanie uzyskany przy pomocy

Tytuł
    Znaczniki języka HTML
Autor
    Ewa Konieczna
Słowa kluczowe
    witryny internetowe, HTML

Kod 1.
<ul>
  <li>Tytuł</li>
  <li>Znaczniki języka HTML</li>
  <li>Autor</li>
  <li>Ewa Konieczna</li>
  <li>Słowa kluczowe</li>
  <li>witryny internetowe, HTML</li>
</ul>

Kod 2.
<dl>
  <dt>Tytuł</dt>
  <dd>Znaczniki języka HTML</dd>
  <dt>Autor</dt>
  <dd>Ewa Konieczna</dd>
  <dt>Słowa kluczowe</dt>
  <dd>witryny internetowe, HTML</dd>
</dl>

Kod 3.
<ol>
  <li>Tytuł</li>
  <dl>Znaczniki języka HTML</dl>
  <li>Autor</li>
  <dl>Ewa Konieczna</dl>
  <li>Słowa kluczowe</li>
  <dl>witryny internetowe, HTML</dl>
</ol>

Kod 4.
<table>
  <tr>Tytuł</tr>
  <td>Znaczniki języka HTML</td>
  <tr>Autor</tr>
  <td>Ewa Konieczna</td>
  <tr>Słowa kluczowe</tr>
  <td>witryny internetowe, HTML</td>
</table>
A. Kodu 1.
B. Kodu 3.
C. Kodu 2.
D. Kodu 4.
Niestety, Twoja odpowiedź nie jest poprawna. Na podstawie analizy załączonego obrazka można stwierdzić, że efekt przedstawiony na zdjęciu zostanie uzyskany przy użyciu 'Kodu 2', który jest kodem HTML definiującym tabelę. Wybierając inne opcje, pomijasz ważną rolę, jaką tabele odgrywają w prezentowaniu informacji w strukturze danych. Tabele HTML są przydatne do prezentowania zestawów danych, które mają związek ze sobą. Za pomocą tabeli można łatwo zorganizować takie dane w czytelny sposób. Zwróć uwagę, że wybór nieodpowiedniego kodu do osiągnięcia określonego efektu może prowadzić do niepotrzebnych komplikacji, takich jak trudności w utrzymaniu kodu, problemów z dostępnością i nieprawidłowego wyświetlania na różnych urządzeniach czy przeglądarkach. Pamiętaj, że ważne jest zrozumienie podstawowych koncepcji HTML i CSS, aby być w stanie tworzyć efektywne i dostępne strony internetowe.

Pytanie 34

Podczas przygotowywania grafiki na stronę internetową konieczne jest wycięcie jedynie określonego fragmentu. Jak nazywa się ta operacja?

A. zmiana rozmiaru.
B. łączenie warstw.
C. kadrowanie.
D. lustrzane odbicie obrazu.
Kadrowanie to proces polegający na wycinaniu fragmentu obrazu w celu skupienia uwagi na określonym elemencie lub poprawienia kompozycji. W kontekście grafiki internetowej, kadrowanie jest kluczowe, aby dostosować zdjęcia do wymagań wizualnych strony, zachowując jednocześnie wysoką jakość obrazu. Przykładowo, jeśli tworzymy stronę dla restauracji, możemy wyciąć fragment zdjęcia dania, aby lepiej zaprezentować jego szczegóły. Dobre praktyki w kadrowaniu obejmują stosowanie zasady trzech, która polega na umiejscowieniu kluczowych elementów obrazu w punktach przecięcia linii podziału. Warto również pamiętać o rozdzielczości i proporcjach, aby uniknąć rozmycia lub zniekształcenia obrazu. Kadrowanie jest często używane w różnych formatach wizualnych, takich jak posty w mediach społecznościowych, banery reklamowe czy galerie zdjęć. W ten sposób, odpowiednie kadrowanie przyczynia się do lepszej prezentacji treści oraz poprawia estetykę i przejrzystość strony internetowej.

Pytanie 35

Ile razy wykona się poniższa pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?

for ($i = 0; $i <= 10; $i+=2) { ... }
A. 6
B. 5
C. 0
D. 10
W przypadku błędnych odpowiedzi, takich jak 10, 5, 0 czy 6, można zauważyć, że wynikają one z nieprawidłowego zrozumienia działania pętli for w PHP. Odpowiedź 10 sugeruje, że użytkownik zakłada, iż pętla wykonuje się do 10, co jest błędne, ponieważ na każdym kroku zmienna $i zwiększa się o 2. Użycie 5 jako odpowiedzi może wskazywać na niepoprawne obliczenie liczby iteracji przy założeniu, że pętla mogłaby wykonać się z tylko pięcioma incrementami, co jest również mylące. Wybór 0 jako odpowiedzi jest konsekwencją mylnego założenia, że pętla mogłaby w ogóle nie działać, co jest sprzeczne z logiką, ponieważ pętla rozpoczyna się od $i = 0 i spełnia warunek kontynuacji. Ważne jest, aby podczas analizy pętli skupić się na warunkach początkowych, zmiennej sterującej oraz modyfikacji tej zmiennej w każdym cyklu. Prawidłowe obliczenie liczby iteracji pętli jest kluczowe w programowaniu, ponieważ ma to bezpośredni wpływ na wydajność i efektywność działania algorytmów.

Pytanie 36

Na podstawie przedstawionego kodu w języku JavaScript można powiedzieć, że alert nie zostanie wyświetlony, ponieważ

var x = 10;
switch(x) {
    case "10": alert("Test instrukcji switch");
}
A. Nie zastosowano wyrażenia default.
B. W instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x.
C. Nie zastosowano instrukcji break.
D. Wartość zmiennej x nie została zdefiniowana przed instrukcją switch.
Super, twoja odpowiedź jest prawidłowa! Wybierając odpowiedź 'w instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x', zrozumiałeś istotny punkt w porównywaniu wartości w JavaScript. W przeciwieństwie do wielu innych języków, porównania w JavaScript są typowo 'strict comparison'. Oznacza to, że pod uwagę brane są zarówno wartość, jak i typ danych. W naszym przypadku, zmienna x jest liczbą 10, podczas gdy w instrukcji case porównywana jest z ciągiem znaków '10'. Mimo, że obie reprezentują tę samą wartość, są różnymi typami danych. Dlatego też warunek nie jest spełniony i alert nie zostanie wyświetlony. To jest bardzo ważne do zapamiętania podczas pracy z JavaScript, ponieważ może prowadzić do nieoczekiwanych wyników. Pamiętaj zawsze o typach danych podczas korzystania z instrukcji switch i case w JavaScript.

Pytanie 37

Aby grupować obszary na poziomie bloków, które będą stylizowane za pomocą znacznika: należy wykorzystać

A. <div>
B. <span>
C. <p>
D. <param>
Znaczniki <p>, <param> i <span> mają różne funkcje, ale nie nadają się do grupowania elementów w poziomie bloków. Element <p> jest używany głównie do akapitów tekstu, więc nie można go wykorzystać do organizowania innych rzeczy jak obrazy czy formularze. To znaczy, że nie sprawdzi się w bardziej złożonych strukturach, gdzie potrzebujesz elastyczności i różnych typów treści. Z <span> jest podobnie, bo on grupuje tekst w obrębie bloku, ale działa w linii, więc nie tworzy nowych wierszy ani nie zmienia układu. A <param> jest do osadzania obiektów, jak wideo, więc nie ma tu nic wspólnego z grupowaniem treści. Przypisywanie tych funkcji tym znacznikom to błąd, bo każdy z nich ma swoje konkretne zastosowanie, które musisz znać, żeby dobrze projektować strony zgodnie z nowoczesnymi standardami.

Pytanie 38

Funkcja phpinfo() umożliwia:

A. analizowanie kodu PHP pod kątem błędów
B. uzyskanie informacji o środowisku pracy serwera obsługującego PHP
C. sprawdzanie wartości zmiennych wykorzystanych w skrypcie PHP
D. inicjowanie skryptu w języku PHP
Wiele osób mylnie interpretuje funkcję phpinfo() jako narzędzie służące do debugowania kodu PHP lub sprawdzania wartości zmiennych w skryptach. Jednakże, phpinfo() nie jest zaprojektowane do monitorowania wartości zmiennych ani do analizy błędów w kodzie. Zamiast tego, jej głównym celem jest prezentacja informacji o bieżącej konfiguracji środowiska PHP. Często można spotkać się z przekonaniem, że phpinfo() pozwala na inicjowanie kodu w PHP, co jest zupełnie nieprawidłowe, gdyż funkcja ta nie wykonuje ani nie uruchamia kodu, a jedynie wyświetla dane systemowe. Kolejnym powszechnym błędem jest mylenie phpinfo() z narzędziami do debugowania, takimi jak Xdebug, które rzeczywiście pozwalają na monitorowanie i analizę kodu. Również niektórzy mogą sądzić, że phpinfo() służy do bezpośredniej modyfikacji lub zarządzania ustawieniami PHP, co jest niezgodne z jej funkcjonalnością. Warto podkreślić, że stosowanie phpinfo() w środowisku produkcyjnym może prowadzić do poważnych zagrożeń bezpieczeństwa, gdyż ujawnia wiele szczegółowych informacji, które mogą zostać wykorzystane przez potencjalnych atakujących. Dobrą praktyką jest ograniczenie dostępu do wyników działania phpinfo() oraz jego usunięcie z aplikacji po zakończeniu procesu deweloperskiego.

Pytanie 39

Które z pojęć programowania obiektowego w języku JavaScript odnosi się do dostępu do pól i metod jedynie z poziomu klasy, w której zostały one zadeklarowane?

A. private
B. static
C. public
D. const
Użycie słowa kluczowego 'const' w języku JavaScript odnosi się do deklaracji stałych, a nie do poziomu dostępu do pól i metod w klasach. 'const' pozwala na tworzenie zmiennych, których wartości nie mogą być zmieniane, co może prowadzić do nieporozumień w kontekście obiektowości. W rzeczywistości stałe są dostępne w zasięgu bloku, w którym zostały zadeklarowane, co nie ma związku z dostępem do pól i metod klas. Z kolei 'public' to słowo kluczowe, które oznacza, że pola i metody są dostępne z zewnątrz klasy, co stoi w kontraście do prywatnych elementów. Często programiści mylą te dwa podejścia, co prowadzi do błędów w projektowaniu systemów, które wymagają ukrycia implementacji. Dodatkowo, 'static' odnosi się do pól i metod, które są powiązane z klasą, a nie z instancją obiektu. Oznacza to, że takie elementy można wywoływać bez tworzenia instancji klasy. Jest to przydatne w sytuacjach, gdy nie zachodzi potrzeba operowania na danych instancji. Przy wyborze odpowiednich słów kluczowych kluczowe jest zrozumienie ich roli w kontekście obiektowym oraz ich wpływu na architekturę systemu. Dlatego warto przywiązywać wagę do technicznych niuansów, aby unikać typowych pułapek związanych z dostępem do danych.

Pytanie 40

Określ złożoność obliczeniową algorytmu naiwnego (zwykłego) poszukiwania minimum w kolekcji liczb?

A. O(n!)
B. O(n)
C. O(n3)
D. O(n2)
Odpowiedzi O(n2), O(n3) oraz O(n!) sugerują, że złożoność obliczeniowa algorytmu naiwnego wyszukiwania minimum jest wyższa niż rzeczywista złożoność O(n). Złożoność O(n2) oznaczałaby, że algorytm wymagałby odwiedzenia każdego elementu dla każdego innego elementu, co jest charakterystyczne dla algorytmów porównawczych, które porównują elementy parzyście, na przykład w sortowaniu bąbelkowym. Tego typu złożoność nie ma jednak zastosowania w prostym wyszukiwaniu minimum, gdzie wystarczy jedno przejście przez zbiór w celu znalezienia najmniejszego elementu. Z kolei O(n3) wskazywałoby na jeszcze bardziej skomplikowaną operację, co w kontekście wyszukiwania minimum jest nieadekwatne. Złożoność O(n!) sugerowałaby, że algorytm wymagałby przetwarzania wszystkich możliwych permutacji zbioru, co jest zjawiskiem spotykanym w złożonych problemach kombinatorycznych, takich jak problem komiwojażera. Aby uniknąć takich nieporozumień, ważne jest zrozumienie, że wyszukiwanie minimum to operacja podstawowa, która nie wymaga złożonych algorytmów ani dodatkowych złożoności, a jedynie prostego przejścia przez zbiór danych. W praktyce, złożoności O(n2), O(n3) i O(n!) nie mają zastosowania w kontekście wyszukiwania minimum, co jest kluczowe dla zrozumienia efektywności algorytmu.