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: 22 kwietnia 2026 01:21
  • Data zakończenia: 22 kwietnia 2026 01:40

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

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

Jaki zapis w HTML służy do określenia kodowania znaków w dokumencie?

A. <charset="UTF-8">
B. <meta charset="UTF-8">
C. <meta encoding="UTF-8">
D. <encoding="UTF-8">
Poprawna odpowiedź to <meta charset="UTF-8">, która jest standardowym sposobem deklaracji kodowania znaków w dokumentach HTML. Użycie tego tagu w sekcji <head> dokumentu HTML informuje przeglądarki internetowe o tym, jakie znaki będą używane w danym dokumencie, co jest kluczowe dla prawidłowego wyświetlania treści. Deklaracja 'UTF-8' jest szczególnie powszechna, ponieważ obsługuje wiele różnych znaków i symboli z różnych języków, co czyni ją uniwersalnym wyborem dla większości stron internetowych. Przykłady zastosowań obejmują strony wielojęzyczne, gdzie ważne jest, aby tekst został prawidłowo wyświetlony bez błędów z powodu nieodpowiedniego kodowania. Zgodnie z najlepszymi praktykami w branży, zawsze zaleca się umieszczanie tego tagu na początku sekcji <head> dokumentu, aby zapewnić, że wszystkie elementy strony będą renderowane zgodnie z zamierzeniem twórcy. Użycie odpowiedniego kodowania znaków jest również istotne z punktu widzenia SEO, ponieważ wyszukiwarki mogą mieć problemy z indeksowaniem treści, jeśli kodowanie jest nieprawidłowo ustawione.

Pytanie 2

Kompresja bezstratna pliku graficznego zapewnia

A. oryginalną jakość grafiki
B. mniejszą ilość warstw
C. rozmiar większy niż w oryginale
D. wyższą jakość
Kompresja bezstratna pliku graficznego to technika, która pozwala na zmniejszenie rozmiaru pliku graficznego bez utraty jakichkolwiek informacji wizualnych. Oznacza to, że po procesie kompresji, obraz zachowuje swoją pierwotną jakość, a wszystkie detale, kolory i tekstury pozostają nienaruszone. Przykładami formatów wykorzystujących kompresję bezstratną są PNG (Portable Network Graphics) oraz TIFF (Tagged Image File Format). W przypadku PNG, algorytm kompresji, znany jako DEFLATE, pozwala na efektywne zmniejszenie rozmiaru pliku poprzez usuwanie nadmiarowych danych bez wpływu na jakość obrazu. Kompresja bezstratna jest szczególnie ważna w dziedzinach, gdzie jakość grafiki ma kluczowe znaczenie, na przykład w druku, gdzie jakiekolwiek zniekształcenia mogłyby wpłynąć na finalny efekt. Umożliwia ona również edytowanie obrazów bez obawy o degradację jakości, co jest istotne w pracy z grafiką komputerową oraz fotografią. Dzięki temu technologia ta zyskuje na popularności wśród grafików i profesjonalistów zajmujących się obróbką zdjęć.

Pytanie 3

W SQL, który jest używany przez bazę danych MySQL w tabeli samochody, aby przypisać wartość 0 do kolumny przebieg, trzeba skorzystać z zapytania

A. UPDATE samochody SET przebieg=0;
B. UPDATE przebieg SET 0 TABLE samochody;
C. UPDATE przebieg SET 0 FROM samochody;
D. UPDATE samochody SET przebieg VALUE 0;
Pierwsza z błędnych odpowiedzi sugeruje kwerendę 'UPDATE przebieg SET 0 FROM samochody', która jest niepoprawna ze względu na niewłaściwą składnię. W SQL nie stosuje się słowa kluczowego 'FROM' w tym kontekście, ponieważ UPDATE działa na zaktualizowanej tabeli bez potrzeby określania źródła danych, co w tym przypadku jest zbędne. Kolejna niepoprawna odpowiedź 'UPDATE przebieg SET 0 TABLE samochody' również łamie zasady składni SQL, ponieważ użycie słowa 'TABLE' w tym kontekście jest zbędne i niezgodne z konwencją. SQL nie wymaga ani nie pozwala na takie sformułowanie kwerendy. Ostatnia błędna propozycja 'UPDATE samochody SET przebieg VALUE 0' błędnie używa słowa kluczowego 'VALUE'. W SQL używamy 'SET' do przypisywania wartości, a nie 'VALUE', co jest konstrukcją z innych języków programowania. Prawidłowa forma to 'SET kolumna=nowa_wartość'. Każda z tych odpowiedzi pokazuje istotne nieporozumienia dotyczące podstawowych zasad składni SQL, co podkreśla znaczenie nauki i praktyki w pracy z bazami danych.

Pytanie 4

Która z funkcji zdefiniowanych w języku PHP zwraca jako wynik połowę kwadratu wartości podanej jako argument?

A. function licz($a) { echo $a*$a/2; }
B. function licz($a) { return $a*$a/2; }
C. function licz($a) { echo $a/2; }
D. function licz($a) { return $a/2; }
Dobra robota, jeśli chodzi o tę funkcję! Właściwa odpowiedź to taka, która zwraca połowę kwadratu podanej wartości. W przykładzie 'function licz($a) { return $a*$a/2; }' widać, że użycie 'return' jest bardzo ważne, bo to dzięki niemu wynik trafia tam, gdzie funkcję wywołujemy. Najpierw 'a' jest podnoszone do kwadratu, czyli 'a * a', a potem dzielimy to przez 2. Jak dla 'a' podstawimy 4, to wyjdzie 8, bo połowa z 16 (kwadrat z 4) to właśnie 8. Bardzo dobrze, że zwracasz uwagę na takie szczegóły, bo to naprawdę istotne w programowaniu. Można tę funkcję stosować w różnych sytuacjach, np. w aplikacjach z interfejsem graficznym czy przy analizie jakichś danych, no wiesz, tam, gdzie matematyka wchodzi w grę.

Pytanie 5

Walidacja formularzowych pól polega na zweryfikowaniu

A. czy istnieje plik PHP, który odbierze dane.
B. czy użytkownik jest zalogowany.
C. czy wprowadzone dane spełniają określone reguły.
D. który użytkownik wprowadził informacje.
Walidacja pól formularza to mega ważny krok, kiedy zbieramy dane od użytkowników. Dzięki niej możemy mieć pewność, że wszystko, co użytkownik wprowadza, jest zgodne z pewnymi zasadami. To sprawia, że aplikacja działa jak należy i że dane są w miarę bezpieczne. Na przykład, walidacja może sprawdzać, czy użytkownik wpisał coś w pole tekstowe, czy adres e-mail wygląda jak należy, albo czy hasło ma odpowiednią długość i trudność. Fajnie jest, jak walidacja działa zarówno po stronie klienta, jak i serwera. Ta po stronie klienta jest super, bo użytkownik od razu widzi, że coś poszło nie tak i nie musi czekać na odpowiedź z serwera. A walidacja po stronie serwera dodaje jeszcze więcej bezpieczeństwa, bo broni aplikacji przed błędnymi danymi i różnymi atakami, jak na przykład SQL injection. Dlatego walidacja danych to absolutna podstawa w nowoczesnych systemach przetwarzania informacji.

Pytanie 6

Który z typów plików dźwiękowych oferuje największą kompresję rozmiaru?

