Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 10 kwietnia 2026 12:05
  • Data zakończenia: 10 kwietnia 2026 12:22

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

Aby przesłać informacje za pomocą funkcji mysqli_query) w skrypcie PHP, który dodaje do bazy danych dane uzyskane z formularza na stronie internetowej, jako jeden z argumentów trzeba użyć kwerendy

A. UPDATE
B. SELECT
C. INSERT INTO
D. ALTER
Odpowiedzi takie jak 'UPDATE', 'SELECT' oraz 'ALTER' nie są odpowiednie w kontekście wstawiania nowych danych do bazy. Kwerenda 'UPDATE' służy do modyfikacji istniejących rekordów, co oznacza, że używając jej, zmieniamy już zapisane dane, a nie dodajemy nowe. Na przykład, użycie 'UPDATE uzytkownicy SET email = '[email protected]' WHERE imie = 'Jan'' zmienia adres e-mail Jana, ale nie wstawia nowych informacji. 'SELECT' z kolei jest używana do pobierania danych z bazy, co oznacza, że nie ma zastosowania w procesie dodawania nowych rekordów. W przypadku 'SELECT' moglibyśmy chcieć wyświetlić wszystkie dane użytkowników, co również nie wpisuje się w kontekst wstawiania. Natomiast 'ALTER' służy do zmiany struktury tabeli, co oznacza, że przy jej użyciu możemy dodawać lub usuwać kolumny, ale nie jest to bezpośrednio związane z wprowadzaniem nowych danych. Często niepoprawne zrozumienie działania kwerend SQL prowadzi do zamieszania, zwłaszcza w kontekście operacji CRUD (Create, Read, Update, Delete), gdzie każdy z tych terminów ma swoje ściśle określone znaczenie. Warto zatem przyswoić sobie podstawowe różnice między tymi kwerendami, aby móc skutecznie zarządzać danymi w bazie danych.

Pytanie 2

Instrukcja użytkownika aplikacji nie powinna zawierać

A. opisu instalacji programu.
B. sposobu działania poszczególnych komponentów.
C. opisu zastosowanych algorytmów.
D. wymagań sprzętowych.
Wiele osób intuicyjnie myśli, że dobra instrukcja użytkownika powinna zawierać „wszystko o programie”, łącznie z tym, jak jest on zbudowany od środka. To dość częsty błąd. Instrukcja użytkownika to dokument stricte praktyczny, nastawiony na obsługę, a nie na analizę wewnętrznej logiki systemu. Dlatego wymagania sprzętowe są tam jak najbardziej na miejscu – użytkownik musi wiedzieć, czy aplikacja w ogóle uruchomi się na jego komputerze, jakiego systemu operacyjnego potrzebuje, ile pamięci RAM czy wolnego miejsca na dysku. To podstawowy element każdej sensownej instrukcji, spotykany w oprogramowaniu komercyjnym i open source. Podobnie opis instalacji programu jest absolutnie kluczowy. Bez przejrzystej procedury instalacji, najlepiej krok po kroku, z krótkimi komentarzami, wielu użytkowników po prostu nie poradzi sobie z poprawnym uruchomieniem aplikacji. W dobrych praktykach dokumentacyjnych (np. styl Microsoft, Atlassian, Red Hat) sekcje typu „Instalacja”, „Pierwsze uruchomienie”, „Konfiguracja wstępna” to standard. Trzecia kwestia to sposób działania poszczególnych komponentów, ale z perspektywy użytkownika, nie programisty. Nie chodzi o opisy klas, modułów czy bibliotek, tylko o to, co użytkownik widzi: okna, zakładki, panele, przyciski, formularze. Instrukcja powinna tłumaczyć, do czego służą konkretne elementy interfejsu, jakie mają opcje, co się stanie po wybraniu danej funkcji. Bez takiego opisu użytkownik błądzi po omacku. Problem zaczyna się wtedy, gdy do instrukcji użytkownika próbuje się wcisnąć opis zastosowanych algorytmów. To już jest poziom dokumentacji technicznej, przeznaczony dla deweloperów. Użytkownik końcowy nie potrzebuje wiedzieć, czy dane są sortowane quicksortem, mergesor­tem, jak działa algorytm szyfrowania albo jaka jest złożoność czasowa przetwarzania. Takie informacje nie pomagają mu wykonać zadania w aplikacji, tylko wprowadzają niepotrzebny chaos. Typowy błąd myślowy polega tu na mieszaniu dwóch różnych grup odbiorców: użytkowników i programistów. Dobrą praktyką jest ich rozdzielenie i trzymanie instrukcji użytkownika na poziomie funkcji, kroków i efektów, a nie implementacji.

Pytanie 3

Kiedy należy wykorzystać kwerendę SELECT DISTINCT, aby wyodrębnić rekordy?

A. występujące w bazie tylko raz.
B. posortowane malejąco lub rosnąco.
C. pogrupowane.
D. tak, aby w podanej kolumnie nie powtarzały się wartości.
Zastosowanie kwerendy SELECT DISTINCT ma na celu eliminację duplikatów w wynikach zapytania, co nie odnosi się do sytuacji związanych z grupowaniem danych, ich sortowaniem czy innymi operacjami. Odpowiedzi sugerujące, że SELECT DISTINCT powinno być używane do grupowania czy sortowania danych, bazują na mylnych założeniach dotyczących jego funkcji. Grupa danych uzyskiwana za pomocą klauzuli GROUP BY ma na celu agregację informacji, co jest zupełnie inną operacją niż uzyskiwanie unikalnych wartości. Z kolei sortowanie danych malejąco lub rosnąco za pomocą klauzuli ORDER BY również nie ma związku z eliminacją duplikatów. Klauzula DISTINCT działa na poziomie wyników zapytania, podczas gdy grupowanie i sortowanie są procesami, które mogą być używane w różnych kontekstach. Typowym błędem jest mylenie DISTINCT z innymi operacjami manipulacji danymi, co prowadzi do nieporozumień w tworzeniu zapytań oraz ich interpretacji. Ważne jest, aby zrozumieć, że DISTINCT służy wyłącznie do uzyskiwania unikalnych rezultatów, podczas gdy inne operacje mają odmienne cele, takie jak agregacja lub porządkowanie wyników. Zrozumienie tych różnic jest kluczowe dla efektywnego korzystania z SQL i pracy z bazami danych.

Pytanie 4

W HTML, aby utworzyć hiperłącze, które otworzy się w nowej karcie przeglądarki, należy użyć atrybutu

A. rel = "prev"
B. rel = "external"
C. target = "_blank"
D. target = "_new"
Użycie atrybutu target="_new" nie jest ok w HTML, bo większość przeglądarek go po prostu nie rozumie. Może czasem zadziała, ale nie masz pewności, że zawsze tak będzie, co może być mylące dla użytkownika. Ludzie spodziewają się, że linki będą otwierane tak, jak to jest na ogół ustalone, a błędne atrybuty mogą sprawić, że wszystko będzie się zachowywać w dziwny sposób. Poza tym, rel="prev" to też jest zła droga, bo ten atrybut mówi o relacji między dokumentami, a "prev" wskazuje na wcześniejszą stronę w nawigacji, co nie ma nic wspólnego z linkami. I jeszcze rel="external" - to też nie jest to, bo nie jest to standard w HTML, który decyduje o tym, jak linki mają się otwierać. Użytkownicy mogą myśleć, że te atrybuty są ok, ale w rzeczywistości to prowadzi do nieporozumień, bo nie robią tego, co powinny. Lepiej zrozumieć, jak te atrybuty działają i kiedy ich używać, bo to naprawdę poprawia doświadczenia użytkowników w sieci.

Pytanie 5

Jakie narzędzie jest używane do organizowania oraz przedstawiania danych z wielu rekordów w celu ich wydruku lub dystrybucji?

