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: 16 kwietnia 2026 15:12
  • Data zakończenia: 16 kwietnia 2026 15:17

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

W języku PHP zapisano fragment kodu. Plik cookie stworzony tym poleceniem

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. będzie przechowywany na serwerze przez jeden dzień.
B. zostanie usunięty po jednym dniu od jego utworzenia.
C. zostanie usunięty po jednej godzinie od jego utworzenia.
D. będzie przechowywany na serwerze przez jedną godzinę.
Widzę, że pomyślałeś, że plik cookie będzie trzymany na serwerze. To nie tak, bo wszystkie pliki cookie są przechowywane na komputerze użytkownika, a nie na serwerze. Serwer tylko korzysta z tych cookies, żeby wiedzieć, kto jest użytkownikiem i jak zarządzać sesjami. Kolejna sprawa – niektórzy myślą, że cookie wygasa po godzinie. Ale to nieprawda, bo w PHP argument wygaszenia to 3600 * 24, czyli 86400 sekund, co daje jeden dzień, a nie tylko godzinę. Te nieporozumienia mogą wynikać z braku zrozumienia funkcji setcookie() i tego, jak działają pliki cookie w webowych aplikacjach. Dobrze jest to wiedzieć, by tworzyć lepsze i bezpieczniejsze aplikacje.

Pytanie 2

Jaką wartość wydrukuje na standardowe wyjście poniższy fragment kodu C++?

int obliczenia( int x ) {
x %= 3;
x++;
return x;
}

int main() {
std::cout<<obliczenia(32);
}
A. 32
B. 3
C. 0
D. 2
Rozważając dostępne odpowiedzi musimy przeanalizować dlaczego niektóre z nich są błędne w kontekście działania fragmentu programu. Zaczynając od odpowiedzi 0 warto zauważyć że reszta z dzielenia 32 przez 3 nie wynosi 0 co oznacza że operacja x %= 3 nie da w wyniku zera. Wartość 0 mogłaby być wynikiem tylko wtedy gdyby liczba 32 była podzielna przez 3 co nie jest prawdą w tym przypadku. Przechodząc dalej odpowiedź 32 sugeruje że operacje wewnątrz funkcji nie zmieniają wartości x co jest błędnym założeniem. Operacja x %= 3 zmienia wartość x na 2 a następnie x++ zmienia ją na 3. Dlatego wynik nie może być 32 ponieważ funkcja jawnie modyfikuje wartość wejściową. W kontekście odpowiedzi 2 operacje w funkcji mogą rzeczywiście prowadzić do wyniku 2 jeśli pominie się krok inkrementacji. Jednakże analiza kodu pokazuje że po operacji modulo wartość x wynosi 2 a następny krok to x++ który zwiększa tę wartość do 3. W rezultacie żadna z tych odpowiedzi nie uwzględnia pełnego przepływu operacji w funkcji co prowadzi do nieprawidłowych wniosków. Analizując ten problem można zauważyć jak ważne jest dokładne śledzenie przepływu danych w programie oraz zrozumienie wpływu każdej operacji na ostateczny wynik co jest kompetencją kluczową w profesjonalnym programowaniu.

Pytanie 3

Klucz obcy w tabeli jest używany w celu

A. zdefiniowania relacji 1..n łączącej go z kluczem głównym innej tabeli
B. połączenia go z innymi kluczami obcymi w tabeli
C. opracowania formularza do wprowadzania danych do tabeli
D. umożliwienia jednoznacznej identyfikacji rekordu w danej tabeli
Klucz obcy w tabeli często mylony jest z innymi elementami struktury bazy danych, co prowadzi do nieporozumień w jego zastosowaniu. Odpowiedzi sugerujące, że klucz obcy służy do łączenia go z innymi kluczami obcymi tabeli, są mylne, ponieważ klucze obce nie są same w sobie elementami łączącymi, ale raczej definiują relację z kluczem głównym innej tabeli. Tworzenie formularza wpisującego dane do tabeli również nie jest funkcją klucza obcego, który służy do wskazywania relacji między danymi, a nie do interakcji użytkownik-baza danych. Umożliwienie jednoznacznej identyfikacji rekordu w tabeli jest funkcją klucza głównego, a nie klucza obcego; klucz obcy zazwyczaj nie identyfikuje rekordu, lecz odnosi się do rekordu w innej tabeli. Przykładowo, jeśli w tabeli 'Zamówienia' klucz obcy wskazuje na 'KlientID' w tabeli 'Klienci', to nie identyfikuje on zamówienia, lecz łączy je z klientem. W wyniku tych błędnych założeń, projektanci baz danych mogą wprowadzać niepoprawne relacje, co prowadzi do problemów z integralnością i spójnością danych, a także utrudnia analizowanie związanych ze sobą informacji.

Pytanie 4

Język HTML oferuje nagłówki, które służą do tworzenia hierarchii zawartości. Te nagłówki występują wyłącznie w zakresie

A. h1 - h8
B. h1 - h6
C. h1 - h10
D. h1 - h4
Odpowiedź h1 - h6 jest poprawna, ponieważ w języku HTML nagłówki są definiowane w ramach sześciu poziomów, od h1 do h6. Nagłówki te pełnią kluczową rolę w organizacji treści na stronie internetowej, umożliwiając tworzenie hierarchii oraz struktury dokumentu. h1 jest najważniejszym nagłówkiem i powinien być używany do oznaczania głównego tytułu strony, podczas gdy h2, h3, h4, h5 i h6 służą do tworzenia podtytułów i hierarchii treści w miarę potrzeby. Na przykład, nagłówek h2 może być użyty do oznaczenia sekcji podrzędnej w stosunku do h1, a h3 do następnej sekcji podrzędnej. Takie zrozumienie hierarchii nagłówków jest istotne z punktu widzenia SEO, ponieważ wyszukiwarki korzystają z tych struktur do indeksowania treści. Dobrze zorganizowane nagłówki poprawiają również dostępność strony, co jest zgodne z najlepszymi praktykami webowymi, a także ułatwiają nawigację użytkownikom, zarówno ludziom, jak i robotom wyszukiwarek.

Pytanie 5

Jaką funkcję SQL można uznać za nieprzyjmującą argumentów?

A. now
B. year
C. upper
D. len
Odpowiedzi, które wskazują na funkcje 'year', 'len' oraz 'upper', opierają się na błędnych założeniach dotyczących sposobu działania tych funkcji. Funkcja 'year' jest wykorzystywana do wyodrębnienia części roku z daty i wymaga podania argumentu, który jest datą. Na przykład, użycie 'year(data)' zwróci numer roku z podanej daty, co stawia tę funkcję w kontekście pobierania argumentów. Z kolei 'len' jest funkcją służącą do określenia długości łańcucha znaków, co również oznacza, że wymaga argumentu w postaci tekstu: 'len('tekst')' zwróci liczbę znaków w podanym łańcuchu. Funkcja 'upper' z kolei przekształca wszystkie znaki w podanym łańcuchu na wielkie litery, także wymaga argumentu: 'upper('tekst')'. Te funkcje są niezwykle użyteczne w codziennej pracy z danymi, ale ich zastosowanie powinno być świadome i oparte na znajomości ich specyfiki. W przypadku takich funkcji, typowym błędem myślowym jest przekonanie, że można je stosować bez znajomości wymaganych argumentów. W praktyce oznacza to, że aby korzystać z możliwości funkcji SQL, niezbędne jest zrozumienie ich struktury i działania, co jest kluczowe dla efektywnego pisania zapytań oraz przetwarzania danych w bazach danych.