A. WAV
B. CD-Audio
C. PCM
D. MP3
Format MP3 (MPEG Audio Layer III) jest standardem kompresji stratnej, który znacząco zmniejsza rozmiar pliku dźwiękowego, zachowując przy tym akceptowalną jakość dźwięku. Technologia ta wykorzystuje algorytmy psychoakustyczne, które eliminują dźwięki, które są mniej słyszalne dla ludzkiego ucha. Dzięki temu możliwe jest osiągnięcie redukcji rozmiaru pliku o 70-90% w porównaniu z jakością oryginalnego nagrania. Praktyczne zastosowanie formatu MP3 jest szerokie: od przesyłania muzyki przez internet po użycie w odtwarzaczach multimedialnych oraz smartfonach. Możliwość dostosowania bitrate'u (od 32 kbps do 320 kbps) pozwala użytkownikom na balansowanie pomiędzy jakością a rozmiarem pliku. MP3 stał się de facto standardem w dystrybucji muzyki cyfrowej, a jego wsparcie w praktycznie każdym odtwarzaczu audio czyni go niezwykle uniwersalnym. Warto również dodać, że MP3 jest zgodny z wieloma standardami, takimi jak ID3, które umożliwiają dołączanie metadanych do plików audio, co dodatkowo podnosi jego funkcjonalność.

Pytanie 7

Czego nie należy robić, aby zabezpieczyć serwer bazy danych przed atakami hakerów?

A. defragmentacja dysków.
B. używanie skomplikowanych haseł do bazy.
C. blokowanie portów związanych z bazą danych.
D. aktywacja zapory.
Defragmentacja dysków nie jest bezpośrednio związana z zabezpieczaniem serwera bazy danych przed atakami hakerskimi. Choć defragmentacja może poprawić wydajność systemu plików poprzez uporządkowanie fragmentów plików na dysku, nie ma wpływu na kwestie bezpieczeństwa. Przykłady skutecznych działań w zakresie zabezpieczeń obejmują włączenie zapory, co stanowi pierwszą linię obrony, blokowanie portów, które mogą być wykorzystywane przez potencjalnych intruzów, oraz stosowanie złożonych haseł, co minimalizuje ryzyko nieautoryzowanego dostępu. W kontekście zarządzania bezpieczeństwem baz danych, kluczowe jest przestrzeganie najlepszych praktyk, takich jak regularne aktualizacje oprogramowania, monitorowanie logów dostępu oraz stosowanie zasad minimalnych uprawnień. Właściwe zabezpieczenia powinny być wdrażane zgodnie z wytycznymi standardów takich jak ISO/IEC 27001.

Pytanie 8

Wskaż przycisk sformatowany przedstawionym stylem CSS.

#przycisk {
    background-color: white;
    padding: 10px;
    border-width: 2px;
    border-bottom-style: dashed;
}



Przycisk 1

Przycisk 2

Przycisk 3

Przycisk 4
A. Przycisk 4
B. Przycisk 1
C. Przycisk 3
D. Przycisk 2
Niestety, twoja odpowiedź nie była prawidłowa. Wybór innego przycisku niż Przycisk 2 sugeruje, że mogłeś nie do końca zrozumieć, jak działa selekcja i stylizacja elementów za pomocą CSS. Białe tło, odstęp wewnętrzny 10 pikseli, szerokość obramowania 2 piksele oraz przerywana dolna krawędź obramowania są elementami, które zostały ustawione w stylach CSS dla przycisku 2. Pozostałe przyciski miały inne cechy, które nie były zgodne z opisanym stylem CSS. Przy niewłaściwym wyborze przycisku lub innego elementu do stylizacji, strona może nie wyglądać zgodnie z zamierzeniem, co może negatywnie wpłynąć na doświadczenie użytkownika. Dlatego ważne jest, aby zrozumieć, jak działa selekcja i stylizacja CSS. Pamiętaj, że zrozumienie CSS to klucz do tworzenia atrakcyjnych i funkcjonalnych projektów webowych.

Pytanie 9

Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod

A. CHANGE TABLE klienci MODIFY imie CHAR(30);
B. ALTER TABLE klienci CHANGE imie TEXT;
C. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
D. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
Odpowiedź ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30) jest poprawna, ponieważ w SQL polecenie ALTER TABLE służy do modyfikacji struktury istniejącej tabeli. W tym przypadku zmieniamy długość pola 'imie' w tabeli 'klienci'. Typ danych VARCHAR (zmienna długość) jest odpowiedni dla pól, które mogą przechowywać tekst o różnej długości, a określenie 30 oznacza, że maksymalna długość tego pola będzie wynosić 30 znaków. Używanie VARCHAR zamiast CHAR jest dobrą praktyką w przypadku, gdy długość danych jest zmienna, co pozwala na oszczędność miejsca w bazie danych. Przykładowo, jeśli tabela przechowuje imiona, które w większości będą krótsze niż 30 znaków, zastosowanie VARCHAR skutkuje mniejszym zużyciem miejsca w porównaniu do CHAR, który zawsze rezerwuje tę samą ilość miejsca. Warto również pamiętać, że przy modyfikowaniu tabeli w SQL należy zachować ostrożność, aby uniknąć utraty danych, szczególnie jeśli zmieniamy typ danych lub długość pola już zawierającego dane.

Pytanie 10

Na podstawie kodu widocznego na ilustracji można stwierdzić, że

Ilustracja do pytania
A. funkcja wyswietlNazwisko(nazwisko) musi być wywołana wewnątrz innej funkcji.
B. nie zadeklarowano funkcji wyswietlNazwisko.
C. podano nieprawidłowy argument do funkcji alert.
D. nie przypisano wartości do zmiennej nazwisko.
W tym kodzie funkcja wyswietlNazwisko(nazwisko) jest poprawnie zadeklarowana, a komunikat przekazywany do alert() też jest w porządku. Problem wcale nie leży w samej funkcji, tylko w tym, że wywołujemy ją z argumentem nazwisko, który nigdzie wcześniej nie został zdefiniowany ani nie ma do niego przypisanej żadnej wartości. Silnik JavaScript widzi wywołanie wyswietlNazwisko(nazwisko); i szuka zmiennej o nazwie nazwisko w aktualnym zasięgu (scope). Ponieważ jej nie znajduje, zgłasza błąd ReferenceError: nazwisko is not defined. To jest klasyczny przypadek braku inicjalizacji zmiennej przed użyciem. W praktyce, żeby to naprawić, trzeba najpierw zadeklarować zmienną, np.: var nazwisko = "Kowalski"; albo let nazwisko = prompt("Podaj swoje nazwisko:"); i dopiero potem wywołać funkcję: wyswietlNazwisko(nazwisko);. Dobra praktyka w JavaScript to zawsze jawne deklarowanie zmiennych przy użyciu let lub const (ewentualnie var w starszym kodzie) oraz nadawanie im czytelnych, przewidywalnych wartości początkowych. W aplikacjach webowych takie zmienne często pochodzą z pól formularza, np. z document.getElementById("nazwisko").value, i dopiero ta wartość jest przekazywana jako argument funkcji. Moim zdaniem warto wyrobić sobie nawyk, że zanim użyjesz jakiejś nazwy w wywołaniu funkcji, sprawdzasz, czy na pewno istnieje jej deklaracja w odpowiednim zasięgu i czy ma sensowną wartość. Dzięki temu unikniesz wielu irytujących błędów w konsoli i łatwiej będzie debugować kod.

Pytanie 11

Która z reguł dotyczących sekcji w HTML jest właściwa?