A. formularz
B. makropolecenie
C. raport
D. kwerenda
Raport to narzędzie, które umożliwia zgrupowanie i prezentowanie informacji z wielu rekordów, co jest kluczowe w kontekście analizy danych oraz podejmowania decyzji biznesowych. Tworzenie raportów pozwala na syntetyzowanie informacji, co sprawia, że są one bardziej zrozumiałe dla odbiorców. W praktyce raporty mogą być wykorzystywane do monitorowania wyników sprzedaży, analiz finansowych, badań rynkowych czy oceny efektywności działań marketingowych. Dzięki zastosowaniu narzędzi do raportowania, takich jak systemy Business Intelligence, możliwe jest generowanie szczegółowych zestawień oraz wizualizacji, które wspierają decyzje strategiczne. Dobre praktyki w zakresie raportowania obejmują jasne definiowanie celów raportu, dobór odpowiednich wskaźników KPI oraz zastosowanie wizualizacji danych, co pozwala na lepsze zrozumienie przedstawianych informacji. W kontekście standardów branżowych, raporty powinny być tworzone zgodnie z zasadami klarowności, precyzji i adekwatności, aby skutecznie odpowiadały na potrzeby użytkowników.

Pytanie 6

W aplikacjach webowych tablice asocjacyjne to takie tablice, w jakich

A. istnieją przynajmniej dwa wymiary
B. indeks jest ciągiem znaków
C. elementy tablicy są zawsze indeksowane od 0
D. w każdej komórce tablicy znajduje się inna tablica
Indeksowanie elementów tablicy od zera jest charakterystyczne dla tradycyjnych tablic, w których liczby naturalne służą jako indeksy do dostępu do poszczególnych elementów. Koncepcja ta jest powszechnie stosowana w wielu językach programowania, jednak nie odnosi się do tablic asocjacyjnych. W przypadku tablic asocjacyjnych klucze mogą być dowolnymi łańcuchami znaków, co oznacza, że nie ograniczają się do prostego indeksowania numerycznego. Wartość, jaka znajduje się w każdej komórce takiej tablicy, nie musi być inną tablicą, ponieważ tablice asocjacyjne mogą przechowywać różne typy danych, od prostych wartości po złożone obiekty. W dodatku, tablice asocjacyjne nie wymagają istnienia przynajmniej dwóch wymiarów; mogą być jednowymiarowe, co oznacza, że nie wszystkie tablice muszą być wielowymiarowe, aby działały prawidłowo. Typowe błędy myślowe, które prowadzą do takich niepoprawnych wniosków, obejmują nieporozumienie dotyczące definicji i właściwości różnych struktur danych oraz ich zastosowania w programowaniu. Ważne jest, aby zrozumieć, że różne typy tablic mają różne zastosowania i właściwości, co wpływa na sposób, w jaki mogą być używane w praktycznych scenariuszach programowania.

Pytanie 7

W nagłówku dokumentu HTML umieszczono ```Strona miłośników psów``` Tekst ten pojawi się

A. w zawartości strony, w pierwszym widocznym nagłówku
B. w polu adresowym, przy podanym adresie URL
C. w zawartości strony, na banerze
D. na pasku tytułowym przeglądarki
Tag <title> w HTML to naprawdę istotny element dla każdej strony internetowej. Jest to coś, co pomaga ludziom szybko zorientować się, o co chodzi na danej stronie, zwłaszcza gdy mamy otwartych kilka kart w przeglądarce. Dobry tytuł nie tylko ułatwia nawigację, ale także ma spory wpływ na to, jak strona wypada w wyszukiwarkach. Z własnego doświadczenia mogę powiedzieć, że jeśli tytuł jest konkretny i zawiera ważne słowa kluczowe, to zwiększa szanse na przyciągnięcie użytkowników. Na przykład, jeśli strona jest dla miłośników psów, to warto w tytule umieścić słowa takie jak 'psy' czy 'opiekunowie psów'. Taki przykład mógłby wyglądać tak: <title>Miłośnicy psów - Porady, opieka, zdrowie</title>. Dobrze zrobiony tytuł może też poprawić CTR, czyli współczynnik klikalności, co jest ważne, żeby przyciągnąć więcej odwiedzających.

Pytanie 8

W języku MySQL należy wykorzystać polecenie REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian wyłącznie w definicji struktury bazy danych. Polecenie, które służy do odebrania tych uprawnień, ma następującą formę

A. REVOKE ALL ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
D. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
Polecenie REVOKE w MySQL jest używane do odbierania przydzielonych uprawnień użytkownikom. W przypadku użytkownika 'anna', aby odebrać mu prawa do modyfikacji struktury bazy danych, należy użyć polecenia REVOKE z odpowiednimi uprawnieniami. Wybór REVOKE CREATE ALTER DROP jest poprawny, ponieważ obejmuje kluczowe prawa związane z zarządzaniem strukturą tabeli. Uprawnienie CREATE pozwala na tworzenie nowych obiektów, ALTER umożliwia modyfikację istniejących obiektów, a DROP pozwala na ich usuwanie. Przydzielając te uprawnienia, użytkownik ma pełną kontrolę nad strukturą bazy danych. Odbierając te uprawnienia, ograniczamy możliwości użytkownika do modyfikacji struktury, co jest kluczowe w kontekście zarządzania bezpieczeństwem bazy danych i zapewnienia integralności danych. Przykładem zastosowania tego polecenia może być sytuacja, w której administrator bazy danych chce, aby użytkownik miał jedynie prawa do wprowadzania danych, ale nie do zmiany ich struktury. W takich przypadkach ważne jest, aby precyzyjnie definiować uprawnienia użytkowników, co może pomóc w unikaniu nieautoryzowanych zmian i potencjalnych utrat danych. Należy również odwołać się do standardów SQL, które definiują zarządzanie uprawnieniami w obiektach bazy danych, co jest kluczowym elementem każdego systemu zarządzania bazą danych.

Pytanie 9

Deklarując var x="true"; w języku JavaScript, jakiego typu zmienną się tworzy?

A. String (ciąg znaków)
B. Nieokreślonego (undefined)
C. Liczbowego
D. Logicznego
Odpowiedzi wskazujące na inne typy danych, takie jak typ logiczny czy liczbowy, zawierają istotne nieporozumienia dotyczące sposobu, w jaki JavaScript zarządza danymi. Typ logiczny w tym kontekście oznaczałby, że zmienna mogłaby przyjmować tylko wartości 'true' lub 'false', co jest mylnym założeniem, ponieważ 'true' jest tutaj częścią tekstu, a nie wartością logiczną. Z kolei typ liczbowy byłby właściwy dla zmiennych takich jak 1, 2 czy 3, które reprezentują liczby całkowite lub zmiennoprzecinkowe. W przypadku zadeklarowanej zmiennej 'var x="true";', wartość, która jest przypisywana, jest w rzeczywistości ciągiem tekstowym, mimo że zawiera słowo kluczowe 'true'. Typ danych 'undefined' z kolei oznacza, że zmienna została zadeklarowana, ale nie przypisano jej żadnej wartości, co również nie odpowiada sytuacji przedstawionej w pytaniu. Zrozumienie typów danych w JavaScript jest kluczowe dla unikania błędów typowych, zwłaszcza w kontekście zmiennych, które mogą być używane w różnych operacjach. W praktyce, to zrozumienie typów pozwala programistom lepiej zarządzać danymi i pisać bardziej niezawodny kod. Warto również pamiętać, że JavaScript automatycznie konwertuje typy w wielu sytuacjach, co może prowadzić do niezamierzonych rezultatów, dlatego proszę zwracać szczególną uwagę na przypisania i operacje wykonywane na zmiennych.

Pytanie 10

Który z wymienionych formatów umożliwia zapisanie materiału wideo z towarzyszącą ścieżką dźwiękową?