Pytanie 6

Oznaczenie barwy w postaci #FF00E0 jest równoważne zapisowi

A. rgb(255, 0, 224)
B. rgb(F, 0, E0)
C. rgb(FF, 0, E0)
D. rgb(255, 0, 128)
Zapis #FF00E0 to klasyczny przykład koloru w notacji szesnastkowej, używanej w CSS i ogólnie w webdesignie. Cały haczyk polega na tym, że te literki i cyfry nie są traktowane jako tekst, tylko jako liczby w systemie o podstawie 16. Każde dwa znaki odpowiadają jednej składowej koloru: czerwonej, zielonej i niebieskiej. Czyli mamy strukturę: #RRGGBB. W tym konkretnym przypadku RR = FF, GG = 00, BB = E0. Częsty błąd polega na traktowaniu tych liter dosłownie, jak w odpowiedziach typu rgb(F, 0, E0) czy rgb(FF, 0, E0). W zapisie rgb() wartości muszą być liczbami dziesiętnymi z zakresu 0–255, a nie ciągami znaków. Przeglądarka oczekuje tam konkretnych wartości natężenia składowych, a nie kodu szesnastkowego. FF to nie symbol, tylko liczba w systemie hex. Żeby ją poprawnie zinterpretować, trzeba przeliczyć ją na system dziesiętny: F to 15, więc FF = 15×16 + 15 = 255. Podobnie z E0: E to 14, więc E0 = 14×16 + 0 = 224. Z mojego doświadczenia to przeliczanie jest źródłem wielu pomyłek, szczególnie na początku nauki. Inny typowy błąd myślowy to zgadywanie wartości na oko, jak w odpowiedzi rgb(255, 0, 128). Ktoś widzi intensywny kolor, więc daje maksymalny czerwony i jakąś średnią wartość niebieskiego. Problem w tym, że hex E0 to wcale nie jest 128, tylko 224, czyli dużo bliżej maksimum 255 niż środka skali. Takie „strzelanie” bez przeliczenia łamie spójność pomiędzy zapisem hex a rgb i prowadzi do zupełnie innego koloru niż zamierzony. Dobra praktyka w branży jest taka, żeby zawsze pamiętać: zapis hex to trzy liczby 0–255 zapisane w bazie 16, a rgb() to te same liczby zapisane normalnie, po ludzku, w systemie dziesiętnym. Jeżeli pojawiają się litery A–F, to znaczy, że mamy do czynienia z systemem szesnastkowym i trzeba je potraktować jak cyfry 10–15, a nie jako jakiś tekst. To niby drobiazg, ale w pracy front-endowca albo grafika webowego ma ogromne znaczenie, bo precyzja kolorów jest kluczowa dla spójności całego projektu graficznego.

Pytanie 7

Która wartość tekstowa nie pasuje do podanego w ramce wzorca wyrażenia regularnego?

(([A-ZŁŻ][a-ząęóżźćńłś]{2,})(-[A-ZŁŻ][a-ząęóżźćńłś]{2,})?)
A. Kowalski
B. Jelenia Góra
C. Kasprowicza
D. Nowakowska-Kowalska
Wyrażenie regularne, które zostało podane w pytaniu, to [A-ZŁŻ][a-ząęóżźćńłś]{2,}-[A-ZŁŻ][a-ząęóżźćńłś]{2,}. Wyrażenie to jest używane do walidacji polskich nazwisk, gdzie pierwsza litera musi być dużą literą z zakresu A-Z oraz polskimi znakami diakrytycznymi, następnie muszą występować co najmniej dwa znaki małe, również z zestawu polskich liter. Po pierwszej części, która odpowiada za pierwsze nazwisko, mamy opcjonalny fragment, który zaczyna się od znaku '-', co oznacza, że można podać drugie nazwisko, które także musi spełniać te same warunki. Przykład poprawnych wartości to Kowalski oraz Nowakowska-Kowalska. Wartość 'Jelenia Góra' nie pasuje do tego wzorca, ponieważ zawiera spację, która nie jest dozwolona w tym kontekście. Dodatkowo, spację można interpretować jako rozdzielenie dwóch słów, co wykracza poza przyjęty format. W związku z tym, prawidłowa odpowiedź to 'Jelenia Góra'.

Pytanie 8

W języku JavaScript stworzono obiekt Samochod. Aby wywołać jedną z jego metod, trzeba wpisać

A. Samochod.kolor
B. Samochod.spalanie()
C. Samochod()
D. Samochod.spalanie_na100
W języku JavaScript obiekt to podstawowa jednostka, która pozwala na grupowanie danych i funkcji w jednym miejscu. W kontekście zdefiniowanego obiektu Samochod, aby wywołać jego metodę, należy skorzystać z notacji kropkowej. Poprawne użycie to Samochod.spalanie(), co wskazuje na wywołanie metody 'spalanie' z obiektu 'Samochod'. Ta metoda może zawierać logikę obliczającą zużycie paliwa lub inne operacje związane z danym samochodem. Warto zauważyć, że metody w JavaScript są funkcjami przypisanymi do obiektów, co umożliwia ich wywołanie za pomocą notacji kropkowej. Przykładowo, jeśli obiekt Samochod ma zdefiniowaną metodę spalanie, możemy ją zainicjować i uzyskać wynik, co czyni nasz kod bardziej modularnym i czytelnym. Użycie odpowiednich metod jest zgodne z zasadami programowania obiektowego, które są fundamentem JavaScript. Metody obiektów mogą korzystać z właściwości innych obiektów, co zwiększa elastyczność programowania. Ta architektura jest zgodna ze standardem ECMAScript, który definiuje zasady dotyczące obiektów i funkcji w JavaScript.

Pytanie 9

W SQL instrukcja INSERT INTO

A. wprowadza nową tabelę.
B. wprowadza dane do tabeli.
C. modyfikuje rekordy przypisaną wartością.
D. dodaje kolumny do istniejącej tabeli.
Odpowiedzi sugerujące, że polecenie INSERT INTO dodaje tabelę, dodaje pola do tabeli lub aktualizuje rekordy, są nieprawidłowe z kilku powodów. Po pierwsze, dodawanie tabeli w SQL odbywa się za pomocą polecenia CREATE TABLE, które jest zupełnie innym działaniem. CREATE TABLE pozwala na definiowanie struktury tabeli, w tym nazw kolumn oraz ich typów danych. Kiedy ktoś myli INSERT z CREATE, może prowadzić do nieporozumień w zakresie zarządzania strukturą bazy danych. Po drugie, dodawanie pól do istniejącej tabeli realizuje się przez polecenie ALTER TABLE, które umożliwia modyfikację struktury tabeli, na przykład dodawanie nowych kolumn lub zmienianie typów istniejących. W kontekście aktualizacji rekordów, SQL oferuje polecenie UPDATE, które służy do modyfikacji istniejących danych w tabeli. Wprowadzenie nowych danych i aktualizacja istniejących to różne operacje, które mają różne cele i zastosowania. Często ludzie mylą te operacje, co może prowadzić do błędów podczas pisania zapytań. W przypadku błędnego użycia INSERT, użytkownik może napotkać na błędy typu 'duplicate key', jeśli próbuje wprowadzić dane, które naruszają ograniczenia unikalności. Zrozumienie różnic między tymi poleceniami jest kluczowe do efektywnego zarządzania danymi w bazach danych oraz do zapewnienia integralności i poprawności danych.