A. W sekcji <head> można definiować szablon strony przy użyciu znaczników <div>
B. W sekcji <head> mogą znajdować się znaczniki <meta>, <title>, <link>
C. W sekcji <head> nie znajduje się sekcja <body>
D. W sekcji <head> nie można umieszczać kodu CSS, tylko odwołanie do pliku CSS
W sekcji <head> dokumentu HTML można umieścić kilka ważnych znaczników, takich jak <meta>, <title> i <link>. Tytuł strony, który znajdziesz w znaczniku <title>, będzie widoczny na karcie przeglądarki, a także pomoże wyszukiwarkom lepiej zrozumieć, o czym jest Twoja strona. Znaczniki <meta> to fajny sposób, żeby dodać różne metadane – jak opis strony czy słowa kluczowe, które mogą przydać się w SEO. A znacznik <link>? Ten odwołuje się do zewnętrznych plików, na przykład do arkuszy stylów CSS, co jest spoko, bo separuje strukturę dokumentu od jego wyglądu. Z mojego doświadczenia, dobre umiejscowienie tych znaczników w <head> nie tylko poprawia SEO, ale też ułatwia zarządzanie stylami. To naprawdę ważne, jeśli chcesz tworzyć nowoczesne i responsywne strony internetowe.

Pytanie 12

Jaką czynność należy wykonać przed zrobieniem kopii zapasowej danych w MySQL?

A. przyznanie uprawnień do przeglądania bazy dla Administratora
B. ustalenie systemu kodowania znaków w bazie
C. sprawdzenie, czy baza działa wystarczająco wydajnie
D. zweryfikowanie poprawności tabel w bazie oraz ewentualne naprawienie usterek
Sprawdzenie poprawności tabel w bazie przed wykonaniem kopii bezpieczeństwa jest kluczowym krokiem, który pozwala na zapewnienie integralności danych. W przypadku, gdy w tabelach występują błędy, takie jak uszkodzone wiersze czy niedopasowane indeksy, proces tworzenia kopii zapasowej może nie uwzględnić tych problemów, co w konsekwencji prowadzi do utraty danych lub trudności w ich przywróceniu. W MySQL, przed rozpoczęciem backupu, zaleca się użycie polecenia 'CHECK TABLE' do weryfikacji stanu tabel. Przykładowo, jeśli tabela 'users' jest sprawdzana i wykryto błąd, można zastosować 'REPAIR TABLE', aby naprawić uszkodzenia. Dobrą praktyką w branży jest regularne tworzenie kopii zapasowych oraz prowadzenie audytów jakości danych, co pozwala na minimalizację ryzyka utraty informacji. Utrzymywanie bazy danych w dobrym stanie technicznym poprzez regularne sprawdzanie tabel oraz ich naprawianie jest zalecane w dokumentacji MySQL oraz innych systemów zarządzania bazami danych, co podkreśla znaczenie tego procesu w kontekście bezpieczeństwa danych.

Pytanie 13

Jakie są wyniki wykonania zapytania SQL?

SELECT count(*) FROM Uczniowie WHERE srednia=5;
A. łączna liczba uczniów
B. suma ocen uczniów z średnią 5
C. średnia wszystkich ocen uczniów
D. ilość uczniów, których średnia ocen wynosi 5
Zapytanie SQL używa funkcji COUNT aby policzyć liczbę rekordów w tabeli Uczniowie spełniających warunek srednia=5 Klauzula WHERE ogranicza zestaw zliczanych rekordów do tych gdzie średnia ocen ucznia wynosi dokładnie 5 W efekcie wynik zapytania odpowiada liczbie uczniów mających średnią ocen równą 5 Takie podejście jest powszechnie stosowane w analizie danych gdzie wymagane jest określenie liczby jednostek spełniających konkretne kryteria Zastosowanie COUNT w połączeniu z WHERE umożliwia precyzyjną kontrolę nad analizowanym zbiorem danych co jest standardem w wielu systemach bazodanowych Praktyczne zastosowanie tej techniki można spotkać w raportowaniu wyników nauczania generowaniu statystyk czy w analizach biznesowych gdzie kluczowe jest zrozumienie struktury i charakterystyki danych Zapytanie to ilustruje dobrą praktykę pracy z bazami danych polegającą na efektywnym i precyzyjnym formułowaniu zapytań w celu uzyskania wartościowych i precyzyjnych informacji

Pytanie 14

Z tabel Artykuly oraz Autorzy należy wyodrębnić tylko nazwiska autorów oraz tytuły ich artykułów, które uzyskały ocenę 5. Odpowiednia kwerenda do pozyskania tych informacji ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
C. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
D. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
Odpowiedź SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5; jest poprawna ponieważ precyzyjnie wykorzystuje konstrukcję SQL do połączenia tabel Autorzy i Artykuly. JOIN łączy te tabele na podstawie klucza obcego autorzy_id w tabeli Artykuly który odpowiada kluczowi głównemu id w tabeli Autorzy. To pozwala na uzyskanie pełnej informacji o autorach i ich artykułach. Klauzula WHERE ocena = 5 filtruje wyniki i zwraca jedynie te które mają ocenę równą 5. Jest to standardowe podejście w SQL do pobierania danych na podstawie określonych kryteriów co jest bardzo efektywne w zarządzaniu dużymi zbiorami danych. Praktyczne zastosowanie tego typu kwerend obejmuje na przykład systemy rekomendacji artykułów gdzie tylko dobrze ocenione treści są pokazywane użytkownikom. Stosowanie takich kwerend zgodnie z najlepszymi praktykami pozwala na utrzymanie wydajności bazy danych oraz na zapewnienie integralności danych co jest kluczowe w profesjonalnym zarządzaniu bazami danych.

Pytanie 15

Zawartość kodu w języku HTML umieszczona w ramce ilustruje zestaw

<ol>
<li>Pierwszy</li>
<li>Drugi</li>
<li>Trzeci</li>
</ol>
A. numerowanej
B. skróconych
C. wypunktowanej
D. linków
W przypadku odpowiedzi sugerujących że kod przedstawia listę odnośników wypunktowaną lub skrótów dochodzi do błędnego zrozumienia funkcji tagów HTML. Tag <ol> oznacza ordered list co wskazuje na listę numerowaną. Dla listy odnośników w HTML używa się zazwyczaj połączenia tagów <ul> dla listy wypunktowanej oraz <a> dla samych odnośników. Lista wypunktowana która jest tworzona przy pomocy tagu <ul> różni się od listy numerowanej tym że przed każdym elementem wyświetlany jest punkt bądź inny symbol zamiast numeru. Natomiast lista skrótów oznaczana jest za pomocą tagu <dl> dla całej listy oraz <dt> i <dd> dla poszczególnych elementów co pozwala na prezentację par termin-definicja. Mylenie tych struktur wynika z nieuwzględnienia roli i znaczenia poszczególnych tagów co może prowadzić do błędnej interpretacji kodu i jego funkcji w przeglądarce. Właściwe zrozumienie różnic między tymi elementami jest kluczowe w projektowaniu intuicyjnych i zgodnych ze standardami interfejsów użytkownika w sieci co wpływa na użyteczność i dostępność stron internetowych.