A. MP4
B. AAC
C. WMA
D. WAV
Odpowiedź MP4 jest poprawna, ponieważ jest to jeden z najpopularniejszych formatów kontenerowych używanych do przechowywania wideo wraz z dźwiękiem. Format MP4 (MPEG-4 Part 14) pozwala na efektywne kodowanie wideo, przy jednoczesnym zachowaniu wysokiej jakości obrazu i dźwięku. Umożliwia on przechowywanie różnorodnych strumieni danych, w tym wideo, audio, a także tekstu, co czyni go bardzo wszechstronnym rozwiązaniem dla twórców multimediów. Przykładowo, format MP4 jest często używany w aplikacjach do strumieniowania wideo, takich jak YouTube, oraz w systemach zarządzania treścią (CMS) do publikacji materiałów wideo w Internecie. Dzięki kompresji zgodnej z kodekiem H.264 dla wideo i AAC dla audio, pliki MP4 są względnie małe, co ułatwia ich przesyłanie i przechowywanie. To czyni format MP4 standardem branżowym w produkcji filmowej, telewizyjnej oraz w aplikacjach mobilnych i webowych.

Pytanie 11

Instrukcja ```REVOKE SELECT ON nazwa1 FROM nazwa2``` w SQL pozwala na

A. przyznawanie dostępu do tabeli
B. przyznawanie uprawnień zgodnie z określonym schematem
C. usunięcie użytkownika z bazy danych
D. odbieranie przyznanych uprawnień użytkownikowi
Odpowiedzi sugerujące nadawanie uprawnień są błędne, ponieważ REVOKE jest poleceniem służącym do odbierania, a nie przyznawania praw. Nadawanie uprawnień w SQL realizowane jest za pomocą komendy GRANT, która działa w odwrotny sposób, przyznając określone uprawnienia użytkownikom. W kontekście bezpieczeństwa danych, mylenie tych dwóch operacji może prowadzić do poważnych luk w zabezpieczeniach systemu baz danych. Użytkownicy mogą czasami myśleć, że REVOKE może być używane do usuwania praw, ale dotyczy to tylko odbierania wcześniejszych przyznanych uprawnień, a nie nadawania ich. Dodatkowo, są też odpowiedzi, które nawiązują do usuwania użytkownika z bazy danych; tego nie można osiągnąć za pomocą REVOKE, ponieważ to polecenie nie zajmuje się zarządzaniem samymi kontami użytkowników, a jedynie ich uprawnieniami. Ważne jest, aby znać różnice między tymi operacjami oraz ich zastosowanie w praktyce. Nieprawidłowe zrozumienie tych koncepcji może prowadzić do nieefektywnego zarządzania dostępem, co w konsekwencji naraża system na nieautoryzowany dostęp i potencjalne wycieki danych. Dlatego kluczowe jest, aby każdy administrator baz danych miał solidne podstawy dotyczące zarządzania uprawnieniami i stosował odpowiednie praktyki w codziennej pracy.

Pytanie 12

Jeśli zmienna $x przechowuje dowolną dodatnią liczbę naturalną, przedstawiony kod źródłowy PHP ma za zadanie wyświetlić:

$licznik = 0;
while ($licznik != $x)
{
    echo $licznik;
    $licznik++;
}
A. kolejne liczby od x do 0
B. liczby wczytywane z klawiatury, tak długo aż zostanie wczytana wartość x
C. kolejne liczby od 0 do x-1
D. losowe liczby z przedziału (0, x)
Niektóre odpowiedzi sugerują niepoprawne interpretacje kodu PHP. Na przykład, propozycja wyświetlenia losowych liczb z zakresu (0, x) nie jest prawidłowa, ponieważ nie ma w kodzie żadnego komponentu generującego liczby losowe. Również pomysł na wczytywanie liczb z klawiatury jest nieprawidłowy, kod nie zawiera żadnej funkcji umożliwiającej wprowadzanie danych przez użytkownika. Ostatecznie, propozycja wyświetlenia liczb od x do 0 również jest błędna, gdyż zmienna $licznik jest zawsze inkrementowana, co oznacza, że jej wartość zawsze wzrasta. Błędne interpretacje wynikają z niewłaściwego zrozumienia funkcjonowania pętli while oraz procesu inkrementacji zmiennych. Ważne jest, aby zawsze dokładnie analizować każdy fragment kodu, zwracając szczególną uwagę na instrukcje warunkowe i manipulacje zmiennymi.

Pytanie 13

W stylu CSS utworzono klasę uzytkownik. Na stronie będą wyświetlane czcionką w kolorze niebieskim: p.uzytkownik { color: blue; }

A. wszystkie akapity.
B. akapitów, którym przypisano klasę uzytkownik.
C. wszystkie elementy w sekcji <body> z przypisaną klasą uzytkownik.
D. jedynie elementy tekstowe takie jak <p>, <h1>.
Odpowiedź, że paragrafy przypisane do klasy 'uzytkownik' będą miały niebieską czcionkę, jest jak najbardziej trafna. W CSS używamy kropki, żeby zdefiniować klasę, co oznacza, że styl dotyczy tylko tych elementów HTML, które mają tę klasę. Więc jeśli masz coś takiego w HTML jak <p class='uzytkownik'>, to na pewno będzie to wyświetlane z niebieską czcionką, zgodnie z Twoją regułą CSS. Takie podejście super wspiera modularność i możliwość ponownego użycia kodu, co jest naprawdę ważne w tworzeniu stron. Dzięki klasom CSS łatwo da się ogarnąć styl w różnych miejscach w kodzie, a zmieniając kolor czcionki w pliku CSS, zmiana ta natychmiast zaktualizuje wszystkie elementy z tą klasą. Przykładowo, akapit <p class='uzytkownik'> będzie miał niebieski kolor i to fajnie wpływa na spójność wizualną strony. Pamiętaj też, że klasy CSS można stosować nie tylko do akapitów, ale też do innych znaczników, co daje większą swobodę w stylizacji treści.

Pytanie 14

Które z podanych formatów NIE JEST zapisane w języku CSS?

Ilustracja do pytania
A. C
B. D
C. B
D. A
Odpowiedź C jest prawidłowa, ponieważ atrybut bgcolor jest przestarzałą metodą określania koloru tła w HTML i nie jest częścią CSS. CSS (Cascading Style Sheets) zostało stworzone, aby oddzielić prezentację dokumentu od jego struktury. Korzystanie z CSS pozwala na lepsze zarządzanie stylem i spójność w wyglądzie wielu stron internetowych. Atrybuty HTML związane z wyglądem, takie jak bgcolor, zostały zastąpione przez deklaracje w CSS. Na przykład w CSS można ustawić kolor tła całej strony za pomocą selektora body i właściwości background-color. Takie podejście jest bardziej elastyczne i zgodne z nowoczesnymi standardami. Dzięki CSS możliwe jest stosowanie zaawansowanych stylizacji, takich jak gradienty czy obrazy tła, które nie były dostępne w prostych atrybutach HTML. Przy projektowaniu stron internetowych zaleca się, aby unikać przestarzałych atrybutów HTML, które mogą być niekompatybilne z nowoczesnymi przeglądarkami i powodować problemy z dostępnością.

Pytanie 15

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport pokazujący dane z tabeli, obejmujący tylko komputery z co najmniej 8 GB pamięci oraz procesorem Intel, można wykorzystać kwerendę