Pytanie 10

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

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

Pytanie 11

Która z reguł dotyczących sekcji w języku HTML jest poprawna?

A. W sekcji <head> umieszcza się część <body>
B. W sekcji <head> mogą znajdować się znaczniki <meta>, <title>, <link>
C. W sekcji <head> można zdefiniować szablon strony przy użyciu znaczników <div>
D. W sekcji <head> nie można umieszczać kodu CSS, jedynie odwołanie do pliku CSS
Wybór tej odpowiedzi jest słuszny, ponieważ w części <head> dokumentu HTML mogą występować różne znaczniki, które są kluczowe dla poprawnej struktury i funkcjonalności strony. Znaczniki <meta> służą do dostarczania danych o stronie, takich jak opis, słowa kluczowe czy informacje o autorze, co jest istotne dla SEO (optymalizacji pod kątem wyszukiwarek). Znacznik <title> definiuje tytuł strony, który jest wyświetlany w zakładkach przeglądarki oraz w wynikach wyszukiwania, co ma wpływ na wrażenia użytkowników oraz ich decyzje. Z kolei znacznik <link> jest używany do odwoływania się do zewnętrznych arkuszy stylów CSS, co pozwala na oddzielenie struktury HTML od stylizacji. Dobre praktyki wskazują, że umieszczanie CSS w <head> zamiast w <body> poprawia czas ładowania strony oraz zapewnia, że style są stosowane jeszcze przed renderowaniem zawartości, co wpływa na lepszą użyteczność i wygląd strony. Dobrze zorganizowana sekcja <head> może przyczynić się do lepszego pozycjonowania w wyszukiwarkach oraz poprawy doświadczeń użytkowników.

Pytanie 12

Plik graficzny powinien być zapisany w formacie GIF, gdy

A. jest to obraz stereoskopowy
B. jest konieczność zapisu obrazu bez kompresji
C. jest to grafika wektorowa
D. jest potrzeba zapisu obrazu lub animacji
Grafika wektorowa jest zupełnie innym typem pliku graficznego, który opiera się na matematycznych opisach kształtów i linii, a nie na pikselach. Wektorowe formaty, takie jak SVG czy EPS, umożliwiają skalowanie obrazu bez utraty jakości, co jest ich kluczową zaletą. GIF nie jest w stanie zrealizować tych funkcji, dlatego nie jest odpowiednim formatem dla grafiki wektorowej. Obraz stereoskopowy to technika, która tworzy iluzję głębi poprzez ujęcia z dwóch różnych kątów, co pozwala na postrzeganie trójwymiarowości. GIF nie obsługuje tej techniki, ponieważ nie jest zaprojektowany z myślą o przechowywaniu danych przestrzennych, a raczej skupia się na prostych, płaskich animacjach czy obrazach. W przypadku potrzeby zapisu obrazu bez kompresji, format GIF również nie jest odpowiedni, gdyż wprowadza pewien poziom kompresji, co może prowadzić do utraty jakości. Dla takich zastosowań lepszym wyborem będą formaty takie jak BMP czy TIFF, które pozwalają na zapis bezstratny, a więc idealnie zachowują oryginalną jakość obrazu.

Pytanie 13

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. tr { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 14

Bitmapa stanowi typ obrazu

A. rastrowym
B. interakcyjnym
C. analogowym
D. wektorowym
Bitmapa, znana również jako obraz rastrowy, jest jednym z najpopularniejszych formatów graficznych używanych w różnych aplikacjach komputerowych, takich jak edytory zdjęć czy programy graficzne. Obrazy rastrowe składają się z siatki pikseli, gdzie każdy piksel ma przypisaną określoną wartość koloru. Przykłady popularnych formatów bitmapowych to JPEG, PNG, oraz BMP. W kontekście praktycznym, bitmapy są idealne do przedstawiania zdjęć i szczegółowych ilustracji, ponieważ mogą zachować bogactwo detali i kolorów. Główne zastosowanie bitmap obejmuje grafikę internetową, projektowanie stron, a także obróbkę zdjęć. W branży graficznej stosuje się standardy, takie jak RGB i CMYK, które definiują, jakie kolory mogą być użyte w obrazach rastrowych. Aby uzyskać najlepszą jakość wizualną, ważne jest, aby dostosować rozdzielczość obrazów do przeznaczenia, co jest kluczowe w profesjonalnych projektach graficznych. Właściwe zrozumienie bitmap jest fundamentem dla każdego, kto zajmuje się grafiką komputerową czy projektowaniem wizualnym.

Pytanie 15

Który z frameworków stworzono dla języka skryptowego PHP?

A. Spring
B. ASP.NET
C. Angular
D. Symfony
Symfony jest jednym z najpopularniejszych frameworków PHP, który został zaprojektowany w celu ułatwienia tworzenia aplikacji webowych. Oferuje zestaw narzędzi i komponentów, które wspierają rozwój poprzez ułatwienie organizacji kodu, co jest zgodne z zasadami programowania obiektowego. W praktyce, Symfony pozwala na szybkie prototypowanie aplikacji oraz wspiera długoterminowy rozwój dzięki modularności i łatwości w utrzymaniu. Framework ten stosuje wzorzec architektoniczny MVC (Model-View-Controller), co pozwala na oddzielanie logiki aplikacji od warstwy prezentacji, co jest zgodne z najlepszymi praktykami w branży. Symfony posiada bogaty ekosystem, w tym zestaw komponentów, które mogą być używane niezależnie od całego frameworka. Przykłady zastosowania Symfony obejmują tworzenie złożonych systemów zarządzania treścią (CMS), e-commerce, oraz aplikacji opartej na REST API. Jego wsparcie dla testów automatycznych oraz rozbudowanej dokumentacji czyni go idealnym wyborem dla projektów wymagających wysokiej jakości kodu oraz efektywności w rozwoju.

Pytanie 16

W CSS zapis w formie: p{background-image: url"rysunek.jpg")} spowoduje, że rysunek.png stanie się

A. tłem każdego bloku tekstowego
B. wyświetlany obok każdego bloku tekstowego
C. tłem całej witryny
D. pokazany, jeśli w kodzie użyty będzie znacznik img
Pierwsza niepoprawna odpowiedź twierdzi, że obrazek ma być tłem całej strony. W rzeczywistości, żeby ustawić tło dla całej strony, używa się body, a nie <p>. Tło ustawione dla paragrafów nie zmienia wyglądu całej strony. Druga niepoprawna odpowiedź sugeruje, że obrazek ma być obok każdego paragrafu. To mógłbyś osiągnąć innymi właściwościami, jak float czy display inline-block, ale background-image nie wyświetla go obok, to działa jako tło. Ostatnia niepoprawna odpowiedź mówi o użyciu znacznika img. Użycie img to inna sprawa – obrazek dodany w takim znaczniku będzie oddzielnym elementem, a nie tłem. W skrócie, background-image i img to różne techniki i używa się ich w różnych sytuacjach, więc te odpowiedzi nie mają sensu w kontekście pytanie.

Pytanie 17

Wskaż właściwą sekwencję kroków w procesie projektowania relacyjnej bazy danych?