Pytanie 16

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: right; }
B. nav { float: left; } aside { float: left; }
C. nav { float: right; } section { float: right; }
D. aside {float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 17

W dokumentacji języka PHP znajduje się informacja dotycząca jednej z jego funkcji:
„Warning. This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.”.
Zgodnie z tą informacją użycie tej funkcji jest:

A. niezalecane w wersji PHP 5.5.0 i dostępne od wersji 7.0.0.
B. przestarzałe od wersji PHP 5.5.0 i całkowicie usunięte w wersji 7.0.0.
C. dostępne w wersjach PHP od 5.5.0 do 7.0.0 (włącznie) i niedostępne w innych wersjach.
D. niemożliwe w wersjach PHP 5.5.0 lub starszych i dostępne dopiero od wersji 7.0.0.
Komunikat z dokumentacji PHP „Warning. This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.” oznacza dwa różne stany w cyklu życia funkcji/rozszerzenia. „Deprecated” od wersji 5.5.0 znaczy, że funkcja nadal działa, ale jej użycie jest oficjalnie niezalecane. Silnik PHP może generować ostrzeżenia (E_DEPRECATED), a autorzy języka jasno sugerują, żeby migrować kod na nowsze, wspierane rozwiązania. „Removed w PHP 7.0.0” oznacza, że od tej wersji funkcja po prostu nie istnieje – próba jej użycia skończy się błędem typu „undefined function” lub „undefined extension”. Z mojego doświadczenia wynika, że taki status to sygnał alarmowy dla programisty: w nowych projektach nie używamy funkcji oznaczonych jako deprecated, a w istniejących aplikacjach planujemy refaktoryzację, zanim wejdziemy na wyższą wersję PHP. Dobrym przykładem jest stare rozszerzenie mysql_* – od PHP 5.5 było oznaczone jako przestarzałe, a w PHP 7 zostało usunięte i trzeba było przejść na mysqli lub PDO. W praktyce, gdy widzisz w dokumentacji „deprecated od wersji X”, powinieneś: sprawdzić zalecaną alternatywę, włączyć raportowanie błędów i ostrzeżeń na środowisku developerskim, usunąć stopniowo wszystkie wywołania danej funkcji. Branżową dobrą praktyką jest też testowanie aplikacji na docelowej wersji PHP przed aktualizacją produkcji, żeby właśnie takie usunięte funkcje wyłapać automatycznie w logach lub podczas testów jednostkowych. Twoja odpowiedź dokładnie to odczytała: od 5.5 funkcja jest przestarzała (deprecated), a w 7.0 całkowicie znika z języka.

Pytanie 18

W bazie danych istnieje tabela ksiazki, która posiada pola: tytul, id_autora, data_wypoz, id_czytelnika. Codziennie tworzony jest raport dotyczący książek wypożyczonych w danym dniu, który wyświetla jedynie tytuły książek. Która kwerenda SQL jest odpowiednia do generowania tego raportu?

A. SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE()
B. SELECT * FROM ksiazki
C. SELECT tytul FROM ksiazki
D. SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATENT_E()
Wybór innych kwerend związany jest z różnymi nieprawidłowymi założeniami. Kwerenda SELECT tytul FROM ksiazki; nie uwzględnia żadnego filtrowania daty wypożyczenia, przez co generowany raport zawierałby wszystkie tytuły książek, niezależnie od daty ich wypożyczenia. Takie podejście jest nieefektywne, ponieważ nie spełnia założonego celu raportu, jakim jest prezentacja książek wypożyczonych jedynie w danym dniu. Z kolei SELECT * FROM ksiazki; zwraca wszystkie kolumny z tabeli książek, co prowadzi do nadmiaru danych i utrudnia analizę wyników. Raport powinien być zwięzły i dostarczać tylko istotnych informacji. Kwerenda SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATENT_E(); zawiera literówkę i jest niepoprawna syntaktycznie. Warto zwrócić uwagę na typowe błędy, takie jak błędne użycie funkcji i brak filtracji danych, które mogą prowadzić do nieefektywnych i nieczytelnych raportów. Dobrą praktyką jest zawsze dokładne zrozumienie celu zapytania oraz odpowiednie stosowanie klauzul WHERE, aby uniknąć zbędnych danych i skupić się na analizie konkretnych przypadków.

Pytanie 19

Najłatwiejszym i najmniej czasochłonnym sposobem na przetestowanie działania strony internetowej w różnych przeglądarkach i ich wersjach jest

A. użycie emulatora przeglądarek internetowych, np. Browser Sandbox
B. zainstalowanie różnych przeglądarek na kilku komputerach i testowanie strony
C. sprawdzenie działania strony w programie Internet Explorer, zakładając, że inne przeglądarki będą kompatybilne
D. wykorzystanie walidatora kodu HTML
Emulatory przeglądarek internetowych, takie jak Browser Sandbox, stanowią najefektywniejsze narzędzie do testowania witryn w różnych środowiskach. Dzięki nim można symulować działanie witryny w wielu przeglądarkach oraz ich wersjach bez potrzeby fizycznej instalacji. To podejście jest zgodne z najlepszymi praktykami w zakresie testowania oprogramowania, ponieważ pozwala na oszczędność czasu i zasobów. W przypadku użycia emulatora, programiści mogą szybko przetestować i porównać, jak strona zachowuje się w różnych przeglądarkach, co jest kluczowe dla zapewnienia spójności działania i doświadczeń użytkownika. Przykładem zastosowania emulatorów jest możliwość weryfikacji responsywności witryny na różnych rozmiarach ekranów oraz dostosowanie stylów CSS dla różnych przeglądarek. To pozwala na identyfikację problemów z kompatybilnością, które mogą występować w starszych wersjach przeglądarek, a także w zapewnieniu, że nowoczesne standardy webowe są poprawnie interpretowane. Praktyczne wykorzystanie emulatorów w codziennym procesie tworzenia oprogramowania powinno być integralną częścią każdej strategii testowania, aby zapewnić optymalne działanie witryny na wszystkich platformach.

Pytanie 20

Testy aplikacji webowej, mające na celu ocenę wydajności aplikacji oraz bazy danych, a także architektury serwera i konfiguracji, noszą nazwę testów

A. funkcjonalnych
B. kompatybilności
C. użyteczności
D. bezpieczeństwa
Testy użyteczności zajmują się tym, jak łatwo i intuicyjnie użytkownicy mogą korzystać z aplikacji. Obejmują analizę interfejsu użytkownika oraz ogólne wrażenia z korzystania. Choć oczywiście są ważne, to nie mają bezpośredniego związku z testowaniem skalowalności czy tego, jak działa architektura serwera. Z kolei testy funkcjonalne sprawdzają, czy aplikacja działa tak, jak powinna, testując jej funkcje w kontekście poszczególnych zadań, ale też nie obejmują tego, jak aplikacja radzi sobie pod dużym obciążeniem. Testy bezpieczeństwa są o tym, jak znaleźć luki w zabezpieczeniach aplikacji, a nie odnoszą się do skalowalności ani architektury systemu. Często ludzie błędnie mylą cele różnych testów, co prowadzi do wyboru złych odpowiedzi. Ważne jest, żeby zrozumieć, że każdy test ma swoją specyfikę i cele, które pomagają zapewnić, że aplikacja nie tylko działa, ale żeby działała efektywnie w różnych warunkach i na różnych platformach. Dlatego dobrze jest znać kontekst testów kompatybilności, bo to kluczowe do projektowania i wdrażania aplikacji internetowych, które mogą sprostać wymaganiom użytkowników.

Pytanie 21

Jaką wartość zwróci zapytanie z ramki wykonane na pokazanej tabeli? ```SELECT COUNT(DISTINCT wykonawca) FROM muzyka;```

Ilustracja do pytania
A. 1
B. 4
C. 3
D. 0
Zapytanie SQL SELECT COUNTDISTINCT wykonawca) FROM muzyka; ma na celu zliczenie unikalnych wartości w kolumnie wykonawca tabeli muzyka. W tym przypadku w tabeli są trzy różne wartości w tej kolumnie: Czesław Niemen Stan Borys i Mikołaj Czechowski. Funkcja COUNTDISTINCT zwraca liczbę niepowtarzających się wykonawców co w tym zestawie danych daje wynik 3. Zrozumienie użycia funkcji COUNTDISTINCT jest kluczowe w analizie danych szczególnie gdy chcemy określić liczebność unikalnych elementów w dużych zbiorach danych. To podejście jest szeroko stosowane w raportowaniu i analizach biznesowych gdzie istotne jest zidentyfikowanie niepowtarzalnych wpisów na przykład liczby unikalnych klientów czy produktów w sklepie. Dobre praktyki w SQL obejmują używanie aliasów w celu zwiększenia czytelności zapytań oraz optymalizację wydajności przez właściwe indeksowanie kolumn które są często wykorzystywane w funkcjach zliczających.