A. SELECT * FROM komputery WHERE procesor = 'Intel' OR pamiec < 8
B. SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec < 8
C. SELECT * FROM komputery WHERE procesor = 'Intel' OR pamiec >= 8;
D. SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec >= 8;
Analizując pozostałe odpowiedzi, można zauważyć, że każda z nich zawiera błędy konstrukcyjne, które prowadzą do niewłaściwej logiki w filtracji danych. W pierwszej odpowiedzi, użycie operatora OR sprawia, że kwerenda zwróci komputery, które mają procesor Intel lub mają pamięć RAM mniejszą niż 8 GB. Taka konstrukcja jest problematyczna, ponieważ nie spełnia warunku, że obydwa kryteria muszą być jednocześnie prawdziwe. Podobny problem występuje w drugiej odpowiedzi, gdzie znowu zastosowano operator OR, co również prowadzi do błędnego wyniku. Z kolei w trzeciej odpowiedzi, zastosowanie operatora AND w połączeniu z warunkiem pamiec < 8 ogranicza wyniki do komputerów, które mają procesor Intel, ale jednocześnie mają pamięć RAM poniżej 8 GB, co jest sprzeczne z wymaganiami zadania. Właściwe zrozumienie operatorów logicznych oraz ich zastosowanie w filtracji danych jest kluczowe dla skutecznego tworzenia zapytań SQL. Częstym błędem jest mylenie operatorów OR i AND, co może prowadzić do błędnych interpretacji danych. W kontekście projektowania baz danych i zapytań, ważne jest, aby precyzyjnie określić wymagania dotyczące danych oraz odpowiednio dobierać operatorów, co jest istotne dla zapewnienia dokładności i wydajności zapytań.

Pytanie 16

W JavaScript stworzono funkcję o nazwie licz_pitagoras, która oblicza długość przeciwprostokątnej w trójkącie prostokątnym, zgodnie z twierdzeniem Pitagorasa. Funkcja przyjmuje dwa parametry wejściowe i zwraca wynik. Poprawne wywołanie tej funkcji, wraz z uzyskaniem zwróconej wartości, będzie miało formę

A. licz_pitagoras(a, b);
B. licz_pitagoras(a, b, c);
C. licz_pitagoras(a, b) = c;
D. c = licz_pitagoras(a, b);
Wywołanie funkcji w JavaScript wymaga przestrzegania określonych zasad, które nie zostały spełnione w pozostałych odpowiedziach. Odpowiedź 'licz_pitagoras(a, b);' jest niekompletna, ponieważ pomija przypisanie wyniku do zmiennej. Funkcja może być wywołana, ale bez możliwości dalszego wykorzystania jej wyniku, co ogranicza jej użyteczność. Z kolei 'licz_pitagoras(a, b) = c;' sugeruje, że przypisanie wyniku może być wykonane w odwrotny sposób, co jest niezgodne z zasadami przypisywania wartości w JavaScript. Warto pamiętać, że w tym języku nie możemy przypisywać do wyniku funkcji, gdyż funkcje zwracają wartości, a nie są same w sobie zmiennymi. Natomiast 'licz_pitagoras(a, b, c);' sugeruje, że funkcja oczekuje trzech argumentów, co jest nieprawidłowe, ponieważ funkcja została zdefiniowana do przyjmowania tylko dwóch parametrów. Tego typu błędne założenia mogą prowadzić do frustracji podczas programowania, gdyż przydzielanie niewłaściwych argumentów do funkcji może skutkować błędami runtime. Dobrą praktyką jest zrozumienie definicji funkcji i jej parametrów przed jej wywołaniem, co pozwala na efektywne korzystanie z możliwości oferowanych przez JavaScript.

Pytanie 17

Zastosowanie klauzuli PRIMARY KEY w poleceniu CREATE TABLE sprawi, że dane pole stanie się

A. indeksem klucza
B. kluczem podstawowym
C. indeksem unikalnym
D. kluczem obcym
Niepoprawne odpowiedzi nie odzwierciedlają pełnej definicji klucza podstawowego oraz jego roli w strukturze bazy danych. Klucz obcy to inny typ klucza, który służy do tworzenia relacji między tabelami. Zwykle odwołuje się do kolumny klucza podstawowego w innej tabeli, co pozwala na integrację danych z różnych źródeł. Klucz obcy nie ma wymogu unikalności, co oznacza, że może występować wiele powtórzeń w danej kolumnie. Indeks klucza to termin odnoszący się do mechanizmu, który przyspiesza dostęp do danych w tabeli, ale nie jest tożsamy z kluczem podstawowym. Indeksy mogą być tworzone na różnych kolumnach tabeli, aby optymalizować czas odpowiedzi zapytań, ale nie gwarantują unikalności danych w tych kolumnach. Indeks unikalny to z kolei rodzaj indeksu, który zapewnia, że wartości w danej kolumnie są unikalne, jednak nie pełni on roli klucza głównego, ponieważ nie wymaga braku wartości NULL. W związku z tym, te niepoprawne odpowiedzi mylą pojęcia kluczy i indeksów, co jest istotne dla zrozumienia struktury i integracji danych w relacyjnych bazach danych.

Pytanie 18

Wskaż styl CSS za pomocą którego został uzyskany przedstawiony efekt.

  • psy
  • koty
  • chomiki
  • świnki morskie
  • rybki
A. ul li:nth-child(odd) { background-color: DodgerBlue; }
B. ul li:active { background-color: DodgerBlue; }
C. ul li:nth-child(even) { background-color: DodgerBlue; }
D. ul li:hover { background-color: DodgerBlue; }
Wybrane przez Ciebie odpowiedzi są nieprawidłowe. Zacznijmy od selektora CSS 'ul li:active { background-color: DodgerBlue; }' - aktywny stan elementu to moment, kiedy jest on aktualnie klikany, co nie pasuje do obserwowanego efektu. Następnie 'ul li:nth-child(odd) { background-color: DodgerBlue; }' - ten selektor odnosi się do nieparzystych elementów listy, podczas gdy na obrazku parzyste elementy mają niebieskie tło. Na koniec 'ul li:hover { background-color: DodgerBlue; }' - pseudoklasa :hover odnosi się do stanu, kiedy kursor myszy jest nad elementem, co również nie jest zgodne z efektem na obrazku. Wybór nieodpowiedniej pseudoklasy sugeruje, że nie zrozumiałeś do końca ich zastosowania w CSS. Jest to typowy błąd, który można naprawić przez dokładniejsze zapoznanie się z tym aspektem języka CSS, konkretnie z różnymi pseudoklasami i ich zastosowaniem.

Pytanie 19

W SQL wykorzystywanym przez system baz danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. Zabrania wprowadzenia wartości NULL
B. Jest używany, gdy wartości w kolumnie nie mogą się powtarzać
C. Wymusza unikalne nazwy kolumn w tabeli
D. Jest stosowany wyłącznie w przypadku kolumn liczbowych
Istnieje kilka powszechnych nieporozumień dotyczących atrybutu UNIQUE w kontekście relacyjnych baz danych, które mogą prowadzić do błędnych wniosków. Przede wszystkim, twierdzenie, że atrybut UNIQUE wymusza unikatowe nazwy pól tabeli, jest nieprecyzyjne. UNIKATOWOŚĆ odnosi się do wartości przechowywanych w kolumnie, a nie do nazw kolumn. W rzeczywistości, nowa kolumna nie może mieć takiej samej nazwy jak istniejąca kolumna w tej samej tabeli, co jest regułą odzwierciedlającą strukturalne ograniczenia bazy danych, ale nie ma to związku z atrybutem UNIQUE. Ponadto, atrybut ten nie blokuje możliwości wpisania wartości NULL w kolumnach. W MySQL, kolumna z atrybutem UNIQUE może zawierać wiele wartości NULL, ponieważ NULL jest traktowane jako wartość nieokreślona i nie jest uważane za duplikat. Dlatego stwierdzenie, że UNIQUE blokuje możliwość wpisania wartości NULL, jest mylące. Co więcej, atrybut UNIQUE nie jest ograniczony tylko do pól liczbowych; może być zastosowany do dowolnego typu danych, w tym tekstowych czy datowych. Stosowanie UNIQUE w zbiorach danych, które nie wymagają unikalności, może prowadzić do zbędnych błędów i komplikacji podczas wprowadzania danych. Dlatego ważne jest, aby zrozumieć, że atrybut ten odnosi się do wartości w kolumnach, a nie do ich typów czy nazw, co jest kluczowe dla efektywnego projektowania baz danych.