A. Określenie kluczy głównych tabel, Określenie zbioru danych, Selekcja, Określenie relacji
B. Selekcja, Określenie relacji, Określenie kluczy głównych tabel, Określenie zbioru danych
C. Określenie relacji, Określenie kluczy głównych tabel, Selekcja, Określenie zbioru danych
D. Określenie zbioru danych, Selekcja, Określenie kluczy głównych tabel, Określenie relacji
Wybranie błędnej odpowiedzi sugeruje, że nie do końca rozumiesz, jak działa proces projektowania relacyjnej bazy danych. Kiedy kolejność kroków jest pomijana, mogą się pojawić problemy. Czasem widziałem, że klucze podstawowe są określane jeszcze przed zdefiniowaniem zbioru danych. To może prowadzić do błędnego przypisania kluczy do tabel. Klucz podstawowy powinien być oparty na wcześniej zdefiniowanych danych, żeby wszystko było unikalne i wartościowe. Jak się nie rozumie, jakie dane mają być w bazie, to ustalanie relacji na wyrost nie ma sensu. W praktyce, jeśli źle podchodzimy do projektowania bazy danych, to później mogą być kłopoty z zarządzaniem danymi, co wpłynie na efektywność naszej aplikacji. Dlatego warto skupić się na dobrze przemyślanym zbiorze danych zanim zaczniemy myśleć o kluczach i relacjach.

Pytanie 18

Jaka wartość zostanie wypisana na standardowym wyjściu dla zamieszczonego w ramce fragmentu programu napisanego w języku C++ ?

int obliczenia( int x ){
    x %= 3;
    x++;
    return x;
}

int main( ){
    std::cout << obliczenia(32);
}
A. 0
B. 2
C. 3
D. 32
Niestety, to nie jest to. Wybranie niewłaściwej opcji oznacza, że mogłeś nie do końca zrozumieć, jak działają operatory w C++. Mamy tu funkcję 'obliczenia', która przyjmuje 32 jako wartość dla 'x'. Potem 'x' jest zmieniane przez operację modulo (x %= 3). Ta operacja daje nam resztę z dzielenia przez 3, czyli 2. Jeżeli wybrałeś opcję 2, to może umknął ci krok, w którym 'x' jest zwiększane o 1 (x++). Na końcu dostajemy 3, a to jest wynik, który funkcja zwraca. Jeśli wybrałeś opcję 32, mógłbyś błędnie założyć, że argument funkcji się nie zmienia, a tak nie jest. 'x' jest zmieniane wewnątrz funkcji. A jak wybrałeś opcję 0, to pewnie zrozumiałeś źle, jak działa operator modulo. To nie daje wyniku dzielenia, tylko resztę. Staraj się pamiętać o tych zasadach, bo są istotne w dalszym programowaniu.

Pytanie 19

Jakie będzie działanie po naciśnięciu przycisku oznaczonego jako "niebieski", który uruchamia podany kod JavaScript?

<p id="para1">Przykładowy tekst</p><p> i skrypt</p>
<button onClick="changeColor('blue');">niebieski</button>

<script type="text/javascript">
function changeColor(newColor)
{
var elem = document.getElementById("para1");
elem.style.color = newColor;
}
</script>
A. Zmiana koloru tekstu "Przykładowy tekst" na niebieski
B. Zmiana koloru tekstu "i skrypt" na niebieski
C. Zmiana koloru tekstu "Przykładowy tekst i skrypt" na niebieski
D. Zmiana barwy przycisku na niebieski
Kod JavaScript przedstawiony w pytaniu definiuje funkcję changeColor która przyjmuje jeden argument newColor. Po wywołaniu funkcji przez kliknięcie przycisku funkcja ta używa metody document.getElementById aby pobrać element o identyfikatorze para1. Identyfikator ten jest przypisany do pierwszego elementu paragrafu zawierającego tekst Przykładowy tekst. Następnie w ramach tego elementu zmieniany jest kolor tekstu poprzez przypisanie newColor do właściwości style.color. W omawianym przypadku newColor przyjmuje wartość blue co oznacza że tekst Przykładowy tekst zmieni kolor na niebieski. Warto podkreślić że manipulacja DOM przy użyciu JavaScript jest powszechnie stosowaną techniką w tworzeniu dynamicznych interfejsów użytkownika. Używanie metod takich jak getElementById jest standardem ze względu na ich prostotę oraz efektywność w selekcji elementów HTML. W praktycznych zastosowaniach warto również pamiętać o zgodności ze standardami W3C oraz o możliwościach rozszerzenia za pomocą bibliotek takich jak jQuery które oferują jeszcze bardziej zaawansowane opcje manipulacji DOM.

Pytanie 20

Wskaż blok sformatowany poniższym stylem CSS:

background: linear-gradient(to right, LightBlue, DarkBlue);
Ilustracja do pytania
A. Blok 1.
B. Blok 4.
C. Blok 2.
D. Blok 3.
Gratulacje! Wybrałeś właściwą odpowiedź - Blok 2. W stylach CSS, zapis 'background: linear-gradient(to right, LightBlue, DarkBlue);' określa gradient liniowy, który przechodzi od koloru jasnoniebieskiego (LightBlue) do ciemnoniebieskiego (DarkBlue) poziomo, od lewej do prawej strony. To oznacza, że kolor tła danego elementu stopniowo zmienia się od jednego koloru do drugiego w określonym kierunku. Stosowanie gradientów jest popularną techniką w web designie, ponieważ pozwala na tworzenie płynnych przejść kolorów i dodaje estetyki stronie. Gradienty mogą być zastosowane do różnych elementów na stronie, takich jak tło, tekst, ramki itp. Warto zaznaczyć, że gradienty CSS mogą być nie tylko liniowe, ale również radialne. W tym przypadku, tylko Blok 2. jest sformatowany zgodnie z podanym stylem CSS, ponieważ zawiera gradient poziomo przechodzący od jasnoniebieskiego do ciemnoniebieskiego.

Pytanie 21

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

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

Pytanie 22

Narzędzie używane do organizowania i przedstawiania danych z wielu wpisów w celu ich wydruku lub dystrybucji to

A. raport
B. kwerenda
C. makropolecenie
D. formularz
Kwerenda, formularz i makropolecenie to narzędzia, które mają zupełnie inne zadania niż raportowanie. Kwerenda to tak jakby pytanie do bazy danych, które pozwala wyciągać konkretne informacje z całkiem dużej ilości danych. Jej głównym celem jest raczej filtracja niż grupowanie danych, więc niekoniecznie nadaje się do tworzenia raportów. Formularz to interfejs, za pomocą którego możemy wprowadzać lub edytować dane, ale nie pomoże nam w grupowaniu czy ładnej prezentacji w formie raportu. Makropolecenie to natomiast zestaw instrukcji w Excelu, które mogą automatyzować powtarzalne zadania, co jest spoko, ale nie ma tu mowy o tworzeniu raportów. Widać więc, że każde z tych narzędzi ma swoje przeznaczenie i nie może zastąpić efektywnego raportu, który jest kluczowy w analizie danych.

Pytanie 23

Aby uzyskać przezroczyste tło w obrazie formatu JPG, należy wykonać