Pytanie 22

Tablica tab[] jest wypełniona dowolnymi liczbami całkowitymi. Jaka wartość znajdzie się w zmiennej zm2 po wykonaniu prezentowanego fragmentu kodu?

int tab[10];
int zm1 = 0;
double zm2 = 0;

for (int i=0; i < 10; i++)
{
  zm1 = zm1 + tab[i];
}
zm2 = zm1 / 10;
A. Średnia arytmetyczna elementów tablicy.
B. Suma elementów tablicy.
C. Suma liczb od 1 do 10.
D. Średnia geometryczna liczb od 0 do 9.
Rozważanie sumy liczb z tablicy jako wyniku zmiennej zm2 jest błędne, ponieważ zmienna ta nie przechowuje sumy, lecz średnią arytmetyczną. Suma liczb z tablicy jest przechowywana w zmiennej zm1, co jest zupełnie inną wartością. Średnia arytmetyczna jest definicją statystyczną, która odnosi się do podziału całkowitej wartości (sumy) przez liczbę elementów, co w tym przypadku jest realizowane przez zmienną zm2. Wybierając odpowiedź, która twierdzi, że zm2 to suma liczb od 1 do 10, wprowadza w błąd, ponieważ nie ma to związku z danymi w tablicy tab, która zawiera dowolne liczby całkowite. Inna błędna koncepcja to średnia geometryczna, która jest zupełnie innym typem średniej, obliczaną na podstawie iloczynu wartości, a nie ich sumy. Zrozumienie różnicy między tymi pojęciami jest kluczowe w analizie danych i programowaniu, a także w zastosowaniach matematycznych. Błędy w myśleniu, takie jak pomylenie średniej arytmetycznej z geometryczną, mogą prowadzić do poważnych konsekwencji w analizach danych i wnioskach wyciąganych z nich. Niezrozumienie kontekstu tablicy oraz algorytmu prowadzi do nieprawidłowego interpretowania wyników.

Pytanie 23

Jakiego ograniczenia (constraint) używa się do zdefiniowania klucza obcego?

A. UNIQUE KEY(ID)
B. PRIMARY KEY(ID)
C. FOREIGN KEY(ID)
D. AUTO_INCREMENT(ID)
Odpowiedź 'FOREIGN KEY(ID)' jest poprawna, ponieważ klucz obcy służy do definiowania relacji między tabelami w bazach danych. Klucz obcy to atrybut lub zestaw atrybutów w jednej tabeli, który odnosi się do klucza głównego innej tabeli. Przykładowo, w bazie danych, która obsługuje system zarządzania zamówieniami, tabela 'Zamówienia' może zawierać kolumnę 'KlientID', będącą kluczem obcym odnoszącym się do kolumny 'ID' w tabeli 'Klienci'. Użycie kluczy obcych pozwala na zapewnienie integralności referencyjnej, co oznacza, że każdy wpis w tabeli 'Zamówienia' musi odpowiadać istniejącemu klientowi w tabeli 'Klienci'. Dobrym praktykom w projektowaniu baz danych jest stosowanie kluczy obcych jako sposobu na unikanie niezgodności danych oraz na umożliwienie wykonywania zapytań z wykorzystaniem JOIN, co ułatwia uzyskiwanie skonsolidowanych informacji z różnych tabel. Ponadto, w przypadku usunięcia lub aktualizacji rekordów w tabeli źródłowej, można skonfigurować odpowiednie zasady, takie jak 'CASCADE', które automatycznie zaktualizują powiązane dane w tabeli docelowej, co jest istotne dla zachowania spójności danych.

Pytanie 24

Dana jest tabela firmy zawierająca następujące kolumny: nazwa, adres, NIP, obrot (obrót w ostatnim miesiącu), rozliczenie, status. Wykonanie kwerendy SQL SELECT sprawi, że zostaną wyświetlone

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
A. jedynie nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót co najmniej 4000 zł.
B. wszystkie dane firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł.
C. jedynie nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł.
D. wszystkie dane firm, które w ostatnim miesiącu miały obrót co najmniej 4000 zł.
Twoja odpowiedź jest poprawna. Przy wykonywaniu zapytań SQL często wybieramy nie wszystkie, a jedynie niektóre kolumny z tabeli. W tym przypadku, pytanie dotyczyło wybrania tylko nazwy i NIPu firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł. Do realizacji tego zadania użyliśmy kwerendy SELECT z określeniem kolumn oraz warunku w klauzuli WHERE. Jest to częsty scenariusz w praktyce, gdy potrzebujemy wyfiltrować dane według określonych kryteriów. Ważne jest zrozumienie, że instrukcja SELECT jest używana do wybrania jednej lub wielu kolumn, które chcemy zobaczyć w wynikach, a klauzula WHERE służy do definiowania warunków, które muszą spełniać dane wyświetlane w wynikach.

Pytanie 25

Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod

A. ALTER TABLE klienci CHANGE imie TEXT;
B. CHANGE TABLE klienci MODIFY imie CHAR(30);
C. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
D. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
Aby zmienić maksymalną długość pola 'imie' w tabeli 'klienci' na 30 znaków, używamy polecenia SQL 'ALTER TABLE', które jest standardowym sposobem modyfikacji struktury tabeli w bazach danych. W tym przypadku wykorzystujemy 'MODIFY COLUMN', co jest istotne, ponieważ pozwala na precyzyjne określenie, że chcemy zmienić właściwości konkretnej kolumny. Typ danych 'VARCHAR' oznacza, że kolumna może przechowywać zmienne długości tekstu, a wartość 30 oznacza maksymalną liczbę znaków. Przykładowo, jeśli w bazie danych już istnieją rekordy, to zmiana ta nie wpłynie na dane, które są krótsze niż 30 znaków, ale może być problematyczna, jeśli próbujemy wprowadzić dane dłuższe niż dozwolone, ponieważ takie operacje mogą kończyć się błędami. Warto również zaznaczyć, że różne systemy zarządzania bazami danych, takie jak MySQL, PostgreSQL czy Oracle, mogą mieć drobne różnice w składni, ale zasada działania polecenia 'ALTER TABLE' pozostaje zasadniczo taka sama. To podejście jest zgodne z zaleceniami standardu SQL i jest powszechnie stosowane w praktykach administracji bazami danych.

Pytanie 26

Dostępna jest tabela z danymi o mieszkaniach, zawierająca kolumny: adres, metraż, liczba_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;
A. Metraż oraz koszt tych mieszkań, które mają przynajmniej 3 pokoje
B. Wszystkie informacje o tych mieszkaniach, które mają minimum 3 pokoje
C. Metraż oraz koszt tych mieszkań, które mają więcej niż 3 pokoje
D. Wszystkie informacje poza adresem tych mieszkań, które mają więcej niż 3 pokoje
Czasami odpowiedzi są niepoprawne, bo trudno zrozumieć, jak działają podstawowe elementy SQL. Na przykład, często ludzie mylą operator > z >=, co może prowadzić do złych wyników, bo źle interpretują warunki filtrowania. W zapytaniu SELECT, jeżeli nie wybieramy konkretnych kolumn, to domyślnie będą wybierane wszystkie, co nie jest to, co chcemy. W tej sytuacji interesują nas tylko metraż i cena, a nie wszystkie dane. Zrozumienie, jakie dane się pojawią, wymaga uważności przy pisaniu zapytań SQL. Dobre praktyki to jasne warunki logiczne i dokładne określenie, co chcemy wyciągnąć i kiedy. Często popełnia się błąd, nie uwzględniając operatorów logicznych oraz jak wpływają na końcowy rezultat. Operator > jasno mówi, że chcemy mieszkania z więcej niż trzema pokojami, więc odpowiedzi, które sugerują mieszkania z co najmniej trzema pokojami, są błędne. Te błędy pokazują, jak ważne jest, żeby dokładnie czytać i rozumieć zapytania SQL, bo to naprawdę się przydaje w codziennej pracy z danymi.