Pytanie 20

W HTML-u, aby umieścić animację FLASH (z rozszerzeniem .swf) na stronie www, powinno się wykorzystać znacznik

A. <audio>
B. <img>
C. <object>
D. <video>
No to wiesz, że znacznik <object> to najlepszy sposób na osadzanie multimediów na stronie, zwłaszcza animacji FLASH (.swf). Działa to tak, że możemy włączyć różne treści zewnętrzne do HTML, co jest super do integracji różnych plików, jak wideo czy dźwięki. Patrz na ten przykład: <object data='animacja.swf' width='600' height='400'> <param name='autoplay' value='true'> <param name='loop' value='true'> </object>. Zauważ, że <object> może mieć różne atrybuty, które pomagają w kontrolowaniu jak to wszystko się wyświetla, jak 'width', 'height' i inne parametry odtwarzania. Jednak, biorąc pod uwagę dzisiejsze standardy, FLASH jest trochę na wylocie przez problemy z bezpieczeństwem i wsparciem przeglądarek. Lepiej więc, zamiast tego, patrzeć w stronę HTML5 i JavaScript do tworzenia animacji. Można używać animacji CSS3 lub różnych bibliotek JS, które dają dużo więcej możliwości i lepsze wsparcie na urządzeniach mobilnych.

Pytanie 21

Technika projektowania algorytmów, która polega na dzieleniu problemu na dwa lub więcej mniejszych podproblemów, aż do momentu gdy fragmenty staną się na tyle proste, że można je rozwiązać bezpośrednio, to

A. sortowanie przez wybór
B. słowa Fibonacciego
C. sito Eratostenesa
D. dziel i zwyciężaj
Wybór innych odpowiedzi, takich jak sito Eratostenesa, sortowanie przez wybór czy słowa Fibonacciego, wskazuje na pewne nieporozumienia dotyczące technik projektowania algorytmów. Sito Eratostenesa jest klasycznym algorytmem służącym do znajdowania liczb pierwszych w określonym zakresie, wykorzystując podejście oznaczania wielokrotności, a więc nie ma nic wspólnego z podziałem problemu. Z kolei sortowanie przez wybór to prosty algorytm sortowania, który realizuje sortowanie poprzez wielokrotne wybieranie najmniejszego elementu i umieszczanie go na początku. Ten algorytm nie wykorzystuje strategii dzielenia problemu, ponieważ działa na zasadzie iteracyjnego przeszukiwania danych. Słowa Fibonacciego dotyczą zasady generowania ciągu liczb, która również nie ma związku z metodą dziel i zwyciężaj. Typowym błędem jest mylenie tych koncepcji z bardziej złożonymi schematami rozwiązywania problemów. Przykładem może być niewłaściwe zastosowanie prostych algorytmów, które nie są w stanie efektywnie rozwiązywać bardziej złożonych problemów, co prowadzi do nieoptymalnych wyników. Ważne jest zrozumienie, że odpowiednie zastosowanie odpowiednich metod algorytmicznych jest kluczowe w informatyce oraz inżynierii oprogramowania.

Pytanie 22

Który typ danych obsługiwany przez PHP jest przeznaczony do obsługi zmiennych typu logicznego?

A. String
B. Boolean
C. Integer
D. Float
Typy Float, Integer oraz String nie są odpowiednie do przechowywania informacji logicznych. Float reprezentuje liczby zmiennoprzecinkowe, co oznacza, że przechowuje dane numeryczne z częścią dziesiętną. Używanie typu float do logiki programistycznej może prowadzić do nieścisłości, ponieważ nie potrafi on właściwie reprezentować wartości logicznych, takich jak prawda czy fałsz. Z kolei Integer to typ całkowity, który również nie ma zastosowania w kontekście zmiennych logicznych. Przechowuje tylko liczby całkowite, a jego użycie w decyzjach logicznych może prowadzić do błędnych interpretacji, gdyż wartości całkowite nie są bezpośrednio związane z pojęciem prawdy i fałszu. String, będący typem reprezentującym dane tekstowe, również nie jest odpowiedni do tego celu. Choć można konwertować ciągi tekstowe na zmienne logiczne, takie jak poprzez interpretację 'true' jako prawdy i 'false' jako fałszu, nie jest to efektywne ani zalecane w praktyce ze względu na możliwość wystąpienia błędów. W programowaniu ważne jest, aby stosować odpowiednie typy danych, co zwiększa czytelność oraz jakość kodu, a także ułatwia jego utrzymanie. Prawidłowe stosowanie typów danych, w tym boolean, jest kluczowe dla tworzenia efektywnych i błędoodpornych aplikacji.

Pytanie 23

Jakie polecenie należy zastosować, aby utworzyć klucz obcy na wielu kolumnach przy tworzeniu tabeli?