A. dodanie kanału alfa
B. właściwe przycięcie
C. korekcję nasycenia kolorów
D. użycie filtru Gaussa
Poprawienie saturacji barw, kadrowanie czy zastosowanie filtru Gaussa, choć mogą być przydatnymi technikami w edycji obrazu, nie są odpowiednie do uzyskania przezroczystości tła. Saturacja barw odnosi się do intensywności kolorów w obrazie. Zwiększenie saturacji może sprawić, że kolory będą bardziej wyraziste, ale nie ma wpływu na przezroczystość tła. Kadrowanie to proces przycinania obrazu do określonego obszaru, co również nie wpływa na przezroczystość – może jedynie zmienić widoczność fragmentów obrazu. Zastosowanie filtru Gaussa, który jest techniką stosowaną do wygładzania lub rozmywania obrazu, może zmienić wygląd krawędzi, ale nie doda przezroczystości. Również nie jest możliwe uzyskanie kanału alfa przy użyciu tych metod, co prowadzi do powszechnego błędu myślowego, że zmiana kolorów lub kształtów obrazu bezpośrednio wpływa na przezroczystość. W kontekście cyfrowej obróbki obrazów kluczowe jest zrozumienie, że przezroczystość wymaga specyficznych operacji, takich jak dodanie kanału alfa oraz zapisanie obrazu w formacie, który to umożliwia, co nie jest osiągalne przez proste manipulacje kolorami lub filtry.

Pytanie 24

Na ilustracji przedstawiono kompozycję bloków strony www. Który z elementów formatowania strony odpowiada temu układowi? (Dla uproszczenia pominięto właściwości dotyczące koloru tła, wysokości oraz czcionki)

Ilustracja do pytania
A. Odpowiedź 3: C
B. Odpowiedź 2: B
C. Odpowiedź 4: D
D. Odpowiedź 1: A
Jeśli chodzi o inne odpowiedzi, to niestety mają spore błędy. W odpowiedzi A zastosowano clear:both dla drugiego bloku, co sprawia, że ten blok wyląduje poniżej pierwszego, a nie obok. To uniemożliwia uzyskanie układu wielokolumnowego, a to dość powszechny błąd, gdy korzysta się z float. Z kolei odpowiedź C całkowicie pomija użycie float, ustawiając tylko szerokość elementów. Bez float lub innego sposobu na układ w poziomie, elementy będą się ustawiać jeden pod drugim, co nie jest tym, czego byśmy chcieli. Odpowiedź D używa float dla bloku czwartego, co sprawia, że wyświetli się obok pierwszych bloków, zamiast pod nimi, co burzy strukturę strony. Takie błędne użycie CSS prowadzi do chaosu wizualnego i utrudnia nawigację użytkownikowi, a w perspektywie przyszłego zarządzania kodem HTML i CSS może być kłopotliwe. Dlatego warto zrozumieć, jak działają właściwości float i clear oraz ich interakcje w kontekście całego układu, co jest istotne w projektach, które chcą być przejrzyste i responsywne.

Pytanie 25

W zaprezentowanym fragmencie zapytania SQL, instrukcja SELECT ma za zadanie zwrócić

SELECT COUNT(wartosc) FROM ...
A. średniej wartości tabeli
B. liczby rekordów
C. średniej w kolumnie wartosc
D. suma w kolumnie wartosc
W przypadku języka SQL, funkcja SELECT służy do wybierania danych z bazy i często jest mylona ze sposobem podsumowywania danych. Odpowiedzi wskazujące na obliczanie średniej w tabeli lub w kolumnie są błędne, ponieważ średnia (AVG) jest obliczana zupełnie inną funkcją. Select średniej w kolumnie wymaga użycia AVG zamiast COUNT. To powszechny błąd, wynikający z niepełnego zrozumienia różnicy między różnymi funkcjami agregującymi. Z kolei zrozumienie dlaczego odpowiedź dotycząca sumy w kolumnie jest błędna wiąże się z innym typowym nieporozumieniem w SQL. SUM służy do dodawania wartości liczbowych w kolumnie, jednak COUNT skupia się na liczbie wierszy, co oznacza, że jego celem nie jest sumowanie wartości, lecz ich zliczanie. W tej sytuacji pytanie dotyczyło liczby niepustych wartości w kolumnie wartosc, a nie sumy tych wartości. Takie błędy często wynikają z mylnego postrzegania funkcji jako wzajemnie zamiennych, podczas gdy każda z nich ma specyficzne zastosowanie i wynika z niej inna logika działania. Warto zatem skupić się na zrozumieniu przeznaczenia i użycia każdej z funkcji agregujących osobno, co pozwoli uniknąć takich nieporozumień w przyszłości. Ważne jest, aby pamiętać o tych różnicach i stosować odpowiednie funkcje zgodnie z potrzebami analizy danych. Poprawne użycie funkcji COUNT pozwala na efektywne zliczanie wartości i jest fundamentalne dla prawidłowego przetwarzania danych w SQL.

Pytanie 26

Którego związku selektorów CSS należy użyć w miejscu znaków zapytania, aby zdefiniowany styl został zastosowany tylko do tekstu „paragrafie”?

<!DOCTYPE html>
<html>
  <head>
    <style>
      ???{letter-spacing: 10px; color: red;}
    </style>
  </head>
  <body>
    <p>Styl <b>tekstu</b> w pierwszym <i>paragrafie</i></p>
  </body>
</html>
A. b i
B. b > i
C. b + i
D. i + b
W tym zadaniu kluczowe jest zrozumienie, jak działają różne rodzaje selektorów powiązanych w CSS i jak odwzorowują one strukturę DOM. W kodzie HTML mamy element <p>, a w nim kolejno <b>tekstu</b> oraz zaraz po nim <i>paragrafie</i>. Oba są rodzeństwem, mają tego samego rodzica i występują w konkretnej kolejności. To, którą odpowiedź się wybierze, zależy od poprawnego odczytania tej relacji. Zapis „b i” to selektor potomka (descendant selector). Oznacza on: wybierz każdy element <i>, który znajduje się gdziekolwiek wewnątrz elementu <b>, na dowolnym poziomie zagnieżdżenia. W naszym przykładzie <i> nie jest wewnątrz <b>, tylko obok niego, więc taki selektor nic nie znajdzie. To jest dość typowe nieporozumienie: wiele osób myli „potomka” z „rodzeństwem”. Potomek to element zagnieżdżony, a nie kolejny po. Z kolei „b > i” to selektor dziecka (child selector). Jest jeszcze bardziej restrykcyjny – wybiera tylko te elementy <i>, które są bezpośrednimi dziećmi <b>. Czyli <i> musi być natychmiast wewnątrz <b>, bez żadnego pośredniego poziomu. W naszym kodzie znowu ten warunek nie jest spełniony, bo <i> nie jest dzieckiem <b>, tylko jego sąsiadem w tym samym paragrafie. To pokazuje, że zarówno selektor potomka, jak i dziecka są tu po prostu złym typem relacji. Odpowiedź „i + b” odwraca właściwy kierunek. Selektor sąsiedniego rodzeństwa z operatorem „+” działa zawsze w przód: po lewej stronie jest element, który występuje jako pierwszy, po prawej ten, który ma zostać wybrany. „i + b” oznacza więc: wybierz <b>, który stoi bezpośrednio po <i>. W naszym HTML jest odwrotnie – najpierw <b>, potem <i>. To częsty błąd myślowy: ktoś kojarzy poprawny typ selektora („+”), ale nie zwraca uwagi na kolejność elementów. Podsumowując, wszystkie błędne odpowiedzi ignorują prawdziwą relację strukturalną między <b> i <i>. Albo zakładają zagnieżdżenie tam, gdzie go nie ma, albo mylą kierunek selektora sąsiedniego. Dobra praktyka przy pracy z CSS to zawsze patrzenie na drzewo DOM jak na strukturę rodzic–dziecko–rodzeństwo i dobieranie selektora dokładnie do tej relacji. Dzięki temu styl trafia w jeden, konkretny element, zamiast działać przypadkowo lub wcale.