Pytanie 27

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

A. ERP
B. RDBMS
C. DBMS
D. CMS
Poprawna odpowiedź to CMS, czyli Content Management System – system zarządzania treścią. Jest to specjalne oprogramowanie, które pozwala tworzyć, edytować i publikować treści na stronie WWW bez konieczności pisania kodu w HTML, CSS czy PHP. Z mojego doświadczenia w szkołach i firmach to właśnie CMS-y są najczęściej używane do budowy stron firmowych, blogów, portali informacyjnych czy nawet prostych sklepów internetowych. Typowe przykłady CMS-ów to WordPress, Joomla, Drupal czy TYPO3. W praktyce wygląda to tak, że logujesz się do panelu administracyjnego przez przeglądarkę, masz formularze do dodawania artykułów, edytor WYSIWYG („to co widzisz, to dostajesz”), możliwość wstawiania obrazków, filmów z YouTube, galerii, a nawet zarządzania menu i użytkownikami. Nie trzeba przy tym znać składni HTML ani obsługi bazy danych – system sam zapisuje dane w bazie, generuje strony zgodne z wybranym szablonem i dba o podstawową strukturę. Dobre praktyki w pracy z CMS-em to używanie aktualnych motywów i wtyczek, regularne aktualizacje systemu (ze względów bezpieczeństwa), wykonywanie kopii zapasowych oraz dbanie o przejrzystą strukturę treści (nagłówki H1, H2, H3, sensowne adresy URL, metaopisy). W branży przyjmuje się, że CMS powinien wspierać SEO (np. możliwość ustawiania tytułów stron i opisów), wielojęzyczność, system ról i uprawnień użytkowników (redaktor, autor, administrator) oraz wersjonowanie treści. Moim zdaniem znajomość podstaw obsługi CMS-a to dziś absolutny standard w zawodach związanych z tworzeniem i utrzymaniem stron WWW.

Pytanie 28

Jaką rolę pełni funkcja PHP o nazwie mysql_select_db()?

A. pobrać dane z bazy danych na podstawie zapytania
B. określić tabelę, z której będą pobierane informacje
C. nawiązać połączenie bazy danych z serwerem SQL
D. określić bazę, z której będą pobierane dane
Funkcja mysql_select_db() służy do określenia, która baza danych będzie używana w kontekście bieżącego połączenia z serwerem MySQL. W momencie, gdy nawiązuje się połączenie z serwerem za pomocą funkcji mysql_connect(), należy jasno zdefiniować, w której bazie danych będą wykonywane zapytania. Właściwe ustawienie aktualnej bazy danych jest kluczowe, ponieważ wszelkie operacje związane z pobieraniem lub modyfikowaniem danych będą odnosiły się tylko do tej wskazanej bazy. Przykładowo, jeżeli mamy bazę danych 'sklep' i chcemy pobrać dane o produktach, najpierw musimy wywołać mysql_select_db('sklep'). Dobrą praktyką jest również sprawdzenie, czy operacja wyboru bazy danych zakończyła się sukcesem, co można zrobić, sprawdzając zwracany wynik. Należy pamiętać, że funkcja mysql_select_db() jest częścią starzejącego się interfejsu MySQL, a w nowoczesnych aplikacjach rekomendowane są bardziej aktualne rozszerzenia, takie jak MySQLi lub PDO, które oferują lepsze możliwości obsługi błędów oraz bezpieczeństwo.

Pytanie 29

Jak wygląda instrukcja przypisania wartości do elementu tablicy w języku JavaScript względem tablicy? ```Tablica['technik'] = 'informatyk';```

A. asocjacyjnej
B. statycznej
C. wielowymiarowej
D. numerycznej
W języku JavaScript tablice mogą być traktowane jako obiekty, a więc wykazują cechy struktur asocjacyjnych. Przypisując wartość do tablicy za pomocą notacji z nawiasami kwadratowymi, jak w przykładzie 'Tablica[\'technik\'] = \'informatyk\';', tworzymy nowy element o kluczu 'technik', co jest charakterystyczne dla obiektów asocjacyjnych. W JavaScript tablice są dynamiczne, co oznacza, że możemy dodawać elementy w dowolny sposób, a ich rozmiar nie jest ustalony z góry. Standard ECMAScript definiuje tablice jako obiekty, gdzie klucze są indeksami liczb całkowitych, ale można również używać stringów jako kluczy, co czyni tablice asocjacyjnymi. Przykładem może być obiekt, który przechowuje różne informacje, a elementy są dostępne zarówno za pomocą indeksów numerycznych, jak i stringów. Warto zaznaczyć, że użycie tablicy jako obiektu asocjacyjnego może być praktyczne w wielu zastosowaniach, np. w przechowywaniu konfiguracji czy zestawów danych. Dobrą praktyką jest jednak ograniczać użycie takich technik dla przejrzystości kodu."

Pytanie 30

Wskaź, która instrukcja jest równoważna z instrukcją switch w języku PHP?

Ilustracja do pytania
A. Instrukcja 3
B. Instrukcja 2
C. Instrukcja 4
D. Instrukcja 1
Instrukcja switch w PHP służy do wykonywania różnych bloków kodu w zależności od wartości wyrażenia. W podanym przykładzie, jeśli zmienna $liczba wynosi 10 lub 20, zostanie zwiększona o 1. W przeciwnym razie $liczba zostanie ustawiona na 0. Instrukcja 2 używa warunku if z operatorem or, który sprawdza, czy $liczba jest równa 10 lub 20, co odpowiada logice w switch. Dzięki temu, mimo że struktura instrukcji if różni się od switch, logika działania jest identyczna. Praktycznie, użycie instrukcji if z operatorem or w takich sytuacjach jest czytelne i wydajne zwłaszcza jeśli mamy do czynienia z ograniczoną liczbą warunków. Warto zauważyć, że switch jest bardziej efektywny, gdy mamy wiele przypadków do sprawdzenia, ale if z operatorami logicznymi jest bardziej elastyczny, co czyni go przydatnym w różnorodnych scenariuszach programistycznych. Dobre praktyki wskazują na wybór struktury kontrolnej w zależności od złożoności i specyfiki problemu, co pozwala na optymalizację czytelności i utrzymania kodu.

Pytanie 31

Zamieszczone zapytanie SQL przyznaje prawo SELECT:

GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost';
A. dla użytkownika root na serwerze sprzedawca
B. do wszystkich tabel w bazie hurtownia
C. do wszystkich kolumn w tabeli hurtownia
D. dla użytkownika root na serwerze localhost
Polecenie GRANT SELECT ON hurtownia.* TO sprzedawca@localhost; nadaje prawo SELECT dla wszystkich tabel w bazie danych o nazwie hurtownia. Symbol * po nazwie bazy oznacza, że uprawnienia dotyczą wszystkich tabel w tej bazie. Jest to popularny sposób przyznawania uprawnień w systemach zarządzania bazami danych takich jak MySQL. Prawidłowe zarządzanie uprawnieniami jest kluczowe w zapewnieniu bezpieczeństwa i efektywności pracy z bazami danych. Przyznanie prawa SELECT oznacza, że użytkownik sprzedawca może odczytywać dane, co jest często stosowane w przypadku użytkowników, którzy potrzebują dostępu do raportów lub analiz. Zgodnie z dobrymi praktykami warto przyznawać minimalny poziom uprawnień niezbędny do wykonywania określonych zadań co chroni przed nieautoryzowanym dostępem lub modyfikacją danych. Przyznając uprawnienia warto także monitorować logi dostępu w celu wykrywania potencjalnych nieprawidłowości. Również istotne jest aby użytkownik localhost miał dostęp tylko z lokalnego serwera co ogranicza ryzyko zdalnych ataków.