A. CONSTRAINT fk_osoba_uczen FOREIGN KEY ON(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
B. CONSTRAINT fk_soba_uczen FOREIGN KEY(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
C. CONSTRAINT (nazwisko, imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
D. CONSTRAINT (nazwisko, imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
Niepoprawne odpowiedzi zawierają kilka istotnych błędów w składni oraz koncepcji definiowania kluczy obcych. W pierwszej przykładowej odpowiedzi, brak jest odpowiedniej składni przy definiowaniu klucza obcego, ponieważ użycie 'ON' jest nieprawidłowe i nie jest zgodne z normami SQL. Klucz obcy powinien być zdefiniowany w kontekście kolumn, a nie z użyciem 'ON'. Kolejna odpowiedź pomija całkowicie zasadniczą strukturę polecenia SQL, co prowadzi do zamieszania w kontekście definicji kluczy obcych. Zrozumienie, że klucz obcy musi być zdefiniowany poprzez konkretne kolumny i odniesienia do innych tabel, jest kluczowe dla poprawnej pracy z bazami danych. Ostatnia błędna odpowiedź pomija konwencję użycia 'FOREIGN KEY' oraz 'REFERENCES', co jest fundamentalnym błędem. Prawidłowe podejście wymaga precyzyjnego określenia nie tylko kolumn, ale i tabeli, do której klucz obcy się odnosi. Zastosowanie tych zasad jest kluczowe w projektowaniu i implementacji relacyjnych baz danych oraz w utrzymaniu ich integralności, co jest istotnym aspektem dla efektywnego zarządzania danymi.

Pytanie 24

Opracowanie logicznego układu strony internetowej wiąże się z

A. stworzeniem zbioru grafik dla strony.
B. określeniem zawartości strony.
C. umiejscowieniem elementów w konkretnych punktach strony.
D. zdefiniowaniem adresów URL dla podstron strony.
Zdefiniowanie treści witryny to proces, który dotyczy stworzenia zawartości, ale nie ma bezpośredniego związku z logicznym układem witryny. Treść jest ważnym aspektem, ale sama w sobie nie definiuje, jak użytkownicy będą się poruszać po stronie, ani nie wpływa na jej strukturalne rozmieszczenie. Opracowanie zestawu grafik dla witryny jest kluczowe dla estetyki, ale to nie elementy wizualne decydują o organizacji treści. Grafiki powinny wspierać rozmieszczenie elementów, a nie go definiować. Ustalanie adresów URL dla podstron witryny, choć istotne dla SEO i nawigacji, również nie odnosi się bezpośrednio do logicznego układu witryny. Adresy URL są technicznymi identyfikatorami zasobów, ale ich struktura nie ma wpływu na to, jak elementy są rozmieszczone w kontekście wizualnym i funkcjonalnym witryny. Właściwe podejście do projektowania witryny wymaga zrozumienia, że wszystkie aspekty muszą współgrać ze sobą, ale to właśnie rozmieszczenie elementów w przestrzeni decyduje o jej użyteczności.

Pytanie 25

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

A. wykluczenia.
B. grupowania.
C. sumy.
D. części wspólnej.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 26

Jakie jest zadanie poniższej pętli? ```int x = 0; while (x < 10) { mojeKsiazki[x] = new Ksiazka(); x++; }```

A. uzupełnienie tablicy Ksiazka danymi.
B. wyświetlenie danych z tabeli Ksiazka na ekranie.
C. stwórzenie jednego obiektu typu mojeKsiazki
D. stworzenie dziesięciu instancji obiektów typu Ksiazka.
Analizując dostępne odpowiedzi, można zauważyć szereg nieprawidłowych koncepcji w odniesieniu do działania pętli while. Odpowiedź sugerująca wypełnienie tabeli Ksiazka danymi wskazuje na nieporozumienie, ponieważ pętla nie wprowadza żadnych danych do obiektów Ksiazka; zamiast tego jedynie tworzy ich instancje. Kolejna odpowiedź, dotycząca wypisywania danych na ekranie, jest również błędna, ponieważ w przedstawionym kodzie nie ma żadnej operacji wyświetlania danych, a jedynie przypisanie nowych obiektów do tablicy. Trzecia niepoprawna koncepcja, związana z utworzeniem jednego obiektu typu mojeKsiazki, myli się co do natury tablic. Tablica mojeKsiazki jest jedną zmienną przechowującą wskaźniki do utworzonych obiektów typu Ksiazka, a nie pojedynczym obiektem. W kontekście programowania obiektowego istotne jest zrozumienie różnicy pomiędzy instancjami klas a kolekcjami tych instancji, co jest kluczowe dla efektywnego zarządzania pamięcią i strukturami danych. Typowe błędy myślowe, które prowadzą do takich wniosków, to brak znajomości podstawowych zasad programowania obiektowego oraz mylenie operacji na obiektach z operacjami na tablicach lub innych strukturach danych. Ważne jest, aby każdy programista zrozumiał, jak działają pętle oraz jak skutecznie tworzyć i zarządzać obiektami w ramach tablic czy kolekcji.

Pytanie 27

Jakie będzie wynik działania programu napisanego w JavaScript, umieszczonego w ramce, kiedy wprowadzisz wartość 5?

var n, i;
var a = 1;

n = prompt("Podaj n:", "");

for (i=n; i>=2; i--)
    a*=i;

document.write("Wynik ",a);
A. 625
B. 60
C. 120
D. 125
Niepoprawne odpowiedzi wynikają z niezrozumienia działania pętli i operatora *= w języku JavaScript. Program implementuje algorytm obliczający silnię, co oznacza wielokrotne mnożenie kolejnych liczb całkowitych malejących aż do wartości 2. Niezrozumienie, że silnia n to iloczyn n*(n-1)*(n-2)*...*2, prowadzi do błędnych odpowiedzi. Początkowa wartość zmiennej a ustawiona na 1 jest kluczowa, ponieważ działa jako neutralny element mnożenia. Każda iteracja pętli zmniejsza wartość i, a *= i oznacza, że a jest mnożone przez bieżącą wartość i, co jest często źle interpretowane jako dodawanie lub niedokładne mnożenie. To typowy błąd przy próbie szybkiego zrozumienia kodu bez analizy krok po kroku. Kolejnym częstym błędem jest złe zrozumienie zakresu działania pętli for, która w tym przypadku działa od wartości n aż do 2 włącznie, co jest istotne, bo mnożenie przez 1 nie zmienia wyniku, ale jest częścią klasycznej definicji silni. Dla danych wejściowych 5, poprawnym wynikiem jest 5*4*3*2*1, co daje 120, a inne wartości jak 125, 60 czy 625 wskazują na błędne założenia lub niepełne zrozumienie mechanizmu działania pętli i mnożenia w kontekście silni.

Pytanie 28

Poniższy fragment kodu PHP służy do zarządzania

if (empty($_POST["name"])) {
    $nameErr = "Name is required";
}
A. sesjami
B. bazami danych
C. formularzami
D. ciasteczkami
Kod PHP obsługujący formularz często bywa mylony z innymi procesami ze względu na podobieństwo składniowe oraz zastosowanie tych samych superglobalnych tablic. Jednakże w przykładzie przedstawionym w pytaniu użycie $_POST jednoznacznie wskazuje na interakcję z danymi przesyłanymi z formularza. Kod nie dotyczy ciasteczek, które używają tablicy $_COOKIE do operacji związanych z przechowywaniem małych ilości danych w przeglądarce klienta. Również nie obejmuje zarządzania sesjami, które w PHP realizowane jest poprzez tablicę $_SESSION oraz funkcje takie jak session_start(), służące do przechowywania danych użytkownika pomiędzy różnymi żądaniami. Bazy danych natomiast operują na zupełnie innych mechanizmach i wymagają specyficznych funkcji oraz rozszerzeń, jak MySQLi czy PDO, do interakcji z systemami zarządzania bazami danych. Częstym błędem jest przypisywanie funkcji walidacyjnych formularzy również do innych komponentów aplikacji, co może prowadzić do mylnych wniosków na temat ich roli i zastosowania. Zrozumienie różnic między tymi elementami jest kluczowe dla poprawnego projektowania i implementacji aplikacji webowych, zapewniając ich bezpieczeństwo i poprawne działanie. Kod PHP powinien być pisany z uwzględnieniem zasad separacji logiki aplikacyjnej, aby każda część systemu była odpowiedzialna za specyficzne zadania, co ułatwia utrzymanie i rozwój aplikacji.

Pytanie 29

Która z poniższych funkcji w języku PHP zmieni słowo „kota” na „mysz” w zdaniu „ala ma kota”?

A. replace("kota", "mysz", "ala ma kota");
B. replace("ala ma kota", "kota", "mysz");
C. str_replace("ala ma kota", "kota", "mysz");
D. str_replace( "kota", "mysz", "ala ma kota");
Wszystkie inne odpowiedzi wykazują nieporozumienia w zakresie używania funkcji zamiany tekstu w PHP. Na przykład, pierwszy wariant używa funkcji replace, która nie istnieje w standardowej bibliotece PHP. W PHP funkcja do zamiany ciągów znaków to str_replace, co oznacza, że taka odpowiedź nie może być prawidłowa. Z kolei drugi wariant również błędnie stosuje funkcję replace, ale dodatkowo zamienia argumenty – pierwszy argument powinien być tym, co zamieniamy, a nie tym, co jest zmieniane. Użycie str_replace z nieodpowiednią kolejnością argumentów prowadziłoby do niespodziewanych rezultatów. Natomiast trzecia odpowiedź podaje argumenty w prawidłowej kolejności, jednak również używa nieistniejącej funkcji replace, co czyni ją błędną. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych wniosków, to nieprawidłowe rozumienie syntaktyki funkcji oraz mylenie istniejących funkcji z nieistniejącymi. Ważne jest zrozumienie, że w PHP musimy korzystać z dokumentacji, aby upewnić się, że używamy odpowiednich funkcji i argumentów, co jest kluczowe dla prawidłowego działania aplikacji. Niezrozumienie tych podstaw może prowadzić do frustracji i trudności w programowaniu.

Pytanie 30

Instrukcja w SQL ALTER TABLE USA ... ma na celu

A. stworzenie nowej tabeli USA
B. skasowanie tabeli USA
C. zmianę tabeli USA
D. przypisanie nowej wersji tabeli USA
Polecenie ALTER TABLE w SQL to coś, co pozwala na zmiany w tabelach bazy danych. Możesz dzięki niemu dodawać nowe kolumny, usuwać je czy modyfikować, a nawet dodawać różne klucze lub indeksy. Na przykład, jeżeli chcesz dodać nową kolumnę w tabeli USA, użyjesz tego polecenia: ALTER TABLE USA ADD COLUMN NowaKolumna VARCHAR(255); Warto też wiedzieć, że ALTER TABLE jest częścią SQL DDL, czyli języka definiującego strukturę bazy danych. Dobrą praktyką jest robienie kopii zapasowych przed wprowadzaniem jakichkolwiek zmian, bo niechciane zmiany mogą prowadzić do utraty danych. Z tego, co mnie nauczyli, ważne jest też, by modyfikacje były przemyślane i przetestowane, zwłaszcza w kontekście zasad ACID (Atomicity, Consistency, Isolation, Durability). Bazy danych, jak MySQL czy PostgreSQL, mają różne sposoby na ułatwienie pracy z ALTER TABLE, co czyni je bardzo przydatnymi w codziennym zarządzaniu danymi.

Pytanie 31

Do jakich zadań można wykorzystać program FileZilla?

A. kompilowania skryptu na stronie
B. publikacji strony internetowej
C. sprawdzania poprawności strony internetowej
D. analizowania skryptu na stronie
Walidacja strony internetowej polega na sprawdzaniu poprawności kodu HTML lub CSS, co zapewnia, że witryna jest zgodna z określonymi standardami, takimi jak W3C. Narzędzia do walidacji, takie jak W3C Validator, służą do analizy kodu źródłowego, wskazując błędy, które mogą wpłynąć na wyświetlanie strony w różnych przeglądarkach. W kontekście FileZilla, to oprogramowanie nie jest zaprojektowane do tego celu, a jego użycie w tej roli byłoby mylnym podejściem. Debugowanie skryptu na stronie, na przykład w językach JavaScript czy PHP, wymaga zastosowania narzędzi takich jak debugger w przeglądarkach internetowych lub IDE. FileZilla nie oferuje żadnych funkcji debugowania, co sprawia, że jest to nieodpowiedni wybór dla programistów zajmujących się rozwiązywaniem problemów w kodzie. Podobnie, kompilacja skryptu, jak w przypadku języków programowania, takich jak C++ czy Java, wymaga narzędzi kompilacyjnych, a nie klienta FTP. FileZilla nie przetwarza ani nie kompiluje kodu, więc nie może być użyta w tym kontekście. Typowym błędem myślowym jest mylenie narzędzi używanych do transferu plików z tymi, które są używane do programowania i rozwoju aplikacji webowych. Właściwe zrozumienie ról poszczególnych narzędzi w ekosystemie tworzenia stron internetowych jest kluczowe dla efektywnej pracy i unikania nieporozumień.

Pytanie 32

Funkcja agregująca MIN w SQL ma na celu obliczenie

A. wartości najmniejszej w kolumnie wynikowej kwerendy
B. średniej wartości różnych pól w rekordzie zwróconym przez zapytanie
C. długości tekstu w rekordach zwróconych przez kwerendę
D. liczby wierszy, które zostały zwrócone przez kwerendę
W odpowiedziach, które nie zostały wybrane, pojawia się szereg błędnych interpretacji dotyczących funkcji agregującej MIN. Wartość długości znaków w rekordach nie ma bezpośredniego związku z funkcją MIN. Funkcje takie jak LENGTH mogą być używane do obliczania długości ciągów znakowych, lecz nie są one związane z MIN, który skupia się na wartościach liczbowych. Liczba wierszy zwróconych przez kwerendę odnosi się do użycia funkcji COUNT, a nie MIN. Liczenie rekordów jest inną operacją, która służy do zliczania wszystkich wierszy spełniających określone kryteria. Z kolei średnia wartości różnych pól rekordu, uzyskiwana przy użyciu funkcji AVG, również jest odmienną operacją, która nie ma związku z działaniem MIN. Te pomyłki mogą wynikać z nieporozumienia dotyczącego podstawowych funkcji agregujących w SQL, które są kluczowe w analizie danych. Każda z tych funkcji ma swoje specyficzne zastosowania i zrozumienie ich różnic jest fundamentalne dla efektywnej pracy z bazami danych. Niezrozumienie, co dokładnie robi funkcja MIN, może prowadzić do błędnych wniosków w analizach oraz do niepoprawnych zapytań w projektach bazodanowych.

Pytanie 33

Przy użyciu polecenia ALTER TABLE można

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

Pytanie 34

Przygotowano fragment kodu PHP z zadeklarowaną zmienną tablicową. Jaki wynik zostanie wyświetlony jako imię po wykonaniu tego kodu?

$imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra');
echo $imiona[2];
A. Anna
B. Krzysztof
C. Tomasz
D. Aleksandra
Niestety, inne odpowiedzi są błędne, bo wynikają z pomyłki w zrozumieniu indeksowania tablic w PHP. W tym języku liczymy od zera, czyli pierwszy element przypisany ma indeks 0, a nie 1 czy 2. To jest dość powszechna zasada, którą można spotkać w innych językach, jak C czy JavaScript, więc warto to ogarnąć. Spójrzmy na naszą tablicę: $imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra'); mamy 'Annę' na indeksie 0, 'Tomasza' na 1, 'Krzysztofa' na 2 i 'Aleksandrę' na 3. Jak używamy echo $imiona[2], to chcemy wyciągnąć trzeci element, czyli 'Krzysztofa'. Często błędy wynikają z myślenia, że liczymy od jedynki, co jest bardziej intuicyjne w niektórych kontekstach. Jednak w programowaniu przyjęło się liczenie od zera, co ułatwia różne obliczenia i operacje. Na przykład, w pętlach for często zaczynamy od i=0, co jest całkiem logiczne w związku z indeksowaniem. Niepoprawny indeks może prowadzić do błędów w czasie wykonania, więc warto to rozumieć, żeby uniknąć takich sytuacji.

Pytanie 35

Funkcja CONCAT() w SQL służy do

A. przycinania tekstu do wyświetlenia
B. uzyskiwania podłańcucha ze wskazanego tekstu
C. łączenia tekstów do wyświetlenia
D. usuwania określonego tekstu
Funkcja CONCAT() w SQL nie ma nic wspólnego z usuwaniem tekstu, przycinaniem go ani wyznaczaniem podłańcuchów. Usunięcie wskazanego tekstu to inaczej operacja związana z funkcją REPLACE lub DELETE, które służą do usuwania fragmentów danych z tabel, a nie ich łączenia. Przycinanie tekstu, z kolei, może być realizowane za pomocą funkcji CHARINDEX lub LEN, które są używane do określenia długości tekstu lub jego pozycji, ale nie mają one zastosowania w kontekście łączenia różnych elementów. Odpowiedź sugerująca, że CONCAT() wyznacza podłańcuchy znaków, również jest mylna, ponieważ do tego celu służą funkcje takie jak SUBSTRING czy LEFT, które pozwalają na wyodrębnianie określonych części tekstu na podstawie pozycji. Typowym błędem myślowym jest mylenie różnych funkcji SQL, które pełnią odrębne role. Należy pamiętać, że każda z tych operacji ma swoje unikalne zastosowanie i są one wykorzystywane w różnych kontekstach. Dlatego przed przystąpieniem do użycia konkretnej funkcji, warto dokładnie zrozumieć jej przeznaczenie i działanie, aby uniknąć nieporozumień i błędów w zapytaniach SQL.

Pytanie 36

Instrukcja w języku JavaScript

var napis1 = new napisy();
ma na celu
A. zadeklarowanie zmiennej napis1 oraz uruchomienie funkcji, która przyjmuje jako argument napis1
B. wykonanie metody obiektu napisy
C. stworzenie obiektu napis1 z klasy napisy
D. stworzenie nowej klasy napis1
Niepoprawne odpowiedzi bazują na powszechnych nieporozumieniach dotyczących podstaw programowania w JavaScript. Wywołanie metody obiektu napisów nie może być zrealizowane w sposób przedstawiony w pytaniu, ponieważ fragment "var napis1 = new napisy();" nie wskazuje na jakiekolwiek metody, a jedynie na tworzenie nowego obiektu. Istnieje różnica między deklarowaniem obiektu a wywoływaniem jego metod. Również nie ma możliwości, aby zadeklarować zmienną napis1 i jednocześnie wywołać funkcję z jej argumentem w tym kontekście, gdyż zapis ten nie zawiera żadnych funkcji. Kolejna koncepcja dotycząca utworzenia nowej klasy jest błędna, ponieważ "var napis1 = new napisy();" nie tworzy klasy, a instancję obiektu. W praktyce, typowe błędy myślowe związane z tymi odpowiedziami wynikają z mylenia instancji obiektu z definicją klasy. Użytkownicy mogą myśleć, że przypisanie "new napisy()" tworzy klasę, podczas gdy tak naprawdę ta operacja tworzy nowy obiekt z dostępem do metod i właściwości zdefiniowanych w klasie napisy. Ważne jest zrozumienie, że klasy w JavaScript muszą być zdefiniowane wcześniej, aby można było tworzyć ich instancje, co stanowi kluczowy element programowania obiektowego.

Pytanie 37

Zaprezentowane pole input daje możliwość

<input type="checkbox" name="text1" value="text2">
A. wybrania opcji
B. wpisania dowolnego tekstu
C. zaznaczenia opcji z listy zawierającej wartości text1 i text2
D. wprowadzenia hasła
Element HTML z atrybutem type="checkbox" jest używany do tworzenia pól wyboru które pozwalają użytkownikowi zaznaczać jedną lub więcej opcji. Checkboxy są częstym elementem formularzy internetowych gdyż umożliwiają elastyczne zbieranie danych od użytkowników. Przykładowo w formularzach rejestracyjnych można używać ich do akceptacji regulaminu zapisów na newslettery czy wyboru zainteresowań. Składnia takiego elementu jest prosta: tag <input> z atrybutami name i value. Atrybut name jest niezbędny do grupowania checkboxów a value do przekazywania wartości zaznaczonej opcji do serwera podczas wysyłania formularza. Dobre praktyki zalecają dodawanie etykiet opisujących znaczenie checkboxa co poprawia dostępność dla osób korzystających z czytników ekranowych. Stosowanie checkboxów powinno być przemyślane by nie przeciążać użytkownika zbyt dużą liczbą opcji co mogłoby negatywnie wpłynąć na UX. Właściwe użycie checkboxów zgodne ze standardami HTML i UX jest kluczowe dla intuicyjnego interfejsu użytkownika.

Pytanie 38

$n = '[email protected]'; $dl = strlen($n); $i = 0; while ($i < $dl && $n[$i] != '@') {     echo $n[$i];     $i++; } Fragment kodu w języku PHP wyświetli

A. nazwę konta z znakiem @, czyli 'adres@'
B. tylko nazwę domeny, czyli 'host.pl'
C. wyłącznie nazwę konta, czyli 'adres'
D. cały adres e-mail, czyli '[email protected]'
Analizując niepoprawne odpowiedzi, warto zwrócić uwagę na kilka kluczowych aspektów. W przypadku odpowiedzi, która wskazuje na wypisanie nazwy konta ze znakiem '@', należy zauważyć, że kod w rzeczywistości nie wlicza znaku '@' do wypisywanej wartości. Działanie pętli opiera się na warunku przerywającym, który kończy iterację przed napotkaniem '@', co oznacza, że nie może on znaleźć się w rezultacie. Z kolei wskazanie, że kod wypisze cały adres e-mail jest błędne, ponieważ pętla jest zaprojektowana tak, aby zakończyć działanie przed osiągnięciem znaku '@', więc taki wynik nie jest możliwy. Ostatnia niepoprawna odpowiedź, sugerująca, że kod wypisze samą nazwę domeny, jest również myląca. W kodzie nie ma logiki, która pozwalałaby na wyodrębnienie części po znaku '@'; zamiast tego pętla przerywa działanie, gdy osiągnie ten znak. Jest to kluczowe, aby zrozumieć, że kod nie ma mechanizmu do analizy lub rozdzielania adresu e-mail po znaku '@'. Wszystkie te odpowiedzi pokazują niezrozumienie, jak działają operacje na ciągach w PHP oraz logikę pętli, która w kontekście tego fragmentu kodu jest fundamentalna dla uzyskania prawidłowego wyniku.

Pytanie 39

W skrypcie JavaScript, aby uzyskać dane od użytkownika, można wykorzystać okno wyświetlane przez funkcję

A. confirm()
B. alert()
C. documet.write()
D. prompt()
Użycie alert() w kontekście pobierania danych od użytkownika jest niepoprawne, ponieważ ta funkcja służy jedynie do wyświetlania komunikatów informacyjnych, które nie pozwalają na wprowadzenie żadnych danych. Użytkownik może tylko odczytać wiadomość i kliknąć przycisk, aby ją zamknąć. To sprawia, że alert() nie jest funkcjonalnym narzędziem do interakcji, a jedynie prostym sposobem na informowanie użytkownika. Z kolei confirm() również nie jest właściwym rozwiązaniem, ponieważ ta funkcja służy do uzyskiwania potwierdzenia od użytkownika na temat określonej akcji, oferując jedynie opcje "OK" i "Anuluj", co nie umożliwia wprowadzenia tekstu. Wiele osób może mylnie sądzić, że zarówno alert(), jak i confirm() są odpowiednie do zbierania danych, jednak ich zastosowanie ogranicza się do prostych interakcji. Ponadto, documet.write() (co prawdopodobnie jest literówką, a powinno być document.write()) jest metodą służącą do dynamizacji treści HTML na stronie, ale nie ma żadnego związku z pobieraniem danych od użytkownika. Użycie tej metody do generowania treści na stronie może prowadzić do problemów z wydajnością i trudnościami w utrzymaniu kodu. Współczesne standardy wskazują, że lepiej jest korzystać z formularzy HTML oraz zdarzeń JavaScript do interakcji z użytkownikami, co nie tylko poprawia jakość kodu, ale również zwiększa ergonomię i funkcjonalność aplikacji.

Pytanie 40

Funkcja zapisana w języku PHP ma postać jak poniżej. Jej zadaniem jest

function fun1($liczba)
{
    if($liczba % 2 == 0)
        return 1;

    return 0;
}
A. zwrócenie wartości 1, gdy liczba jest parzysta.
B. wypisanie liczby parzystej.
C. wypisanie liczby nieparzystej.
D. zwrócenie wartości 0, gdy liczba jest parzysta.
Wybrana przez Ciebie odpowiedź jest niepoprawna. W analizowanej funkcji nie ma elementów, które sugerowałyby wypisywanie wyniku, a tylko zwracanie go - stąd odpowiedzi sugerujące wypisywanie są błędne. Funkcja fun1($liczba) w PHP zwraca wartość 1, gdy liczba podana jako argument jest parzysta, a nie wypisuje jej. W PHP, do wypisywania wartości służy funkcja echo lub print, której tutaj brakuje. Poza tym, funkcja zwraca wartość 0, gdy liczba nie jest parzysta, a nie gdy jest parzysta - zatem, ostatnia odpowiedź także jest niepoprawna. Błędne odpowiedzi wynikają z niewłaściwego zrozumienia mechanizmu działania funkcji i operacji, które na niej są wykonywane. Ważne jest, aby umieć odróżnić operacje zwracania wartości od wypisywania jej, a także zrozumieć znaczenie operatora modulo i warunku porównania w kontekście analizowanej funkcji.