Pytanie 27

Na przedstawionym diagramie ER zapis FK1 oznacza

Ilustracja do pytania
A. relację 1:1.
B. klucz obcy.
C. relację 1:N.
D. klucz podstawowy.
Na diagramach ER oznaczenia typu FK1 zwykle odnoszą się do kluczy obcych, a nie do samej relacji ani do kluczy podstawowych. Łatwo się tu pomylić, bo obok tego symbolu widać też graficzne oznaczenie relacji 1:N między tabelami Klienci i Zamówienia, więc część osób automatycznie kojarzy podpis z typem połączenia. Tymczasem relacja 1:1 czy 1:N jest przedstawiana linią i odpowiednimi znacznikami przy końcach (kreska, „gałązki”, kółko), natomiast skróty PK i FK pojawiają się wewnątrz tabel i opisują role konkretnych kolumn. PK to primary key, czyli klucz podstawowy – unikalny identyfikator w danej tabeli. Na diagramie widać go przy NR_klienta w tabeli Klienci oraz przy ID_Zamówienia w tabeli Zamówienia. Oznaczenie FK1 przy NR_klienta w tabeli Zamówienia nie może więc oznaczać kolejnego klucza podstawowego ani samej relacji, tylko właśnie klucz obcy, który wskazuje na PK w innej tabeli. Częsty błąd polega na mieszaniu pojęć „relacja 1:N” z „kluczem obcym”. Relacja 1:N jest pojęciem konceptualnym: mówi, że jeden klient może mieć wiele zamówień. Klucz obcy to implementacja tej relacji w fizycznym modelu bazy: konkretna kolumna, która przechowuje wartość klucza podstawowego z drugiej tabeli. Innymi słowy, FK jest narzędziem, a 1:N opisem zależności. Kiedy ktoś interpretuje FK1 jako relację 1:1 albo 1:N, miesza warstwę symboliki linii z opisem kolumn. Dobra praktyka w projektowaniu baz danych i w narzędziach CASE jest taka, że PK i FK stoją zawsze przy nazwach atrybutów, a typ relacji rozczytujemy z grafiki między encjami, nie z tych skrótów. Zrozumienie tej różnicy jest kluczowe, bo potem w SQL dokładnie tak samo rozdzielamy definicję struktury tabel (PRIMARY KEY, FOREIGN KEY) od logicznej interpretacji, ile rekordów może być po każdej stronie relacji.

Pytanie 28

Jak nazywa się proces, w trakcie którego identyfikuje się oraz eliminuje błędy w kodzie źródłowym aplikacji?

A. Kompilacja
B. Normalizacja
C. Debugowanie
D. standaryzacja
Kompilowanie to proces, który przekształca kod źródłowy napisany w języku wysokiego poziomu w kod maszynowy, który jest zrozumiały dla komputera. W trakcie kompilacji mogą wystąpić błędy składniowe, jednak kompilacja nie zajmuje się usuwaniem błędów logicznych, które mogą pojawić się w działającym programie. Stąd też nie jest to tożsame z procesem debugowania, który koncentruje się na wykrywaniu oraz eliminacji błędów w kodzie już skompilowanym. Standaryzacja odnosi się do procesu ustalania norm i standardów dla określonych praktyk lub produktów, co ma na celu zapewnienie ich jakości i interoperacyjności, ale nie dotyczy bezpośrednio błędów w kodzie. Normalizacja z kolei jest terminem używanym w różnych kontekstach, ale w programowaniu odnosi się często do formatu danych lub struktury, co również nie ma bezpośredniego związku z procesem wykrywania i usuwania błędów. Wybierając niewłaściwe odpowiedzi, można popaść w pułapkę myślenia, które nie uwzględnia różnicy pomiędzy różnymi etapami tworzenia oprogramowania. Każdy z wymienionych procesów ma swoje unikalne funkcje i cel, które są istotne w kontekście inżynierii oprogramowania, ale tylko debugowanie koncentruje się na naprawie błędów w kodzie, co czyni je kluczowym elementem w utrzymaniu jakości produktów programistycznych.

Pytanie 29

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

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

Pytanie 30

Jakie oznaczenie w języku PHP wskazuje na komentarz wieloliniowy?

A. #
B. //
C. /* */
D. <!-- -->
Istnieje wiele błędnych przekonań na temat różnych typów komentarzy w PHP, co może prowadzić do nieprawidłowych wniosków. Opcja // definiuje komentarze jednoliniowe, które są używane do dokumentowania pojedynczych linijek kodu i są ignorowane do końca danej linii. Ten typ komentarzy jest przydatny do krótkich notatek, ale nie nadaje się do bardziej skomplikowanych opisów, które wymagają kilku linii. Z kolei <!-- --> jest składnią HTML i nie jest akceptowany w PHP jako sposób definiowania komentarzy. Używanie tej składni w plikach PHP może prowadzić do nieprzewidywalnych błędów, szczególnie jeśli kod jest interpretowany w kontekście serwera. Ostatnia opcja, #, jest również poprawnym sposobem na definiowanie komentarzy jednoliniowych w PHP, ale nie spełnia wymagań dla komentarzy wieloliniowych, które można zdefiniować wyłącznie przy użyciu /* */. Dobrą praktyką jest stosowanie odpowiednich typów komentarzy w zależności od kontekstu, aby zapewnić przejrzystość i zrozumiałość kodu dla innych programistów. Ważne jest zrozumienie, jakie składnie są dozwolone w danym języku programowania, aby unikać potencjalnych błędów w kodzie oraz nieporozumień w zespole projektowym.

Pytanie 31

Tabela Pacjenci ma pola: imie, nazwisko, wiek, lekarz_id. Aby zestawić raport zawierający wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia, którzy zapisani są do lekarza o id równym 6, można posłużyć się kwerendą SQL