Pytanie 32

Grafika powinna być zapisana w formacie GIF, jeśli

A. konieczne jest zapisanie obrazu lub animacji
B. jest to grafika wektorowa
C. jest to obraz w technologii stereoskopowej
D. istnieje potrzeba zapisu obrazu w formie bez kompresji
Format GIF (Graphics Interchange Format) jest powszechnie wykorzystywany do przechowywania obrazów oraz animacji. Dzięki obsłudze przezroczystości oraz możliwości tworzenia prostych animacji, GIF stał się standardem w przypadku grafiki na stronach internetowych. Jego ograniczenie do 256 kolorów sprawia, że idealnie nadaje się do prostych grafik, takich jak logo czy ikony, gdzie nie jest wymagana pełna gama kolorów, co ma miejsce w formatach takich jak JPEG czy PNG. W przypadku animacji, GIF umożliwia zapis wielu klatek w jednym pliku, co pozwala na odtwarzanie sekwencji obrazu bez potrzeby korzystania z dodatkowego oprogramowania. Praktyczne zastosowanie GIF-a można zaobserwować w mediach społecznościowych, gdzie animowane obrazki są często wykorzystywane do wyrażania emocji, a także na stronach internetowych do przedstawiania logo w ruchu. Używanie formatu GIF w kontekście animacji jest zgodne z dobrą praktyką w branży, ponieważ pozwala na efektywne zarządzanie zasobami wizualnymi oraz zwiększa atrakcyjność treści wizualnych.

Pytanie 33

W algorytmie jeden z bloków zawiera akcję „Wypisz liczbę”. Jaki kształt może mieć ta akcja?

Ilustracja do pytania
A. Kształt 2
B. Kształt 4
C. Kształt 3
D. Kształt 1
Kształt 1 jest równoległobokiem, który w kontekście algorytmów często reprezentuje operacje wprowadzania lub wyprowadzania danych. W algorytmach i schematach blokowych, różne kształty mają przypisane konkretne funkcje, co jest standardem w projektowaniu programów. Równoległobok jest standardowym symbolem dla operacji wejścia i wyjścia, w tym wypisywania danych na ekranie. Przykładem zastosowania tego może być wypisywanie wyników obliczeń matematycznych na konsoli w językach takich jak Python czy Java. Używanie odpowiednich kształtów pozwala na łatwiejsze zrozumienie działania algorytmu przez innych programistów, co jest kluczowe w pracy zespołowej i podczas dokumentacji projektowej. Dobre praktyki w programowaniu zalecają jasność i przejrzystość schematów blokowych, co ułatwia ich późniejsze utrzymanie i rozwój. Szukając standardów, warto odnieść się do norm ISO/IEC 19515:2017 dotyczących diagramów przepływu pracy, które podkreślają znaczenie konwencji w projektowaniu algorytmów.

Pytanie 34

W SQL po wykonaniu zapytania ALTER TABLE osoba DROP COLUMN grupa; co się stanie?

A. kolumna grupa zostanie usunięta
B. kolumna grupa zostanie dodana
C. nazwa kolumny zmieni się na grupa
D. nazwa tabeli zmieni się na grupa
No więc dobrze trafiłeś. To zapytanie SQL ALTER TABLE osoba DROP COLUMN grupa; jest używane do usunięcia kolumny 'grupa' z tabeli 'osoba'. To polecenie jest częścią SQL, który służy do zmieniania struktury tabel. Usunięcie kolumny może być fajne, gdy już nie jest potrzebna, albo jeśli wprowadzasz jakieś zmiany w danych. Na przykład, może się zdarzyć, że kolumna 'grupa' ma dane, które są już nieaktualne, bo zmieniłeś sposób klasyfikacji. A tak w ogóle, dobrze jest przed taką operacją zrobić kopię zapasową danych, bo usunięcie kolumny to trwała zmiana. To podejście jest powszechnie wykorzystywane w zarządzaniu bazami danych oraz w procesach ETL, gdzie ważne jest, by dane były dobrze zorganizowane.

Pytanie 35

Warunek zapisany w JavaScript jest prawdziwy, gdy zmienna x przechowuje:

if ((!isNaN(x)) && (x > 0))
A. dowolną całkowitą wartość liczbową.
B. napis.
C. pusty napis.
D. dowolną dodatnią wartość liczbową.
Poprawnie wyłapałeś, że ten warunek jest prawdziwy tylko wtedy, gdy x przechowuje dodatnią wartość liczbową. Rozbijmy to na części. Funkcja isNaN(x) w JavaScript sprawdza, czy przekazany argument „nie jest liczbą” (NaN = Not a Number). Zapis z wykrzyknikiem: !isNaN(x) oznacza więc „x jest liczbą lub da się go zinterpretować jako liczbę”. Druga część warunku: (x > 0) wymusza, żeby ta wartość była większa od zera, czyli dodatnia. Operator && (AND logiczne) powoduje, że oba warunki muszą być spełnione jednocześnie. W efekcie if wykona się tylko wtedy, gdy x reprezentuje dodatnią liczbę (np. 1, 3.14, 100, 0.0001). Co ważne, w JavaScript !isNaN("5") też będzie prawdą, bo łańcuch "5" zostanie zrzutowany do liczby, więc w praktyce ten warunek przepuści zarówno typ number, jak i tekst, który da się przekonwertować na liczbę dodatnią. W realnych projektach taką konstrukcję stosuje się np. przy walidacji pól formularza: sprawdzamy, czy użytkownik podał sensowną wartość liczbową (np. cena, ilość sztuk, wiek) i czy nie jest ona ujemna albo zerowa. Z mojego doświadczenia lepiej jednak korzystać z Number.isNaN() i jawnie rzutować dane (np. const value = Number(x)), bo klasyczne isNaN ma parę „dziwnych” zachowań wynikających z automatycznych konwersji typów w JS. Mimo to logika w tym zadaniu jest typowa i zgodna z dobrymi praktykami: najpierw walidacja typu/wartości, potem dopiero dalsza logika biznesowa.

Pytanie 36

Fragment kwerendy SQL zaprezentowany w ramce ma na celu uzyskanie

SELECT COUNT(wartosc) FROM ...
A. liczbę wierszy.
B. liczbę kolumn.
C. sumę wartości w kolumnie wartosc.
D. średnią wartość w kolumnie wartosc.
Instrukcja COUNT w kwerendzie SQL służy do zliczania liczby wierszy w tabeli, które spełniają określone kryteria. Wyrażenie SELECT COUNT(wartosc) FROM ... zlicza wiersze, które mają niepustą wartość w kolumnie wartosc. Funkcja COUNT jest jedną z funkcji agregujących w SQL, które pozwalają na wykonywanie operacji na zestawach danych. Zastosowanie tej funkcji jest szczególnie istotne w sytuacjach, gdy potrzebujemy szybko uzyskać informację o liczebności danych, co jest kluczowe w analizie danych oraz raportowaniu. Warto zauważyć, że COUNT(*) policzyłoby wszystkie wiersze, niezależnie od tego, czy zawierają wartości NULL, natomiast COUNT(kolumna) ignoruje wiersze z wartościami NULL w podanej kolumnie. To rozróżnienie jest kluczowe w optymalizacji zapytań oraz w zapewnieniu dokładności wyników. W praktyce biznesowej, zliczanie wierszy może być wykorzystywane do śledzenia liczby zamówień, ilości produktów w magazynie oraz innych wskaźników operacyjnych, co sprawia, że funkcja COUNT jest podstawowym narzędziem każdego analityka danych.