A. SELECT imie, nazwisko WHERE wiek < 18 OR lekarz_id = 6;
B. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6;
C. SELECT imie, nazwisko WHERE wiek < 18 AND lekarz_id = 6;
D. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 OR lekarz_id = 6;
Poprawna kwerenda to: SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6; i ona dokładnie realizuje założenia zadania. Po pierwsze, część SELECT imie, nazwisko określa, jakie kolumny mają znaleźć się w wyniku – tylko imię i nazwisko, bez wieku czy identyfikatora lekarza. To jest dobra praktyka: wybieramy tylko te dane, które są faktycznie potrzebne w raporcie, zamiast używać SELECT *. Po drugie, FROM Pacjenci wskazuje tabelę źródłową. W standardowym SQL klauzula FROM jest obowiązkowa przy pobieraniu danych z tabel, bez niej serwer bazodanowy po prostu nie wie, skąd ma brać rekordy. Moim zdaniem to jest taki fundament, który warto mieć odruchowo w palcach. Najważniejsza jest jednak klauzula WHERE wiek < 18 AND lekarz_id = 6. Warunek wiek < 18 filtruje wyłącznie pacjentów niepełnoletnich, a lekarz_id = 6 ogranicza wynik do tych osób, które przypisane są do konkretnego lekarza o identyfikatorze 6. Zastosowanie operatora logicznego AND oznacza, że oba warunki muszą być spełnione jednocześnie. To dokładnie odpowiada treści zadania: pacjent musi być jednocześnie poniżej 18 lat i zapisany do lekarza nr 6. W praktyce takie kwerendy są podstawą raportowania w systemach medycznych, CRM-ach, systemach sprzedażowych itd. Na przykład podobną konstrukcję można użyć: SELECT * FROM Zamowienia WHERE status = 'nowe' AND kwota > 1000; – logika jest identyczna. Dobrą praktyką jest też czytelne zapisywanie warunków logicznych i unikanie niejednoznacznych kombinacji AND/OR bez nawiasów. W większych projektach standardem jest również używanie aliasów tabel, ale tu jedna tabela w zupełności wystarcza. Warto zapamiętać ten szablon: SELECT [kolumny] FROM [tabela] WHERE [warunek1] AND [warunek2]; bo pojawia się praktycznie wszędzie w pracy z SQL.

Pytanie 32

Przedstawiony kod źródłowy ma na celu zaprezentowanie

$liczba = 1;
while ($liczba != 0)
{
    $liczba = rand(0,100);
    echo $liczba;
}
A. losowych liczb od 0 do 100 do momentu, aż nie wylosowana zostanie liczba 0
B. liczb wprowadzonych z klawiatury tak długo, aż nie zostanie podana wartość 0
C. kolejnych liczb od 1 do 100
D. wylosowanych liczb od 1 do 99
Analizując inne odpowiedzi, można zauważyć kilka nieporozumień dotyczących działania kodu. Kod nie wyświetla kolejnych liczb od 1 do 100, ponieważ nie zawiera mechanizmu inkrementacji liczby w sposób sekwencyjny. Jest to typowy błąd, który wynika z mylnego zrozumienia działania pętli i przypisywania wartości. Zamiast tego pętla generuje losowe liczby, co jest zupełnie innym procesem. Kod nie wczytuje danych z klawiatury, ponieważ nie zawiera żadnych funkcji wejścia/wyjścia, takich jak scanf czy inne odpowiedniki w języku PHP. Proces wczytywania danych z klawiatury wymaga interakcji z użytkownikiem, co w tym przypadku nie występuje. Istnieje również błędne zrozumienie, że kod wyświetla wylosowane liczby od 1 do 99. Funkcja rand(0,100) generuje liczby z zakresu od 0 do 100, a nie od 1 do 99. Zakres generowanych liczb jest kluczowym aspektem, który powinien być dokładnie rozumiany przez programistów, aby unikać niepoprawnych założeń prowadzących do błędnych wyników. Takie nieporozumienia często wynikają z niedostatecznej znajomości specyfikacji funkcji używanych w programowaniu i mogą prowadzić do błędów logicznych w kodzie, co w praktyce może skutkować nieoczekiwanym zachowaniem aplikacji. Ważne jest dokładne zrozumienie dokumentacji funkcji i ich właściwego zastosowania, co pozwala na poprawne projektowanie i implementację algorytmów w różnych sytuacjach problemowych. Zrozumienie różnic w działaniu funkcji i ich efektów jest kluczowe dla skutecznego programowania i unikania błędów związanych z niepoprawnym przetwarzaniem danych.

Pytanie 33

Witryna internetowa zawiera poziome menu w formie listy punktowanej. Aby elementy tej listy mogły być wyświetlane w jednej linii, należy przypisać selektorowi li właściwość

A. outline
B. position
C. text-align
D. display
Ustawienie właściwości 'display' dla selektora 'li' jest kluczowe, aby elementy listy mogły być wyświetlane w jednej linii. Właściwość ta określa, w jaki sposób dany element powinien być renderowany w kontekście modelu box. Aby uzyskać efekt poziomego menu, warto zastosować 'display: inline;' lub 'display: inline-block;'. Użycie 'inline' sprawia, że elementy nie zajmują całej szerokości dostępnej wiersza, a 'inline-block' umożliwia również ustawienie szerokości i wysokości. W kontekście dobrych praktyk projektowania stron internetowych, zastosowanie takiego podejścia pozwala na osiągnięcie większej elastyczności w układzie, ułatwiając jednocześnie stylizację elementów, co jest zgodne z zasadami responsywnego web designu. Warto również pamiętać o użyciu marginesów i paddingów, aby zapewnić odpowiednią przestrzeń między elementami menu, co przyczyni się do lepszej czytelności i estetyki strony.

Pytanie 34

Jak wygląda prawidłowy zapis samozamykającego się znacznika w zgodzie ze standardem języka XHTML, który odpowiada za łamanie linii?

A. <br />
B. <br> </br>
C. </ br>
D. </br/>
Odpowiedź <br /> jest prawidłowym zapisem samozamykającego się znacznika w standardzie XHTML. XHTML, czyli eXtensible HyperText Markup Language, wymaga, aby znaczniki były poprawnie zamknięte. W przypadku znaczników, które nie mają zawartości, jak <br />, stosuje się specjalną składnię. Oznaczenie <br /> wskazuje na przełamanie linii w dokumencie HTML. Ważne jest, aby podać ukośnik przed zakończeniem znacznika, co jest zgodne z zasadami XHTML. Przykładowo, w dokumentach XHTML, prawidłowe użycie <br /> może wyglądać tak: <p>Tekst przed łamaniem linii.<br />Tekst po łamaniu linii.</p>. Przestrzeganie tych zasad zapewnia, że dokumenty będą poprawnie interpretowane przez przeglądarki oraz będą zgodne z standardami W3C, co jest kluczowe dla zachowania wysokiej jakości kodu oraz jego dostępności.

Pytanie 35

W języku PHP zapis // służy do

A. dodawania komentarza jednoliniowego
B. dodawania komentarza wieloliniowego
C. zastosowania operatora dzielenia bez reszty
D. używania tablicy superglobalnej
Zastosowanie tablicy superglobalnej nie ma bezpośredniego związku z używaniem znaku //. Superglobalne tablice w PHP, takie jak $_POST, $_GET czy $_SESSION, służą do przechowywania i wymiany danych pomiędzy stronami, ale nie mają nic wspólnego z komentarzami. Wstawianie komentarza wieloliniowego jest poprawnym sposobem dodawania dłuższych wyjaśnień w kodzie, jednak znakiem // nie uzyskujemy tego efektu, a raczej ograniczamy się do komentarzy jednoliniowych. Z kolei zastosowanie operatora dzielenia bez reszty również nie jest powiązane z komentarzami. Operator / służy do dzielenia wartości, a jego użycie nie wymaga znaków // do oznaczania komentarzy. W środowisku programistycznym często można spotkać mylne przekonania, że znaki komentarza mogą pełnić inne funkcje, co prowadzi do nieporozumień w stosowaniu kodu. Prawidłowe rozumienie komentarzy w PHP jest kluczowe dla tworzenia zrozumiałego i łatwego do utrzymania kodu. Nieprawidłowe przypisanie funkcji komentarzy do innych elementów języka PHP może prowadzić do poważnych błędów w kodzie oraz trudności w jego analizie przez innych programistów.

Pytanie 36