Pytanie 37

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
Zakładając, że użytkownik wcześniej nie posiadał żadnych uprawnień, to polecenie SQL przyzna użytkownikowi anna prawa jedynie do:
A. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci
B. wybierania, wstawiania oraz aktualizacji danych wszystkich tabel w bazie o nazwie klienci
C. wybierania, dodawania rekordów oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
D. wybierania, dodawania rekordów oraz modyfikacji struktury tabeli o nazwie klienci
Odpowiedź jest prawidłowa, ponieważ polecenie SQL 'GRANT SELECT, INSERT, UPDATE ON klienci TO anna;' przyznaje użytkownikowi 'anna' określone prawa do tabeli o nazwie 'klienci'. Prawa te obejmują możliwość wybierania, wstawiania oraz aktualizacji danych w tej tabeli, co jest zgodne z zasadami zarządzania uprawnieniami w systemach baz danych. W praktyce oznacza to, że użytkownik 'anna' będzie mógł wykonywać zapytania SELECT, co pozwoli mu na odczyt danych, a także wstawiać nowe rekordy (INSERT) oraz modyfikować istniejące (UPDATE). To jest standardowa praktyka w zarządzaniu dostępem do danych, która pozwala na precyzyjne kontrolowanie, jakie operacje mogą być wykonywane przez poszczególnych użytkowników. Dobrą praktyką jest ograniczenie uprawnień do minimum, które użytkownik potrzebuje do wykonania swoich zadań, co jest zgodne z zasadą najmniejszych uprawnień. Na przykład, jeżeli 'anna' jest odpowiedzialna tylko za wstawianie nowych klientów, to przyznawanie jej uprawnień do aktualizacji danych może nie być konieczne. W teorii i praktyce bazy danych, rozróżnienie pomiędzy różnymi rodzajami uprawnień jest kluczowe dla bezpieczeństwa i integralności danych.

Pytanie 38

W PHP użyto funkcji is_float(). Które z wymienionych wywołań tej funkcji zwróci wartość true?

A. is_float(334)
B. is_float(NULL)
C. is_float('3,34')
D. is_float(3.34)
W przypadku odpowiedzi is_float('3,34') oraz is_float(334) obie są nieprawidłowe z powodów związanych z typem danych. Pierwsza z nich przekazuje wartość jako ciąg znaków (string) z przecinkiem, co w PHP nie jest interpretowane jako liczba zmiennoprzecinkowa. PHP nie rozumie przecinka jako separatora dziesiętnego, co prowadzi do błędu w rozpoznawaniu typu. Wartości numeryczne powinny być podawane w formie, która jest zgodna z oczekiwaną konwencją, co w większości języków programowania, w tym PHP, wymaga kropki jako separatora dziesiętnego. Tak więc, is_float('3,34') zwróci false, ponieważ argument nie jest typu float. W przypadku is_float(334), wartość ta jest liczbą całkowitą (integer), co również nie spełnia kryteriów funkcji is_float(). W kontekście programowania, bywa, że programiści mylą różne typy danych i ich konwersje, co prowadzi do nieprawidłowych wniosków na temat typów. Ostatnia odpowiedź, is_float(NULL), również zwraca false, ponieważ NULL nie jest typem danych numerycznych. Użycie NULL często stosowane jest do reprezentowania braku wartości, co jest odrębnym stanem od jakiejkolwiek liczby. Zrozumienie różnicy między typami danych oraz odpowiednie ich użycie jest fundamentem efektywnego programowania i uniknięcia wielu błędów w aplikacjach.

Pytanie 39

Jakie dane zostaną wyświetlone po wykonaniu poniższych poleceń? bool gotowe=true; cout<<gotowe;

A. nie
B. tak
C. 1
D. 0
W analizie odpowiedzi, które nie są poprawne, warto zwrócić uwagę na błędne rozumienie działania operatora cout oraz konwencji reprezentowania wartości logicznych w C++. W przypadku odpowiedzi, które sugerują, że wynik to "0" lub "tak", istnieje nieporozumienie dotyczące reprezentacji wartości boolean. W C++, wartość true nie jest wypisywana jako 'tak', lecz jako '1', co jest zgodne z konwencją używaną w wielu językach programowania, w tym C, C# i Java. Osoby, które odpowiedziały '0', mylnie sądzą, że 'true' może być reprezentowane w sposób, który nie jest zgodny z przyjętymi standardami. Również odpowiedź 'nie' wskazuje na podstawowe nieporozumienie dotyczące logicznych wartości zwrotnych w kontekście programu. Wartości logiczne w C++ są ściśle powiązane z typami danych, a ich interpretacja może prowadzić do błędnych konkluzji, jeśli nie jest zrozumiana. W codziennym programowaniu, kluczowe jest, aby programiści mieli świadomość, jak wartości boolean przekładają się na operacje arytmetyczne i logiczne, co pozwala na tworzenie bardziej efektywnego oraz bezpiecznego kodu. Niezrozumienie tych podstawowych zasad prowadzi do typowych błędów w logice programowania, co z kolei może skutkować nieefektywnym działaniem aplikacji oraz trudnościami w późniejszym debugowaniu kodu.

Pytanie 40

Tabele Klienci oraz Zgłoszenia są ze sobą połączone relacją jeden do wielu. W celu uzyskania jedynie opisu zgłoszenia oraz odpowiadającego mu nazwiska klienta dla zgłoszenia o numerze 5, należy wykonać polecenie

Ilustracja do pytania
A. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Klienci.id = 5
B. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.id WHERE Zgłoszenia.id = 5
C. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci WHERE Klienci.id = 5
D. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Zgłoszenia.id = 5
Niepoprawne odpowiedzi wynikają z błędnego zrozumienia, jak działa relacja klucz główny-klucz obcy w bazach danych. W relacyjnych bazach danych tabele są często powiązane relacjami, gdzie jedna tabela posiada klucz obcy odnoszący się do klucza głównego innej tabeli. W kontekście zapytania SQL, aby poprawnie połączyć tabele i uzyskać odpowiednie dane, musimy użyć klauzuli JOIN z właściwym warunkiem ON. Błędne odpowiedzi pokazują typowe nieporozumienia: jedna z alternatywnych odpowiedzi próbuje połączyć tabele bez użycia klauzuli ON, co prowadzi do błędnych wyników, ponieważ nie określa w jaki sposób rekordy z tabeli Klienci są powiązane z rekordami z tabeli Zgłoszenia. Inna odpowiedź błędnie zakłada, że filtrujemy dane na podstawie id klienta zamiast id zgłoszenia, co prowadzi do nieprawidłowego zestawu wyników niezgodnego z założeniami zadania. Takie błędy mogą wynikać z niedostatecznego zrozumienia struktury bazy danych oraz mechanizmów filtracji i łączenia danych w SQL. Kluczem do poprawnego zapytania jest jasne zrozumienie, jak relacje w bazach danych pozwalają na efektywne łączenie danych i selekcję pożądanych rekordów, co jest podstawą analizy danych i ich raportowania w systemach informacyjnych. Unikanie takich błędów wymaga znajomości syntaktyki SQL i logicznego sposobu myślenia o danych i ich powiązaniach.