Zestawienie dwóch kolorów znajdujących się naprzeciwko siebie w kole kolorów jest zestawieniem

A. dopełniającym
B. trójkątnym
C. sąsiadującym
D. monochromatycznym
Wybór odpowiedzi trójkątnym odnosi się do koncepcji, w której kolory są rozmieszczone w formie trójkąta na kole barw. Takie połączenie nie tworzy jednak charakterystycznej relacji, jaką posiadają kolory dopełniające. W praktyce, kolory trójkątne służą do tworzenia bardziej złożonych palet, gdzie każdy kolor współdziała z pozostałymi, ale nie generują one tak silnego kontrastu jak dopełniające. Odpowiedź sąsiadującym sugeruje, że barwy są blisko siebie w kole barw, co prowadzi do harmonijnego, ale jednolitego efektu, a nie do wyraźnych kontrastów. Barwy sąsiadujące można stosować do uzyskania delikatniejszych przejść kolorystycznych, co jest przydatne w projektach, które wymagają subtelności. Z kolei monochromatycznym odnosi się do jednego koloru i jego odcieni, co pozwala na stworzenie spójnej, ale mało zróżnicowanej palety kolorystycznej. Użycie monochromatycznych kolorów może być przydatne do zbudowania jednolitego stylu, lecz nie oferuje ono intensywności wizualnej, którą uzyskuje się dzięki kolorom dopełniającym. Generalnie, błędne podejścia do kolorów mogą prowadzić do ograniczenia kreatywności i nieefektywnego wykorzystania kolorystyki w projektach artystycznych czy graficznych. Zrozumienie różnic między tymi połączeniami jest kluczowe dla efektywnego wykorzystania teorii kolorów w praktycznych zastosowaniach.

Pytanie 37

Zaprezentowano poniżej obsługę

if (!isset($_COOKIE[$nazwa]))
  echo "nie ustawiono!";
else
  echo "ustawiono: " . $_COOKIE[$nazwa];
A. zmiennych tekstowych
B. ciasteczek
C. sesji
D. bazy danych
Zmiennych tekstowych nie obsługuje się za pomocą mechanizmów przedstawionych w kodzie. Zmienne tekstowe są najczęściej manipulowane za pomocą funkcji stringowych w językach programowania, takich jak konkatenacja, formatowanie czy parsowanie. Kod pokazuje użycie tablicy $_COOKIE, która jest specyficzna dla ciasteczek, a nie dla zmiennych tekstowych. Bazy danych z kolei wykorzystują zapytania SQL do przechowywania i pobierania danych. W kontekście kodu nie ma mowy o połączeniu z bazą danych ani operacjach CRUD, co wyklucza tę odpowiedź. Sesje w aplikacjach webowych są zazwyczaj obsługiwane za pomocą mechanizmu sesji PHP, gdzie dane są przechowywane na serwerze, a identyfikator sesji jest przesyłany za pomocą ciasteczek lub w URL. Kod nie pokazuje użycia $_SESSION, co jest typowe dla zarządzania sesjami. Częstym błędem jest mylenie ciasteczek z sesjami; ciasteczka są przechowywane na kliencie i mogą przetrwać zamknięcie przeglądarki, podczas gdy sesje są zazwyczaj przechowywane na serwerze i kończą się po zakończeniu sesji przeglądarki lub wylogowaniu użytkownika. Rozumienie różnic między tymi mechanizmami jest kluczowe dla tworzenia efektywnych i bezpiecznych aplikacji webowych.

Pytanie 38

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", należy zastosować funkcję PHP

A. strtoupper("ala ma psa")
B. strtolower("ala ma psa")
C. strstr("ala ma psa")
D. ucfirst("ala ma psa")
Fajnie, że użyłeś funkcji strtoupper w PHP! Dzięki niej przekształcasz cały tekst na wielkie litery, co w tym przypadku zmienia 'ala ma psa' na 'ALA MA PSA'. To naprawdę przydatna funkcja, zwłaszcza w aplikacjach webowych, gdzie ważne jest, żeby tekst wyglądał tak, jak powinien, np. zgodnie z zasadami SEO czy przy prezentacji danych. Przykładowo, w formularzach warto, żeby nazwy użytkowników zawsze były w tym samym formacie. Poza tym jest cała masa innych funkcji w PHP, które mogą przydać się do manipulacji tekstem, a ich znajomość poprawia jakość kodu i jego czytelność.

Pytanie 39

W języku C, aby zdefiniować stałą, należy zastosować

A. static
B. #INCLUDE
C. #CONST
D. const
Wybór niewłaściwego słowa kluczowego do deklaracji stałych w języku C może prowadzić do poważnych nieporozumień. W przypadku użycia 'static', programista może myśleć, że ta deklaracja ma na celu utrzymanie wartości zmiennej pomiędzy wywołaniami funkcji, ale statyczne zmienne w rzeczywistości nie są stałymi. Wartość 'static' oznacza, że zmienna zachowuje swoją wartość pomiędzy wywołaniami funkcji, jednak jej wartość może być zmieniana, co jest sprzeczne z zamiarem stałej. Ponadto, użycie '#CONST' jest błędne, ponieważ nie istnieje takie preprocesorowe polecenie w języku C. W praktyce polecenia preprocesora są używane do wstępnej obróbki kodu przed jego kompilacją, a nie do deklaracji stałych. Ostatnia opcja, '#INCLUDE', służy do włączania plików nagłówkowych i nie ma żadnego związku z deklarowaniem stałych. Często programiści mogą mylić te terminy, co prowadzi do błędnych założeń dotyczących użycia statycznych zmiennych i stałych. Zrozumienie różnic pomiędzy tymi słowami kluczowymi jest kluczowe dla efektywnego programowania w C oraz dla unikania niezamierzonych błędów w kodzie. W praktyce, stosowanie właściwych słów kluczowych zgodnie z ich przeznaczeniem jest fundamentem poprawnego i wydajnego programowania.

Pytanie 40

Baza danych MySQL została uszkodzona. Które z poniższych działań NIE przyczyni się do jej naprawy?

A. Zrealizowanie replikacji bazy danych
B. Wykonanie naprawy przy użyciu polecenia REPAIR
C. Przywrócenie bazy z kopii zapasowej
D. Utworzenie nowej bazy oraz przeniesienie do niej tabeli
Wykonanie replikacji bazy danych, mimo że jest zaawansowaną funkcją MySQL, nie pomoże w naprawie uszkodzonej bazy. Replikacja polega na tworzeniu kopii danych z jednej instancji bazy danych na drugą w celu zapewnienia dostępności i skalowalności. W przypadku uszkodzenia bazy danych kluczowym krokiem jest przywrócenie danych z kopii bezpieczeństwa, co jest standardową praktyką w zarządzaniu bazami danych. Odtworzenie bazy z kopii bezpieczeństwa zapewnia, że wszystkie dane, które mogły zostać utracone lub uszkodzone, są przywracane do stanu sprzed awarii. Ponadto, użycie polecenia REPAIR jest techniką, która może pomóc w naprawie uszkodzonych tabel w MySQL. W przypadku gromadzenia danych w różnych tabelach, przeniesienie ich do nowej bazy może również stanowić skuteczną strategię naprawy, ale replikacja nie ma bezpośredniego wpływu na usunięcie uszkodzeń w oryginalnej bazie, a jedynie może skopiować problematyczne dane.