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: 8 maja 2025 11:00
  • Data zakończenia: 8 maja 2025 11:20

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Aby stworzyć relację typu jeden do wielu, w tabeli reprezentującej stronę "wiele", konieczne jest zdefiniowanie

A. klucza sztucznego odnoszącego się do kluczy podstawowych obu tabel
B. klucza podstawowego odnoszącego się do klucza podstawowego tabeli po stronie "jeden"
C. klucza obcego wskazującego na klucz podstawowy tabeli reprezentującej stronę "jeden"
D. klucza obcego odnoszącego się do klucza obcego tabeli reprezentującej stronę "jeden"
Pierwsza niepoprawna odpowiedź sugeruje, że klucz obcy powinien wskazywać na klucz obcy tabeli po stronie 'jeden'. Taki związek jest błędny z perspektywy relacyjnych baz danych, ponieważ klucz obcy powinien zawsze odnosić się do klucza podstawowego, a nie innego klucza obcego. Klucze obce służą do zapewnienia integralności referencyjnej, co oznacza, że każdy rekord w tabeli po stronie 'wiele' musi mieć odpowiadający mu rekord w tabeli po stronie 'jeden'. Kolejna niepoprawna odpowiedź wskazuje na konieczność użycia klucza sztucznego, który nie jest wymagany do stworzenia relacji jeden do wielu. Klucze sztuczne są wykorzystywane głównie w przypadkach, gdy brak jest naturalnego klucza podstawowego, a ich użycie nie jest konieczne w standardowych relacjach. Ostatnia błędna odpowiedź sugeruje, że klucz podstawowy w tabeli po stronie 'wiele' powinien wskazywać na klucz podstawowy tabeli po stronie 'jeden'. Jest to również niepoprawne, ponieważ klucz podstawowy powinien unikalnie identyfikować każdy rekord w swojej tabeli, a nie odnosić się do innego klucza podstawowego. W relacji jeden do wielu klucz obcy w tabeli po stronie 'wiele' zawsze odnosi się do klucza podstawowego tabeli po stronie 'jeden', co jest kluczowe dla prawidłowego modelowania danych.

Pytanie 2

Baza danych księgarni ma tabelę ksiazki z polami: id, idAutor, tytul, ileSprzedanych oraz tabelę autorzy z polami: id, imie, nazwisko. Jak utworzyć raport dotyczący sprzedanych książek, który zawiera tytuły oraz nazwiska autorów?

A. utworzyć dwie oddzielne kwerendy: pierwszą, która wyszuka tytuły książek, a drugą, która pobierze nazwiska autorów
B. stworzyć kwerendę, która wyszukuje tytuły książek
C. Zdefiniować relację 1..n między tabelami ksiazki i autorzy, a następnie stworzyć kwerendę łączącą obie tabele
D. Ustalić relację 1..1 pomiędzy tabelami ksiazki i autorzy, a następnie stworzyć kwerendę łączącą obie tabele
Zdefiniowanie relacji 1..n między tabelami 'ksiazki' oraz 'autorzy' jest kluczowe dla prawidłowego modelowania danych w bazach danych. Relacja 1..n oznacza, że jeden autor może mieć wiele książek, co jest w pełni zgodne z rzeczywistością w kontekście księgarni. Aby stworzyć raport sprzedanych książek z tytułami i nazwiskami autorów, konieczne jest, aby obie tabele były połączone w sposób umożliwiający łatwy dostęp do danych. Po utworzeniu relacji można skorzystać z kwerendy SQL, która wykorzystuje złączenie (JOIN) do pobrania informacji z obu tabel. Przykładowe zapytanie może wyglądać następująco: SELECT ksiazki.tytul, autorzy.nazwisko FROM ksiazki JOIN autorzy ON ksiazki.idAutor = autorzy.id. Tego typu podejście jest zgodne z dobrymi praktykami w projektowaniu baz danych, umożliwiając łatwe skalowanie oraz modyfikację w przyszłości.

Pytanie 3

Narzędziem do zarządzania bazą danych wbudowanym w pakiet XAMPP jest

A. phpMyAdmin
B. MySQL Workbench
C. SQLite
D. pgAdmin
phpMyAdmin to popularne narzędzie webowe, które jest częścią pakietu XAMPP, służące do zarządzania bazami danych MySQL. Umożliwia użytkownikom interakcję z bazą danych poprzez intuicyjny interfejs graficzny, co znacznie upraszcza wykonanie operacji takich jak tworzenie, edytowanie i usuwanie baz danych oraz tabel. Dzięki phpMyAdmin można z łatwością zarządzać uprawnieniami użytkowników, importować i eksportować dane, a także wykonywać zapytania SQL bez konieczności korzystania z linii poleceń. To narzędzie jest szczególnie przydatne dla osób, które nie mają doświadczenia w pracy z bazami danych, a jego dostępność w XAMPP czyni go idealnym rozwiązaniem dla programistów webowych i administratorów systemów. W praktyce, phpMyAdmin wspiera wiele standardów, takich jak UTF-8, co zapewnia poprawne przetwarzanie danych w różnych językach. Warto zaznaczyć, że korzystanie z phpMyAdmin jest zgodne z najlepszymi praktykami w zakresie zarządzania bazami danych, ponieważ umożliwia skuteczne monitorowanie i optymalizację wydajności bazy danych.

Pytanie 4

W SQL, po wykonaniu przedstawionych poleceń GRANT, prawo do edytowania struktury tabeli oraz jej usunięcia zostanie przyznane

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@'localhost';
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';

A. Tomaszowi i Adamowi
B. Adamowi i Annie
C. Tomaszowi i Annie
D. tylko Annie
Odpowiedź Adamowi i Annie jest poprawna ponieważ polecenie GRANT w SQL służy do przydzielania określonych uprawnień użytkownikom. W zapytaniu GRANT ALL ON firmy TO 'adam'@'localhost' Adam otrzymuje wszystkie możliwe uprawnienia do tabeli co obejmuje również możliwość zmiany struktury tabeli poprzez ALTER oraz jej usuwania poprzez DROP. Z kolei Anna dzięki poleceniu GRANT ALTER CREATE DROP również uzyskuje te same dwa kluczowe uprawnienia dotyczące zmiany struktury i usuwania tabeli. Takie przydzielanie uprawnień jest zgodne z branżowymi standardami zapewniającymi elastyczność i bezpieczeństwo w zarządzaniu bazami danych. Praktyczne zastosowanie tych uprawnień umożliwia administratorom bazy danych delegowanie odpowiedzialności za różne aspekty zarządzania bazą innym użytkownikom co jest szczególnie przydatne w dużych zespołach. Ważne jest również aby zawsze monitorować i regularnie audytować przydzielone uprawnienia aby zapewnić że użytkownicy posiadają tylko te uprawnienia które są niezbędne do wykonywania ich zadań co jest zgodne z zasadą najmniejszych uprawnień w bezpieczeństwie IT.

Pytanie 5

Obraz przedstawia formatowanie CSS paragrafu. Aby otrzymać czerwony kolor poza obramowaniem, tak jak przedstawiono na obrazie, należy zdefiniować własność

Oto przykład paragrafu który poza ramką ma kolor grubości 10 px

A. padding
B. background
C. outline
D. border
Niestety, to nie jest poprawna odpowiedź. Możliwe, że pomyliłeś niektóre właściwości CSS. 'Padding' zwiększa wewnętrzny odstęp w elemencie, ale nie zmienia koloru obramowania. Z kolei 'background' odpowiada za tło elementu. Pamiętaj, że 'border' tworzy obramowanie i to wpływa na rozmiar elementu. Natomiast 'outline' to kontur, który tylko otacza element bez wpływania na jego układ. Warto przemyśleć tę różnicę, bo to kluczowe, żeby dobrze ogarniać CSS. Pracuj nad tym i spróbuj jeszcze raz.

Pytanie 6

W instrukcji CREATE TABLE w SQL atrybut wskazujący, która kolumna w tabeli pełni rolę klucza podstawowego, to

A. PRIMARY KEY
B. MAIN KEY
C. UNIQUE
D. IDENTITY FIELD
Odpowiedź 'PRIMARY KEY' jest poprawna, ponieważ w poleceniu CREATE TABLE w SQL, klucz podstawowy jest definiowany właśnie za pomocą tego atrybutu. Klucz podstawowy to unikalny identyfikator dla każdej wiersza w tabeli, co oznacza, że wartość w tej kolumnie musi być unikalna i nie może być pusta. Definiowanie klucza podstawowego jest kluczowe dla zapewnienia integralności danych oraz efektywności operacji na bazie danych, ponieważ umożliwia szybkie wyszukiwanie i sortowanie. Na przykład, jeśli tworzysz tabelę 'Użytkownicy', możesz zdefiniować kolumnę 'UserID' jako klucz podstawowy, co zagwarantuje, że każdy użytkownik ma unikalny identyfikator. Warto również pamiętać, że w praktyce, jeśli nie określisz klucza podstawowego, baza danych nie będzie mogła zapewnić unikalności w tabeli, co może prowadzić do problemów z danymi. Zgodnie z dobrymi praktykami, klucz podstawowy powinien być stabilny oraz niezmienny, co oznacza, że nie powinno się go zmieniać po jego utworzeniu.

Pytanie 7

Jakiego elementu w języku HTML brakuje, aby walidator HTML zgłosił ostrzeżenie lub błąd?

A.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. <meta name="author" content=". . . ."></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>C. przynajmniej jednego <h1></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. <link></span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Odpowiedzi związane z elementami <link>, przynajmniej jednym <h1> oraz <meta name="author" content="..."> mogą wydawać się istotne w kontekście tworzenia strony internetowej, jednak nie są one obowiązkowe dla poprawnej walidacji dokumentu HTML. Element <link> jest używany do łączenia dokumentu HTML z zewnętrznymi zasobami, takimi jak arkusze stylów CSS, ale jego brak nie powoduje błędów walidacyjnych. W przypadku <h1>, jest to istotny element struktury nagłówków w HTML, ale nie ma wymogu, aby na stronie znajdował się przynajmniej jeden taki element. Choć warto stosować nagłówki do hierarchizacji treści, ich brak nie skutkuje ostrzeżeniem. Z kolei element <meta name="author"> dostarcza informacji o autorze strony, ale również nie jest obowiązkowy dla walidacji HTML. Nieprawidłowe podejście do wnioskowania o znaczeniu tych elementów może prowadzić do błędnych założeń o ich krytycznej roli w strukturze HTML. Ważne jest, aby zrozumieć, że standardy HTML definiują zasady walidacji, a element <title> jest jednym z nielicznych, które są uznawane za obligatoryjne w każdym dokumencie. Zrozumienie tych zasad pozwala na lepsze projektowanie stron, które są zgodne z najlepszymi praktykami oraz wymaganiami SEO. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 8</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="po-wykonaniu-kodu-php-zostanie-wyswietlona-aktualn-6be0b4db" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W wyniku działania poniższego kodu PHP zostanie pokazana bieżąca data, która będzie zawierać tylko</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>A. dzień</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. miesiąc i rok</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>C. rok</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. dzień i miesiąc</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> W przypadku odpowiedzi wskazujących na inne aspekty daty, takie jak \"dzień\" czy \"miesiąc i rok\", warto zrozumieć, że te odpowiedzi są niepoprawne ze względu na sposób działania funkcji `date()` w PHP. Funkcja ta, w kontekście zapytania, jest zdefiniowana tak, że zwraca jedynie czterocyfrowy rok, a nie konkretne dni czy miesiące. Użytkownicy mogą czasami mylić ten aspekt, sądząc, że funkcja `date()` może zwracać więcej informacji jednocześnie, co jest nieprawdziwe w przypadku podanego formatu. Na przykład, odpowiedzi, które wskazują na \"dzień\" i \"miesiąc\", mogą wynikać z założenia, że `date()` automatycznie wprowadza wszystkie elementy daty, co jest błędne. Dobrą praktyką jest zrozumienie, jakie formaty można używać z funkcją `date()`, aby prawidłowo wykorzystać jej możliwości. Każdy z formatów, takich jak \"d\" dla dnia czy \"m\" dla miesiąca, musi być wywołany oddzielnie, co prowadzi do błędnych wniosków, jeśli nie jest to uwzględnione w programowaniu. Zrozumienie tego mechanizmu jest kluczowe dla efektywnego korzystania z PHP w kontekście pracy z datami. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 9</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="znacznik-meta-jezyka-html-nalezy-umiescic-f167c28b" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Gdzie należy umieścić znacznik meta w języku HTML?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. między znacznikami body</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>B. w sekcji nagłówkowej strony internetowej</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. między znacznikami paragrafu</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. w stopce strony internetowej</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Znacznik meta w języku HTML jest kluczowym elementem, który powinien być umieszczony w części nagłówkowej (head) dokumentu. Znaczniki meta służą do definiowania różnych informacji o stronie, takich jak zestaw znaków, opis, słowa kluczowe, autor oraz inne istotne dane, które nie są bezpośrednio wyświetlane na stronie. Przykładowo, znacznik meta z atrybutem 'charset' informuje przeglądarki, w jaki sposób interpretować znaki na stronie, co jest szczególnie ważne dla prawidłowego wyświetlania treści w różnych językach. Standardy HTML5 zalecają umieszczanie znaczników meta w nagłówku, aby umożliwić optymalizację SEO, co zwiększa widoczność strony w wynikach wyszukiwania. Dobrą praktyką jest również dodanie opisu strony przy pomocy znacznika meta 'description', co pozwala wyszukiwarkom na lepsze zrozumienie tematyki strony oraz zwiększa klikalność w wynikach wyszukiwania. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 10</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="polecenie-serwera-mysql-postaci-revoke-delete-u-9fa61a43" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Wykonanie polecenia w MySQL w postaci ```REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'``` spowoduje, że użytkownik tKowal straci</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. przydzielone uprawnienia do wszelkiej zmiany struktury tabeli pracownicy</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>B. odebrane uprawnienia usuwania i modyfikowania danych w tabeli pracownicy</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. przydzielone uprawnienia do usuwania i aktualizowania danych w tabeli pracownicy</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. odebrane uprawnienia usuwania i dodawania rekordów w tabeli pracownicy</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Polecenie REVOKE w systemie zarządzania bazą danych MySQL jest używane do odebrania przydzielonych wcześniej uprawnień użytkownikowi lub grupie użytkowników. W przypadku instrukcji REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost', użytkownik 'tKowal' traci prawa do usuwania (DELETE) oraz aktualizowania (UPDATE) danych w tabeli 'pracownicy'. Przykładowo, jeśli wcześniej użytkownik 'tKowal' miał możliwość usuwania rekordów pracowników i modyfikacji ich danych, po wykonaniu tej instrukcji te uprawnienia zostaną odebrane. Ważne jest, aby zrozumieć, że REVOKE nie wpływa na inne uprawnienia, które użytkownik mógł posiadać, a jego działanie jest ograniczone do wymienionych operacji w kontekście konkretnej tabeli. W MySQL istnieje także możliwość przydzielania uprawnień za pomocą komendy GRANT, co stanowi odwrotność do REVOKE. Dokumentacja MySQL szczegółowo opisuje te mechanizmy, a ich właściwe użycie jest istotne dla bezpieczeństwa i administracji bazami danych. Aby lepiej zrozumieć praktyczne zastosowanie tych komend, można zapoznać się z przykładami na oficjalnej stronie MySQL, które ilustrują, jak zarządzać uprawnieniami użytkowników w różnych scenariuszach. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 11</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="wynikiem-dziaania-petli-bedzie-wypisanie-liczb-5eec1771" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Wynikiem działania pętli będzie wypisanie liczb <table style="border: 2px solid black; border-collapse: collapse; margin-bottom: 20px;"> <tr> <td style="border: 1px solid black; padding: 10px; font-family: monospace;"> for ($i = 0; $i <= 20; $i += 4)<br> echo $i . ', '; </td> </tr> </table></p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. 0, 4, 8, 12, 16,</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>D. 0, 4, 8, 12, 16, 20,</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Twoja odpowiedź jest prawidłowa. Pętla for w języku PHP jest strukturą kontrolną, która pozwala na wielokrotne wykonanie określonej sekwencji instrukcji. W tym konkretnym przypadku, pętla zaczyna od wartości 0 i zwiększa wartość $i o 4 przy każdej iteracji, aż osiągnie lub przekroczy wartość 20. W wyniku tego, wartości, które otrzymujemy i zostają wypisane, to 0, 4, 8, 12, 16, 20. Pętle są niezwykle użyteczne i wszechstronne w programowaniu, pozwalając na automatyzację i usprawnienie wielu zadań. Pętla for, którą tu widzimy, jest przykładem zastosowania tej struktury do generowania sekwencji liczb, co ma wiele zastosowań, na przykład w tworzeniu tablic, sterowaniu kolejnością wykonywania operacji lub generowaniu dynamicznych treści na stronach internetowych. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 12</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="wskaz-stwierdzenie-ktore-nie-jest-prawdziwe-dla-n-1baf0d76" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Wskaż zdanie, które jest fałszywe w odniesieniu do poniższej definicji funkcji w języku C++?</p> <figure class="figure mt-3"> <img src="/images/6780.png" class="figure-img img-fluid rounded" alt="Ilustracja do pytania" itemprop="image"> </figure> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. Funkcja nie zwraca żadnej wartości</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. Funkcja ma dwa argumenty</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>C. Funkcja zwraca wartość</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>D. Funkcja korzysta z parametrów przez referencję</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Jednym z typowych nieporozumień jest mylne interpretowanie funkcji deklarowanych z użyciem 'void'. Wbrew niektórym założeniom, taka funkcja nie zwraca żadnych wartości. Jej celem jest wykonanie pewnych operacji na danych wejściowych, często poprzez modyfikację ich wartości, jak w tym przypadku, gdzie funkcja dokonuje zamiany. Pojęcie zwracania wartości należy do funkcji o określonym typie zwracanym, takich jak 'int', 'float', itp. Zrozumienie różnicy między przekazywaniem przez wartość a przekazywaniem przez referencję jest kluczowe. W sytuacji, gdy parametry są przekazywane przez referencję, jak w omawianym przykładzie, funkcja ma bezpośredni dostęp do zmiennych zewnętrznych, umożliwiając ich modyfikację bez zwracania żadnej wartości. To podejście jest często stosowane w przypadku operacji na dużych strukturach danych, gdzie kopiowanie może być kosztowne. Niepoprawne założenie, że funkcja nie posiada parametrów lub że nie operuje na nich przez referencję, wynika z braku zrozumienia odnośnie technik efektywnego zarządzania pamięcią i zasobami w C++. Programowanie z użyciem referencji jest bardziej wydajne i pozwala na tworzenie kodu, który jest zarówno szybki, jak i czytelny. Ważne jest, aby nie mylić pojęcia parametrów funkcji z wartością zwrotną, ponieważ prowadzi to do błędnych założeń i niepoprawnego działania kodu w praktyce. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 13</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-jezyku-html-aby-scalic-w-poziomie-dwie-sasiedni-d1f5138c" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W HTML-u, aby połączyć w poziomie dwie sąsiednie komórki w danym wierszu tabeli, należy wykorzystać atrybut</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>A. colspan</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. cellpadding</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. rowspan</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. cellspacing</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Atrybut colspan w języku HTML jest kluczowym narzędziem do scalania komórek w tabeli w poziomie. Umożliwia on połączenie dwóch lub więcej sąsiednich komórek w jednym wierszu, co pozwala na bardziej elastyczne i estetyczne układanie danych. Przykładowo, jeśli mamy tabelę z informacjami o produktach, a jeden z produktów ma długą nazwę, możemy użyć atrybutu colspan, aby ta nazwa zajmowała miejsce w dwóch lub więcej komórkach, co poprawia czytelność tabeli. Dobre praktyki w projektowaniu tabel wskazują, że należy unikać nadmiarowych komórek i skomplikowanych układów, gdyż obniża to przejrzystość danych. Zamiast tego, właściwe użycie atrybutów takich jak colspan pozwala na lepsze zorganizowanie informacji. Warto również pamiętać, że poprawne stosowanie atrybutu colspan powinno być zgodne z ogólnymi zasadami projektowania responsywnego, co oznacza, że tabela powinna dobrze się prezentować na różnych urządzeniach. Dodatkowo, atrybut colspan ma swoje zastosowanie także w kontekście dostępności, gdyż odpowiednie użycie tej funkcji pozwala na lepszą nawigację i zrozumienie struktury tabeli przez osoby korzystające z technologii asystujących. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 14</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="baza-danych-zawiera-tabele-artykuy-z-polami-nazw-641d5f00" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Baza danych zawiera tabelę artykuły z kolumnami: nazwa, typ, producent, cena. Aby wypisać wszystkie nazwy artykułów jedynie typu pralka, których cena mieści się w zakresie od 1000 PLN do 1500 PLN, należy użyć zapytania</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. SELECT nazwa FROM artykuly WHERE typ="pralka" OR cena BETWEEN 1000 OR 1500</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. SELECT nazwa FROM artykuly WHERE typ="pralka" OR cena BETWEEN 1000 AND 1500</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. SELECT nazwa FROM artykuly WHERE typ="pralka" AND cena BETWEEN 1000 AND 1500</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. SELECT nazwa FROM artykuly WHERE typ="pralka" AND cena FROM 1000 TO 1500</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Ta odpowiedź jest prawidłowa, ponieważ wykorzystuje polecenie SQL w odpowiedni sposób, aby wybrać nazwy artykułów, które spełniają określone kryteria. Słowo kluczowe 'BETWEEN' jest używane do określenia wartości w przedziale, co w tym przypadku oznacza, że cena artykułów musi mieścić się między 1000 a 1500 PLN. W połączeniu z warunkiem 'AND' zapewnia, że tylko te artykuły, które są typu 'pralka' i mają cenę w podanym przedziale, zostaną wyświetlone. W praktyce takie zapytanie jest niezwykle użyteczne w kontekście e-commerce, gdzie często przeprowadza się filtrowanie produktów według określonych parametrów. Dobrą praktyką w programowaniu SQL jest również używanie podwójnych cudzysłowów dla wartości tekstowych, co jest zgodne z niektórymi standardami SQL, chociaż w wielu systemach baz danych akceptowane są również pojedyncze cudzysłowy. Przykłady zastosowania tego zapytania można znaleźć w systemach zarządzania zapasami, gdzie potrzebne jest szybkie generowanie list produktów spełniających specyficzne wymagania klientów. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 15</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-folderze-www-znajduja-sie-podfoldery-html-i-styl-b0904228" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W katalogu www znajdują się podkatalogi html oraz styles, w których umieszczone są pliki o rozszerzeniu html oraz pliki z rozszerzeniem css. Aby dołączyć styl.css do pliku HTML, należy zastosować</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. <link rel="Stylesheet" type="text/css" href="styl.css" /></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>B. <link rel="Stylesheet" type="text/css" href="../style/styl.css" /></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. <link rel=" Stylesheet" type="text/css" href="www/style/styl. css" /></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>D. <link rel="Stylesheet" type="text/css" href="/style/styl.css" /></span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Przy analizie pozostałych odpowiedzi można dostrzec pewne powszechne błędy w rozumieniu ścieżek do zasobów w dokumentach HTML. W pierwszej odpowiedzi, użycie ścieżki 'www/style/styl.css' sugeruje, że autor zakłada, że jest to pełna ścieżka dostępu, co jest mylące, ponieważ taka ścieżka nie jest względna w kontekście pliku HTML znajdującego się w folderze 'html'. Ponadto, użycie dużych liter w atrybucie 'rel' (np. 'Stylesheet') jest niepoprawne, ponieważ HTML jest językiem case-insensitive, lecz konwencjonalnie zaleca się używanie małych liter. Druga odpowiedź, wskazująca na '/style/styl.css', implikuje, że 'style' jest umiejscowione w katalogu głównym serwera, co również jest błędne w kontekście podanej struktury folderów. Takie podejście jest typowym błędem przy zrozumieniu relatywnych i bezwzględnych ścieżek URL. Ostatnia odpowiedź, 'styl.css', zakłada, że plik CSS znajduje się w tym samym folderze co plik HTML, co nie odpowiada rzeczywistości w przedstawionym układzie folderów. Wszyscy, którzy pracują nad projektami webowymi, muszą zrozumieć, jak ważne jest precyzyjne określenie lokalizacji zasobów, ponieważ błędy te mogą prowadzić do ładowania nieprawidłowych plików, co w efekcie negatywnie wpływa na wygląd i funkcjonalność strony. Wiedza na temat struktury folderów oraz umiejętność nawigacji po nich jest kluczowym elementem w pracy programisty. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 16</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="co-spowoduje-fragment-skryptu-w-jezyku-javascript-28b449fe" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Jakie skutki wywoła poniższy fragment kodu w języku JavaScript? ```n = "Napis1"; s = n.length;```</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>A. Przypisze zmiennej s wartość odpowiadającą długości tekstu w zmiennej n</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>B. Przypisze zmiennej s część napisu ze zmiennej n o długości określonej przez zmienną length</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. Przypisze wartość zmiennej n do zmiennej s</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. Wyświetli liczbę znaków napisu z zmiennej n</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Odpowiedzi 1, 2 oraz 4 są niepoprawne z różnych powodów, co wskazuje na nieporozumienia w zakresie działania właściwości length w JavaScript. W przypadku pierwszej odpowiedzi, twierdzenie, że zmienna n zostanie przypisana do zmiennej s, jest błędne. Wartości zmiennych są przypisywane, a nie same zmienne. Odpowiedź ta ignoruje fakt, że w kodzie następuje użycie operatora przypisania, co skutkuje przekazaniem wartości długości napisu. W kontekście drugiej odpowiedzi, należy podkreślić, że chociaż skrypt nie wyświetla bezpośrednio długości napisu, to długość jest przypisana do zmiennej s, co jest kluczowe dla dalszego użycia tej wartości. Ostatnia odpowiedź, mówiąca o przypisaniu fragmentu napisu o określonej długości, jest również myląca, ponieważ length dotyczy całkowitej liczby znaków w napisie, a nie jego fragmentu. Programiści często mylą funkcjonalności związane z długością łańcuchów znakowych z metodami, które pozwalają na wyodrębnienie części tekstu, takimi jak substring lub slice. Zrozumienie różnicy między tymi operacjami jest istotne dla efektywnego programowania i pracy z danymi tekstowymi. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 17</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-jezyku-php-do-nawiazania-poaczenia-z-serwerem-b-aa4e2002" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Aby ustanowić połączenie z serwerem bazy danych w języku PHP, należy użyć funkcji</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. mysqli_autocommit()</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. mysqli_fetch_row()</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. mysqli_get_connection_stats()</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>D. mysqli_connect()</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Funkcja mysqli_connect() to taka podstawa w PHP, która pomaga połączyć się z bazą danych MySQL. Musisz jej użyć z czterema argumentami: nazwą hosta, użytkownika, hasłem i nazwą bazy danych. Dzięki mysqli_connect() Twoja aplikacja będzie działać sprawniej i bezpieczniej, co jest mega ważne. Na przykład, żeby połączyć się z bazą, możesz użyć takiego kodu: $conn = mysqli_connect('localhost', 'username', 'password', 'database_name');. Jak już masz połączenie, to później możesz robić różne zapytania SQL i manipulować danymi. To też jest zgodne z zasadą separacji, bo oddziela logikę od zarządzania danymi. No i pamiętaj, że warto zadbać o obsługę błędów przy łączeniu, najlepiej sprawdzić to przy pomocy prostego warunku: if (!$conn) { die('Connection failed: ' . mysqli_connect_error()); } Moim zdaniem, to bardzo przydatne podejście. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 18</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-jezyku-sql-w-wyniku-wykonania-zapytania-alter-ta-6a5256af" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W SQL po wykonaniu zapytania ALTER TABLE osoba DROP COLUMN grupa; co się stanie?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. nazwa tabeli zmieni się na grupa</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. nazwa kolumny zmieni się na grupa</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. kolumna grupa zostanie dodana</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>D. kolumna grupa zostanie usunięta</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> 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. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 19</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktora-wartosc-tekstowa-nie-pasuje-do-podanego-w-r-1a7e9a2b" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Która z poniższych wartości tekstowych nie jest zgodna z przedstawionym w ramce wzorcem wyrażenia regularnego?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. Kowalski</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. Kasprowicza</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. Jelenia Góra</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. Nowakowska-Kowalska</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> 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'. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 20</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="na-przedstawionej-tabeli-samochody-wykonano-zapyta-c21a6932" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Na przedstawionej tabeli samochodów wykonano zapytanie SQL: <br><div style="border: 2px solid black; display: inline-block; padding: 10px; font-family: monospace; font-size: 16px;"> <span style="color: blue;">SELECT</span> model <span style="color: blue;">FROM</span> samochody<br> <span style="color: blue;">WHERE</span> rocznik=<span style="color: orange;">2016</span>; </div><br> Jakie wartości zostaną zwrócone w wyniku tego zapytania? <table style="border-collapse: collapse; font-family: sans-serif; margin-bottom: 20px;"> <tr style="background-color: #e0e0e0;"> <th style="border: 1px solid gray; padding: 6px;">id</th> <th style="border: 1px solid gray; padding: 6px;">marka</th> <th style="border: 1px solid gray; padding: 6px;">model</th> <th style="border: 1px solid gray; padding: 6px;">rocznik</th> <th style="border: 1px solid gray; padding: 6px;">kolor</th> <th style="border: 1px solid gray; padding: 6px;">stan</th> </tr> <tr style="background-color: white;"> <td style="border: 1px solid gray; padding: 6px;">1</td> <td style="border: 1px solid gray; padding: 6px;">Fiat</td> <td style="border: 1px solid gray; padding: 6px;">Punto</td> <td style="border: 1px solid gray; padding: 6px;">2016</td> <td style="border: 1px solid gray; padding: 6px;">czerwony</td> <td style="border: 1px solid gray; padding: 6px;">bardzo dobry</td> </tr> <tr style="background-color: #f2f2f2;"> <td style="border: 1px solid gray; padding: 6px;">2</td> <td style="border: 1px solid gray; padding: 6px;">Fiat</td> <td style="border: 1px solid gray; padding: 6px;">Punto</td> <td style="border: 1px solid gray; padding: 6px;">2002</td> <td style="border: 1px solid gray; padding: 6px;">czerwony</td> <td style="border: 1px solid gray; padding: 6px;">dobry</td> </tr> <tr style="background-color: white;"> <td style="border: 1px solid gray; padding: 6px;">3</td> <td style="border: 1px solid gray; padding: 6px;">Fiat</td> <td style="border: 1px solid gray; padding: 6px;">Punto</td> <td style="border: 1px solid gray; padding: 6px;">2007</td> <td style="border: 1px solid gray; padding: 6px;">niebieski</td> <td style="border: 1px solid gray; padding: 6px;">bardzo dobry</td> </tr> <tr style="background-color: #f2f2f2;"> <td style="border: 1px solid gray; padding: 6px;">4</td> <td style="border: 1px solid gray; padding: 6px;">Opel</td> <td style="border: 1px solid gray; padding: 6px;">Corsa</td> <td style="border: 1px solid gray; padding: 6px;">2016</td> <td style="border: 1px solid gray; padding: 6px;">grafitowy</td> <td style="border: 1px solid gray; padding: 6px;">bardzo dobry</td> </tr> <tr style="background-color: white;"> <td style="border: 1px solid gray; padding: 6px;">5</td> <td style="border: 1px solid gray; padding: 6px;">Opel</td> <td style="border: 1px solid gray; padding: 6px;">Astra</td> <td style="border: 1px solid gray; padding: 6px;">2003</td> <td style="border: 1px solid gray; padding: 6px;">niebieski</td> <td style="border: 1px solid gray; padding: 6px;">porysowany lakier</td> </tr> <tr style="background-color: #f2f2f2;"> <td style="border: 1px solid gray; padding: 6px;">6</td> <td style="border: 1px solid gray; padding: 6px;">Toyota</td> <td style="border: 1px solid gray; padding: 6px;">Corolla</td> <td style="border: 1px solid gray; padding: 6px;">2016</td> <td style="border: 1px solid gray; padding: 6px;">czerwony</td> <td style="border: 1px solid gray; padding: 6px;">bardzo dobry</td> </tr> <tr style="background-color: white;"> <td style="border: 1px solid gray; padding: 6px;">7</td> <td style="border: 1px solid gray; padding: 6px;">Toyota</td> <td style="border: 1px solid gray; padding: 6px;">Corolla</td> <td style="border: 1px solid gray; padding: 6px;">2014</td> <td style="border: 1px solid gray; padding: 6px;">szary</td> <td style="border: 1px solid gray; padding: 6px;">dobry</td> </tr> <tr style="background-color: #f2f2f2;"> <td style="border: 1px solid gray; padding: 6px;">8</td> <td style="border: 1px solid gray; padding: 6px;">Toyota</td> <td style="border: 1px solid gray; padding: 6px;">Yaris</td> <td style="border: 1px solid gray; padding: 6px;">2004</td> <td style="border: 1px solid gray; padding: 6px;">granatowy</td> <td style="border: 1px solid gray; padding: 6px;">dobry</td> </tr> </table></p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. Czerwony, grafitowy</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. Fiat, Opel, Toyota</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. Punto, Corsa, Corolla</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. Punto, Corsa, Astra, Corolla, Yaris</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Zapytanie SQL SELECT model FROM samochody WHERE rocznik=2016; jest skonstruowane w sposób, który filtruje wyniki do wierszy, gdzie kolumna rocznik ma wartość 2016. Następnie zostaje wyświetlona tylko kolumna model z tych wierszy. W przedstawionej tabeli samochodów wiersze o roczniku 2016 mają modele Punto Corsa i Corolla. Dlatego odpowiedź zawiera te konkretne modele. To zapytanie ilustruje podstawową funkcję filtracji danych w SQL co jest kluczowe w zarządzaniu bazami danych. Użycie WHERE pozwala na selektywne pobieranie danych co jest niezbędne w analizie danych. W praktyce takie zapytania mogą być stosowane w systemach zarządzania zasobami np. w branży motoryzacyjnej do śledzenia modeli pojazdów według rocznika. Dobre praktyki obejmują używanie indeksów na kolumnach wykorzystywanych w klauzuli WHERE aby zoptymalizować wydajność zapytań. Indeksy pomagają w szybszym wyszukiwaniu i filtracji danych co jest szczególnie ważne w dużych bazach danych. Konsystencja oraz dokładność zapytań SQL są kluczowe dla efektywnego funkcjonowania systemów opartych na bazach danych. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 21</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktore-wywoanie-funkcji-php-round-zwroci-wartosc-1fab49fe" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Które z wywołań funkcji PHP round() da wynik równy 1?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. round(0.29)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>B. round(0.60)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. round(-4.60)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>D. round(-1.40)</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Wybór round(-4.60) prowadziłby do błędnego wyniku, ponieważ ta funkcja zaokrągliłaby wartość do -5, a nie do 1. Podobnie, w przypadku round(0.29), wynik to 0, ponieważ liczba ta jest bliżej 0 niż do 1. Z kolei round(-1.40 również nie spełnia wymogów, gdyż ta liczba zostanie zaokrąglona do -1, co znów nie jest zadowalające. Typowym błędem myślowym jest mylenie wartości ujemnych lub zbyt małych z ich zaokrąglonymi wartościami, co prowadzi do nieprawidłowych wniosków. Użytkownicy często nie zdają sobie sprawy, że wartości bliskie 0.5 mają tendencję do zaokrąglania w górę, natomiast wartości mniejsze od zera są zaokrąglane w dół. Właściwe zrozumienie mechanizmu działania funkcji round() w kontekście różnych zakresów liczb jest kluczowe dla precyzyjnych obliczeń. Dobrą praktyką jest również testowanie wyników zaokrągleń w różnych scenariuszach, co pozwala na lepsze zrozumienie działania funkcji oraz uniknięcie błędów w przyszłych projektach programistycznych. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 22</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="aby-wstawic-dane-do-bazy-za-pomoca-polecenia-php-w-86b0772a" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Jakie parametry trzeba przekazać do polecenia PHP, aby wprowadzić dane do bazy? <table style="border: 2px solid black; border-collapse: collapse;"><tr><td style="border: 1px solid black; padding: 10px; font-family: monospace;">mysqli_query($zm1, $zm2);</td></tr></table></p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. NULL w $zm1, aby baza mogła zapisać tam kod błędu oraz zapytanie SELECT w $zm2</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. identyfikator połączenia z bazą danych w $zm1 oraz zapytanie SELECT w $zm2</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>C. id wiersza w $zm1 oraz zapytanie INSERT INTO w $zm2</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>D. identyfikator połączenia z bazą danych w $zm1 oraz zapytanie INSERT INTO w $zm2</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Problem ze zrozumieniem jak należy przekazywać parametry do funkcji mysqli_query może wynikać z niezrozumienia struktury połączenia z bazą danych i operacji jakie można na niej wykonywać. Pierwszy błędny pomysł zakłada użycie zapytania SELECT które służy do pobierania danych a nie ich dodawania. Stąd nie pasuje do kontekstu wstawiania danych. Identyfikator połączenia to kluczowy element oznaczający uchwyt do sesji z bazą a nie id wiersza który w tym kontekście nie ma zastosowania. Próba użycia NULL jako parametru wskazuje na błędne zrozumienie mechanizmów obsługi błędów w PHP. Bazy danych nie zapisują kodów błędów w zmiennej przekazywanej do zapytania. Takie podejście świadczy o braku świadomości jak zarządzać błędami w programowaniu z wykorzystaniem PHP gdzie standardem jest analiza wartości zwracanych przez funkcje i wykorzystanie funkcji takich jak mysqli_error do diagnozowania problemów. W kontekście wstawiania danych do bazy poprawne rozumienie mechanizmu polega na znajomości struktury SQL i obsługi połączeń z bazą co jest fundamentalne dla efektywnej pracy z bazami danych w PHP. Zrozumienie tych koncepcji pozwala na bezpieczne i skuteczne wykonywanie operacji na danych a także na efektywne diagnozowanie i obsługę błędów dzięki czemu aplikacje są bardziej odporne na awarie i ataki zewnętrzne co jest kluczowe dla ich stabilności i bezpieczeństwa. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 23</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="na-podstawie-przypisania-wartosci-do-zmiennych-zap-0edcdbf2" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Na podstawie przypisania wartości do zmiennych zapisanych w języku PHP można stwierdzić, że <table border="1"> <tr> <td> <pre><code>$zmienna1 = 15; $zmienna2 = "15"; $zmienna3 = (string) $zmienna1;</code></pre> </td> </tr> </table></p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. wszystkie zmienne są tych samych typów.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. zmienna1 i zmienna2 są tych samych typów.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>C. zmienna2 i zmienna3 są tych samych typów.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>D. zmienna1 i zmienna3 są tych samych typów.</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Niestety, twoja odpowiedź była nieprawidłowa. Wydaje się, że mogła wynikać z niezrozumienia typów zmiennych w języku PHP. W tym pytaniu zmienna1 była typu int (liczba całkowita), zmienna2 była typu string (ciąg znaków), natomiast zmienna3 była wynikiem rzutowania zmiennej1 na typ string. Stąd wynika, że zmienna2 i zmienna3 są obie typu string. Natomiast zmienna1, pomimo że miała taką samą wartość jak zmienna2 i zmienna3 (15), nie była tego samego typu. W językach programowania typ danych jest ważny, szczególnie przy operacjach porównania czy połączenia różnych typów danych. PHP jest językiem o dynamicznych typach, co oznacza, że typ zmiennej może ulec zmianie w trakcie wykonania skryptu, ale mimo to warto zawsze świadomie operować na typach zmiennych. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 24</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="cecha-formatu-png-jest-25248439" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Jaką cechę posiada format PNG?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>A. zapis grafiki wektorowej</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. brak wsparcia dla kanału alfa</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>C. bezstratna kompresja</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. wsparcie dla animacji</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Wybór odpowiedzi związanych z obsługą animacji jest mylny, ponieważ format PNG nie obsługuje animacji w standardowy sposób. Choć istnieje rozszerzenie o nazwie APNG (Animated PNG), które pozwala na tworzenie prostych animacji, nie jest to powszechnie akceptowany standard, co czyni PNG głównie formatem statycznym. W kontekście braku obsługi kanału alfa, warto zauważyć, że format PNG został zaprojektowany z myślą o pełnej obsłudze przezroczystości, co jest kluczowe dla wielu zastosowań graficznych. Z kolei sugerowanie, że PNG reprezentuje grafikę wektorową, jest całkowicie błędne, ponieważ ten format jest przeznaczony do obrazów rastrowych, czyli opartych na pikselach, a nie wektorowych, które są definiowane matematycznie. Typowe błędy myślowe prowadzące do takich wniosków często wynikają z niepełnej znajomości standardów formatów graficznych lub mylenia różnych typów grafik. W branży graficznej ważne jest zrozumienie właściwości formatów używanych do różnych zastosowań, a wybór niewłaściwego formatu może prowadzić do utraty jakości lub funkcjonalności obrazów. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 25</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="dla-kazdej-iteracji-petli-wartosc-biezacego-eleme-71286a52" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W każdej iteracji pętli wartość aktualnego elementu tablicy jest przypisywana do zmiennej, a wskaźnik tablicy przesuwa się o jeden, aż do osiągnięcia ostatniego elementu tablicy. To stwierdzenie jest prawdziwe w kontekście instrukcji</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>A. switch</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. next</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. if</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>D. foreach</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Wybór if, next i switch jako odpowiedzi nie jest poprawny w kontekście opisanego działania pętli, ponieważ każda z tych instrukcji ma odmienny cel i zastosowanie. Instrukcja if służy do warunkowego wykonywania bloków kodu, co oznacza, że nie umożliwia iteracji po elementach tablicy. W przypadku używania if, programista musi samodzielnie zarządzać pętlami, co wprowadza dodatkową złożoność oraz możliwość wystąpienia błędów. Z kolei next jest używane w kontekście iteracji w niektórych językach programowania, ale nie funkcjonuje jako samodzielna instrukcja. Zazwyczaj next jest częścią pętli, jak na przykład w pętli while, gdzie służy do przesunięcia wskaźnika lub indeksu, lecz nie pełni roli do iteracji po tablicach w sposób zautomatyzowany. Z kolei switch jest konstrukcją służącą do stosowania wielokrotnych warunków, co pozwala na wybór jednego z wielu możliwych bloków kodu na podstawie wartości danej zmiennej. Nie jest to mechanizm iteracyjny, dlatego nie można go zastosować do przetwarzania elementów tablicy w sposób opisany w pytaniu. Analizując te trzy odpowiedzi, można zauważyć, że żadna z nich nie spełnia kryteriów, które opisuje działanie instrukcji foreach. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 26</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktora-z-komorek-tabeli-zostaa-sformatowana-przeds-8f5d1069" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Która z komórek tabeli została sformatowana przedstawionym stylem CSS zakładając, że pozostałe własności przyjmują wartości domyślne? <br><pre style="font-family: monospace; padding: 10px; border: 2px solid #000; display: inline-block;"> td { border: 1px solid black; padding: 15px; height: 40px; vertical-align: bottom; } </pre> <!-- Tabela z przykładami --> <table style="border-collapse: collapse; margin-top: 20px;"> <tr> <td style="border: 1px dashed black; padding: 15px; height: 40px; vertical-align: bottom;">dane w tabeli</td> <td><br><br><br> <td style="border: 1px solid black; padding: 15px; padding-bottom: 0px; height: 40px; vertical-align: bottom;">dane w tabeli</td><td> <td style="border: 1px solid black; padding: 15px; height: 40px; vertical-align: bottom;">dane w tabeli</td><td> <td style="border: 1px solid black; padding: 15px; height: 40px; vertical-align: top;">dane w tabeli</td> </tr> <tr> <td style="text-align: center; padding-top: 5px;">Komórka 1</td><td> <td style="text-align: center; padding-top: 5px;">Komórka 2</td><td> <td style="text-align: center; padding-top: 5px;">Komórka 3</td><td> <td style="text-align: center; padding-top: 5px;">Komórka 4</td><td> </tr> </table></p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. Komórka 1.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>B. Komórka 3.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>C. Komórka 2.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. Komórka 4.</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Niestety, ta odpowiedź jest nieprawidłowa. Wybór jakiejkolwiek innej komórki oprócz komórki 3. oznacza niezrozumienie, jak działają style CSS w kontekście formatowania komórek tabeli. Obramowanie, padding, wysokość i wyrównanie tekstu to atrybuty CSS, które wpływają na wygląd komórki tabeli. Często błędem jest mylenie paddingu (wewnętrznego marginesu) z marginesem (zewnętrznym marginesem) lub niezrozumienie, jak działa wyrównanie tekstu. Warto pamiętać, że w CSS 'vertical-align: bottom' oznacza wyrównanie tekstu do dolnej krawędzi komórki. Wybór innej komórki, która nie spełnia podanych kryteriów, sugeruje, że nie zrozumiałeś prawidłowo tych konceptów. Radzę powtórzyć materiał dotyczący stylizacji komórek tabeli w CSS i spróbować ponownie. Pamiętaj, że kluczem do zrozumienia CSS jest praktyka, więc nie bój się eksperymentować z różnymi stylami! </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 27</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-formularzu-html-zastosowano-znacznik-input-wy-1972f558" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W HTML formularzu użyto elementu <input>. Pole, które się pojawi, ma pozwalać na wprowadzenie maksymalnie <table style="border: 2px solid black; border-collapse: collapse;"><tr><td style="border: 1px solid black; padding: 10px; font-family: monospace;"><span style="color:blue;"><input</span> <span style="color:red;">type</span><span style="color:purple;">="password"</span> <span style="color:red;">size</span><span style="color:purple;">="30"</span> <span style="color:red;">maxlength</span><span style="color:purple;">="20"</span><span style="color:blue;">></span></td></tr></table></p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. 20 znaków, które będą widoczne w trakcie wprowadzania</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. 30 znaków, które będą widoczne podczas wpisywania</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. 20 znaków, które nie będą widoczne w polu tekstowym</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. 30 znaków, które nie będą widoczne w polu tekstowym</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Znacznik <input type="password"> w HTML jest rzeczywiście super ważny. Umożliwia on użytkownikom wpisywanie haseł, a to, co najfajniejsze, to że znaki są ukryte, więc nikt nie zobaczy, co piszesz. Atrybut maxlength="20" jest tutaj pomocny, bo ogranicza liczbę znaków do 20, co jest praktyczne - zbyt długie hasła ciężko zapamiętać, a krótkie mogą być niebezpieczne. Natomiast size="30" to tylko kwestia szerokości pola, więc nie wpływa na ilość znaków, które można wpisać. Generalnie, dobrze jest trzymać się tych ograniczeń, bo to pomaga w projektowaniu formularzy i utrzymywaniu porządku w interfejsie. Z mojej perspektywy, znajomość tych atrybutów jest naprawdę przydatna przy tworzeniu stron, bo można lepiej zrozumieć, jak to wszystko działa. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 28</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-jaki-sposob-wykonanie-podanej-w-ramce-kwerendy-eb7a78a5" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W jaki sposób realizacja umieszczonej w ramce kwerendy SQL wpłynie na tabelę pracownicy?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. Doda kolumnę plec ze znakowym typem danych o stałej długości 9</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. Doda kolumnę plec ze znakowym typem danych o zmiennej długości 9</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>C. Zmieni typ danych kolumny plec na znakowy o stałej długości 9</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>D. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Zmiana kolumny 'plec' poprzez dodanie nowej kolumny zamiast modyfikacji istniejącej jest błędna, ponieważ kwerenda SQL ALTER TABLE z modyfikacją nie dodaje nowej kolumny, lecz zmienia atrybuty już istniejącej. W przypadku dodania kolumny z typem znakowym o stałej długości, nie byłoby to możliwe bez użycia innego polecenia, takiego jak ADD COLUMN, co jest całkowicie inną operacją. Ponadto, zmiana na typ danych o zmiennej długości nie ma zastosowania w tej sytuacji, ponieważ char(9) zawsze rezerwuje 9 znaków, niezależnie od tego, ile znaków faktycznie jest zapisanych, co jest kluczową różnicą w porównaniu do varchar, który jest typem zmiennej długości. Ostatnia niepoprawna odpowiedź sugeruje, że kolumna mogłaby mieć typ znakowy o zmiennej długości, co nie jest zgodne z definicją char, gdyż ten typ danych zawsze zarezerwuje maksymalną długość zdefiniowaną przez użytkownika. W praktyce oznacza to, że przy użyciu char(9) każda wartość w kolumnie 'plec' będzie zawsze składać się z 9 znaków, a w przypadku krótszych wartości zostaną one wypełnione spacjami. Zrozumienie różnicy między typami danych oraz ich właściwą modyfikację jest kluczowe dla efektywnego zarządzania bazami danych. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 29</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktory-zapis-suzy-do-ustawienia-klucza-obcego-w-my-a0f64e70" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Jaki zapis jest używany do definiowania klucza obcego w MySQL?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. PRIMARY KEY(ID)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. UNIQUE KEY(ID)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. FOREIGN KEY(ID)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. AUTO_INCREMENT(ID)</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Odpowiedź FOREIGN KEY(ID) jest poprawna, ponieważ klucz obcy (foreign key) jest używany w bazach danych do ustanowienia i wymuszenia relacji pomiędzy dwiema tabelami. Klucz obcy w tabeli A wskazuje na klucz podstawowy (primary key) w tabeli B, co pozwala na utrzymanie integralności referencyjnej danych. Na przykład, jeżeli mamy tabelę 'Zamówienia', w której zapisujemy informacje o zamówieniach, i tabelę 'Klienci', w której mamy dane o klientach, możemy zastosować klucz obcy w tabeli 'Zamówienia', aby wskazywał na ID klienta w tabeli 'Klienci'. Dzięki temu, nie będzie możliwości dodania zamówienia dla nieistniejącego klienta, co zapewnia spójność i integralność bazy danych. Używanie kluczy obcych jest zgodne z najlepszymi praktykami projektowania baz danych, ponieważ pozwala na łatwiejsze zarządzanie danymi i ogranicza możliwość wystąpienia błędów. Warto również zauważyć, że klucze obce mogą być używane w kontekście kaskadowej aktualizacji lub usuwania, co dodatkowo ułatwia zarządzanie relacjami między tabelami. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 30</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktory-znacznik-suzy-budowaniu-hierarchii-tekstu-3d527f13" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Który z znaczników ma na celu organizację struktury tekstu w HTML?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>A. <head></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. <u></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>C. <h6></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. <style></span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Znacznik <u> służy do podkreślenia tekstu, co nie ma nic wspólnego z tworzeniem hierarchii treści. W dzisiejszych standardach HTML, podkreślenie tekstu powinno być używane bardzo ostrożnie, ponieważ może wprowadzać w błąd czytelników i wyszukiwarki, sugerując, że tekst jest linkiem do innej strony. W praktyce, znaczenie podkreślenia powinno ograniczać się do przypadków, gdzie jest to konieczne, a nie stać się domyślnym sposobem na wyróżnienie treści. Z kolei znacznik <head> pełni rolę sekcji nagłówkowej dokumentu HTML, w której znajduje się metadane, takie jak tytuł, skrypty czy style. Nie ma on żadnego zastosowania w kontekście budowania hierarchii tekstu, ponieważ nie wpływa na sposób, w jaki treść jest wyświetlana na stronie. Ponadto, znacznik <style> jest używany do definiowania stylów CSS, co również nie ma związku z hierarchią tekstu. Typowe błędy myślowe, które prowadzą do takich niepoprawnych wniosków, mogą wynikać z mylenia celów różnych znaczników HTML. Każdy znacznik ma swoje specyficzne funkcje, a ich niewłaściwe użycie może prowadzić do nieefektywnej struktury strony oraz negatywnie wpływać na doświadczenia użytkowników i SEO. Zrozumienie roli każdego elementu w HTML jest kluczowe dla tworzenia przejrzystych i funkcjonalnych stron internetowych. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 31</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="wykonujac-raport-w-systemie-obsugi-relacyjnych-b-40f174d7" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Przygotowując raport w systemie zarządzania relacyjnymi bazami danych, można uzyskać</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>A. analizę wybranych danych</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>B. aktualizowanie danych w tabelach</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. usuwanie danych z tabel</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. dodawanie danych do tabel</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Usuwanie danych w tabelach nie jest efektem działania raportów, a raczej operacją DML (Data Manipulation Language), której celem jest modyfikacja danych. Ta czynność jest związana z ryzykiem utraty informacji i wymaga szczególnej ostrożności, ponieważ raz usunięte dane mogą być trudne lub niemożliwe do odzyskania. Z perspektywy zarządzania bazą danych, usuwanie powinno być starannie dokumentowane oraz kontrolowane. Dodawanie danych w tabelach również nie jest częścią procesu raportowania, ponieważ raporty koncentrują się na analizie danych już istniejących, a dodawanie nowych danych jest procesem, który wprowadza zmiany w strukturze bazy. Użytkownicy muszą mieć odpowiednie uprawnienia, aby móc dodawać lub edytować dane, co nie ma związku z funkcjonalnościami raportowania. Aktualizowanie danych w tabelach również nie jest związane z raportowaniem. Zmiany w danych są często związane z operacjami, które zmieniają stan bazy, a raporty służą jedynie do przedstawienia już istniejących informacji. W związku z tym operacje takie jak usuwanie, dodawanie czy aktualizowanie danych są częścią procesu zarządzania danymi, a nie analizy i generowania raportów. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 32</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="aby-zbadac-rozkad-ilosciowy-poszczegolnych-koloro-7d9ae5c4" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Aby przeanalizować rozkład ilościowy różnych kolorów na zdjęciu, należy skorzystać z</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. rozmycia Gaussa</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. desaturacji</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. histogramu</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. balansu kolorów</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Histogram to coś jak graficzna mapka kolorów w Twoim zdjęciu. Pokazuje, jak rozłożone są różne kolory – czerwony, zielony i niebieski – co jest mega przydatne, gdy chcesz zobaczyć, które kolory dominują w Twoim obrazie. Dzięki histogramowi można ogarnąć siłę kolorów i ich proporcje. Jak się nim pobawisz, to łatwiej zauważysz, czy kolory są zbyt intensywne, zbyt blade albo czy masz jakieś przepalenia czy zbyt ciemne miejsca w obrazku. Osobiście, jak używam histogramu, to mogę fajnie dostosować jasność czy kontrast, żeby zdjęcie wyglądało tak, jak chcę. W fotografii i grafice komputerowej histogramy są po prostu standardem – bez nich ciężko ocenić jakość obrazu i podjąć sensowne decyzje w postprodukcji. Dlatego naprawdę warto z nich korzystać, bo dają konkretny wgląd w kolorystykę. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 33</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktora-z-przedstawionych-metod-pozwoli-wypisac-w-je-5e188293" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Która z wymienionych metod umożliwia wyświetlenie komunikatu w konsoli przeglądarki za pomocą języka JavaScript?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. console.echo("test");</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>B. console.log("test");</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. console.print("test");</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. console.write("test");</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Metoda console.log() jest standardowym sposobem wypisywania komunikatów w konsoli przeglądarki w języku JavaScript. Umożliwia deweloperom śledzenie działania kodu, debugowanie aplikacji oraz analizowanie wartości zmiennych. Przykładem zastosowania tej metody jest logowanie informacji na temat stanu aplikacji, co jest szczególnie przydatne podczas tworzenia skomplikowanych interakcji użytkownika lub podczas pracy z danymi. Oto prosty przykład: jeśli mamy zmienną let x = 5; i chcemy sprawdzić jej wartość, możemy użyć console.log(x);, co wyświetli w konsoli "5". Metoda ta wspiera także formatowanie tekstu, np. poprzez użycie znaczników takich jak %c, co pozwala na stylizację wypisywanych komunikatów. Zgodnie z dobrymi praktykami, console.log() powinno być wykorzystywane głównie do celów debugowania i nie powinno pozostawać w kodzie produkcyjnym, aby uniknąć zanieczyszczenia konsoli niepotrzebnymi informacjami. Używanie tej metody jest zgodne z najlepszymi standardami, co czyni ją kluczowym narzędziem w arsenale każdego programisty JavaScript. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 34</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="bedy-interpretacji-kodu-php-sa-zapisane-d4b067ee" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Gdzie są rejestrowane błędy interpretacji kodu PHP?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. w oknie edytora, w którym pisany jest kod PHP</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. nigdzie, są pomijane przez przeglądarkę oraz interpreter kodu PHP</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. w logu, jeśli zostanie ustawiony odpowiedni parametr w pliku php.ini</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. w podglądzie zdarzeń systemu Windows</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Błędy interpretacji kodu PHP są zapisywane w logach, które można aktywować poprzez ustawienie odpowiednich parametrów w pliku konfiguracyjnym php.ini. Wartości takiego parametru jak 'log_errors' muszą być ustawione na 'On', aby zapisywanie błędów było możliwe. Dodatkowo, należy określić lokalizację pliku logów za pomocą parametru 'error_log'. Dzięki temu, gdy wystąpią błędy, będą one rejestrowane w wyznaczonym pliku, co jest kluczowe dla późniejszej diagnostyki i debugowania aplikacji. Na przykład, programista, który rozwija aplikację internetową, może analizować te logi, aby zidentyfikować błędy w kodzie, co pozwala na szybsze wprowadzenie poprawek. Zgodnie z dobrymi praktykami w branży, logowanie błędów jest niezbędne, aby utrzymać wysoką jakość kodu i zapewnić jego niezawodność. Właściwe konfigurowanie logów jest szczególnie ważne w środowiskach produkcyjnych, gdzie błędy mogą wpływać na doświadczenia użytkowników. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 35</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-jezyku-php-zapisano-fragment-kodu-plik-cookie-s-a6fcc90b" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W języku PHP zapisano fragment kodu. Plik cookie utworzony przy pomocy tego polecenia <table style="border: 2px solid black; border-collapse: collapse;"><tr><td style="border: 1px solid black; padding: 10px; font-family: monospace;"><span style="color: blue;">setcookie</span>("osoba", "Anna Kowalska", <span style="color: blue;">time</span>()+<span style="color: orange;">(3600*24)</span>);</td></tr></table></p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. będzie przechowywany na serwerze przez jedną godzinę</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>B. zostanie usunięty po 24 godzinach od jego stworzenia</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. zostanie usunięty po jednej godzinie od momentu jego utworzenia</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>D. będzie przechowywany na serwerze przez 24 godziny</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> W kontekście używania plików cookie w PHP ważne jest zrozumienie różnicy pomiędzy przechowywaniem danych na serwerze a w przeglądarce użytkownika. Pliki cookie są przechowywane po stronie klienta a nie na serwerze co oznacza że odpowiedź o przechowywaniu cookie na serwerze jest błędna. Plik cookie wygasa po określonym czasie od jego ustawienia co jest ustalane poprzez czas wygaśnięcia podany jako trzeci parametr funkcji setcookie. W analizowanym fragmencie kodu czas wygaśnięcia jest ustawiony poprzez dodanie liczby sekund odpowiadającej jednemu dniu do bieżącego czasu co oznacza że plik cookie zostanie usunięty po upływie jednego dnia a nie jednej godziny. Jednym z typowych błędów jest mylenie jednostek czasu co prowadzi do niepoprawnego zrozumienia działania czasów wygaśnięcia. Ponadto błędne jest przekonanie że cookie może być przechowywane na serwerze co jest fundamentalnym nieporozumieniem dotyczącym natury plików cookie w HTTP. Pliki cookie są częścią mechanizmu zarządzania sesjami i stanem w aplikacjach webowych co ma kluczowe znaczenie dla personalizacji i utrzymania sesji użytkownika. Poprawne zrozumienie jak działa mechanizm cookie oraz gdzie są przechowywane pomaga w bezpiecznym i efektywnym projektowaniu aplikacji internetowych zgodnie z dobrymi praktykami w zakresie zarządzania sesjami i danymi użytkowników. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 36</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktorej-funkcji-edytora-grafiki-rastrowej-nalezy-u-9fb53cab" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Jakiej funkcji w edytorze grafiki rastrowej należy użyć, aby przygotować obraz do wyświetlenia na stronie tak, aby widoczne było jedynie to, co mieści się w ramce?</p> <figure class="figure mt-3"> <img src="/images/11289.png" class="figure-img img-fluid rounded" alt="Ilustracja do pytania" itemprop="image"> </figure> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. Perspektywa</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. Lustro</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. Kadrowanie</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. Zmiana rozmiaru</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Kadrowanie w edytorze grafiki rastrowej to naprawdę fajna technika, bo pozwala nam na wycięcie konkretnej części obrazu, którą chcemy pokazać. Dzięki temu skupiamy uwagę na tym, co w grafice najważniejsze, eliminując to, co jest zbędne. Przygotowując grafikę do wrzucenia na stronę www, dobrze jest pomyśleć o kadrowaniu, bo nie tylko poprawia estetykę, ale też sprawia, że strona działa szybciej. Mniejsza grafika to krótszy czas ładowania, co wszyscy lubią. Kadrowanie jest kluczowe, zwłaszcza w responsywnym web designie, gdzie musimy dostosować obrazy do różnych ekranów. Z praktyki wiem, że dobrze wykadrowany obraz to lepsza jakość przy mniejszej wadze pliku, co korzystnie wpływa na SEO i wrażenia użytkowników. W programach jak Adobe Photoshop czy GIMP kadrowanie jest dość proste i pozwala na szybkie dostosowanie obrazu do potrzeb projektu. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 37</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="dla-akapitu-zdefiniowano-styl-css-ktore-wasciwo-bde7b489" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Dla akapitu zdefiniowano styl CSS. Które właściwości stylu CSS poprawnie określają dla akapitu czcionkę: Arial; rozmiar czcionki: 16 pt; oraz styl czcionki: pochylenie?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>A. p{font-family: Arial; font-size: 16pt; font-style: italic;}</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. p{font-style: Arial; font-size: 16pt; font-variant: normal;}</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. p{font-family: Arial; font-size: 16px; font-variant: normal;}</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. p{font-style: Arial; size: 16px; font-weight: normal;}</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Jeśli chodzi o opisanie czcionki w CSS dla akapitu, to kluczowe są trzy właściwości. 'font-family' mówi nam, jaki krój czcionki wybieramy, w tym wypadku 'Arial', bo to popularna czcionka bezszeryfowa. Potem mamy 'font-size', czyli rozmiar czcionki, tutaj to '16pt'. To standardowy rozmiar, który dobrze wygląda w druku. Na końcu, 'font-style' ustawia styl czcionki, a użycie 'italic' sprawia, że tekst będzie w pochyłym stylu. Te trzy rzeczy są super ważne, żeby tekst na stronie wyglądał schludnie i czytelnie. W projektowaniu stron internetowych warto pamiętać, że dla druku lepsze są jednostki takie jak 'pt', a dla ekranów stosujemy 'px'. Spójność w stylizacji też jest kluczowa, bo dzięki temu tekst wygląda jednolicie na całej stronie. To naprawdę ważne, zwłaszcza gdy robimy coś w CSS, bo pozwala to na ładniejszy web design. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 38</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="instrukcja-javascript-documentwrite55-wy-74780e0e" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Wyrażenie JavaScript: document.write(5==='5′); co zostanie wyświetlone?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>A. true</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>B. false</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. 1</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. 0</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Odpowiedzi, które wybrałeś, jak '0', 'true' i '1', pokazują, że mogło dojść do pewnych nieporozumień w zrozumieniu, jak działają operatory porównania w JavaScript. Na przykład '0' może sugerować, że sądzisz, że wynik jest liczbowy, a nie logiczny. Warto pamiętać, że w JavaScript liczby i wartości logiczne to różne typy danych. '0' oznacza fałsz, więc to nie jest właściwy wynik. Odpowiedź 'true' świadczy o błędnym przekonaniu, że porównywane wartości są takie same, co nie jest zgodne z tym, co robi '===' . Natomiast odpowiedź '1' sugeruje, że mogłeś pomylić wynik porównania z kodem prawdy w formie 1, co zdarza się w niektórych językach, ale w JavaScript to nie działa. Kluczowe jest to, że '===' porównuje zarówno wartości, jak i typy, więc porównując liczbę i ciąg znaków, dostajemy 'false'. W JavaScript mamy 'true' i 'false', a porównania powinny uwzględniać typy danych, żeby uniknąć zamieszania. Fajnie byłoby, gdybyś zgłębił temat typów danych w JavaScript i sam spróbował różnych porównań, żeby lepiej to ogarnąć. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 39</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-jezyku-css-zdefiniowano-formatowanie-dla-pola-ed-47c10edc" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>W CSS zdefiniowano styl dla pola edycji. Taki obszar będzie miał jasnozielone tło <table style="border: 2px solid black; border-collapse: collapse;"> <tr> <td style="border: 1px solid black; padding: 10px; font-family: monospace;"> input:focus { background-color: LightGreen; } </td> </tr> </table></p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. gdy zostanie na niego najechane kursorem myszy bez kliknięcia</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. jeśli jest to pierwsze wystąpienie tego elementu w dokumencie</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>C. po kliknięciu myszą w celu wprowadzenia tekstu</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>D. w każdej sytuacji</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Pozostałe odpowiedzi opierają się na błędnym zrozumieniu zastosowania pseudoklas w języku CSS. Pseudoklasa :first-of-type, która mogłaby sugerować pierwsze wystąpienie znacznika w dokumencie, nie odnosi się do stanu aktywności pola edycyjnego. Stylizowanie pierwszego wystąpienia nie ma związku z interakcją użytkownika, a jedynie z pozycją elementu w strukturze dokumentu HTML. Kolejny błąd pojawia się przy założeniu, że zmiana koloru tła nastąpi gdy element zostanie wskazany kursorem myszy. W CSS taka interakcja jest obsługiwana przez pseudoklasę :hover, która stosuje się do elementów, nad którymi znajduje się wskaźnik myszy, ale nie obejmuje stanu aktywnego fokusu potrzebnego do edycji. Ostatnia błędna koncepcja dotyczy twierdzenia, że styl jest stosowany w każdym przypadku. To stwierdzenie ignoruje specyfikę selektorów CSS, które wymagają określonych warunków - w tym przypadku aktywnego fokusu elementu. Zrozumienie różnic między pseudoklasami :focus i :hover oraz znajomość ich zastosowań w projektowaniu interaktywnych interfejsów webowych jest kluczowe dla skutecznego stosowania CSS w praktyce. Poprawna wiedza na temat specyficznych zastosowań tych pseudoklas wpływa na jakość doświadczenia użytkownika i integrację funkcjonalności z estetyką projektu. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 40</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ile-razy-nalezy-zapisac-instrukcje-warunkowa-aby-863a2ad6" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Ile razy należy wprowadzić instrukcję warunkową, aby zrealizować przedstawiony algorytm w danym języku programowania?</p> <figure class="figure mt-3"> <img src="/images/53612.png" class="figure-img img-fluid rounded" alt="Ilustracja do pytania" itemprop="image"> </figure> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. Raz.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. Trzy razy.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. Cztery razy.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>D. Dwa razy.</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Instrukcja warunkowa jest kluczowym elementem w programowaniu, pozwalającym na podejmowanie decyzji w trakcie wykonywania programu. W algorytmie przedstawionym na diagramie, widzimy dwie sytuacje, w których możliwe są różne ścieżki działania w zależności od spełnienia określonych warunków. Każda z tych sytuacji wymaga użycia instrukcji warunkowej w kodzie. W praktyce, oznacza to konieczność zapisania instrukcji takich jak if-else dwa razy, aby poprawnie odwzorować logikę algorytmu. Jest to zgodne ze standardami programowania, które promują klarowność i czytelność kodu. Stosowanie instrukcji warunkowych umożliwia optymalizację przepływu sterowania, co jest istotne dla efektywności i wydajności programów. Przykład z życia codziennego to system zarządzania ruchem sygnalizacji świetlnej, który używa wielu instrukcji warunkowych do reagowania na zmienne warunki ruchu. Zrozumienie, gdzie i jak zastosować instrukcje warunkowe, jest kluczowe dla tworzenia elastycznych i skalowalnych rozwiązań programistycznych. Ważne jest także stosowanie dobrych praktyk, takich jak unikanie nadmiernego zagnieżdżania instrukcji, co wpływa na czytelność i utrzymywalność kodu. </div> </div> </article> <!-- Przyciski nawigacyjne --> <div class="d-grid gap-2 mt-4"> <div class="d-inline-block mb-2"> <a href="/egzamin/?profession=technik-programista&qualification=inf-03" class="btn btn-outline-primary"> <i class="fas fa-redo me-2"></i>Rozpocznij nowy egzamin </a> </div> <div class="d-inline-block"> <a href="/" class="btn btn-outline-secondary"> <i class="fas fa-home me-2"></i>Powrót do strony głównej </a> </div> </div> </div> </div> </div> </main> <!-- Footer --> <footer class="footer mt-auto py-4"> <div class="container"> <div class="row"> <!-- About Section --> <div class="col-lg-4 footer-section"> <h2 class="h5">O Egzaminach Zawodowych</h2> <p> Portal z kompleksową bazą pytań egzaminacyjnych dla uczniów szkół technicznych. Przygotuj się do egzaminu zawodowego z naszymi materiałami. </p> </div> <!-- Popular Qualifications --> <div class="col-lg-4 footer-section"> <h2 class="h5">Losowe kwalifikacje</h2> <div class="row"> <div class="col-6"> <a href="/lakiernik-samochodowy/MOT.03/" class="footer-link"> <span>MOT.03</span> <small class="text-muted">(164)</small> </a> </div> <div class="col-6"> <a href="/technik-spedytor/SPL.05/" class="footer-link"> <span>SPL.05</span> <small class="text-muted">(868)</small> </a> </div> <div class="col-6"> <a href="/technik-przetworstwa-mleczarskiego/SPC.06/" class="footer-link"> <span>SPC.06</span> <small class="text-muted">(69)</small> </a> </div> <div class="col-6"> <a href="/asystentka-stomatologiczna/MED.01/" class="footer-link"> <span>MED.01</span> <small class="text-muted">(802)</small> </a> </div> <div class="col-6"> <a href="/tapicer/DRM.05/" class="footer-link"> <span>DRM.05</span> <small class="text-muted">(328)</small> </a> </div> <div class="col-6"> <a href="/technik-teleinformatyk/INF.07/" class="footer-link"> <span>INF.07</span> <small class="text-muted">(335)</small> </a> </div> <div class="col-6"> <a href="/technik-technologii-zywnosci/SPC.04/" class="footer-link"> <span>SPC.04</span> <small class="text-muted">(293)</small> </a> </div> <div class="col-6"> <a href="/technik-zywienia-i-usug-gastronomicznych/HGT.02/" class="footer-link"> <span>HGT.02</span> <small class="text-muted">(1 475)</small> </a> </div> <div class="col-6"> <a href="/technik-fotografii-i-multimediow/AUD.05/" class="footer-link"> <span>AUD.05</span> <small class="text-muted">(758)</small> </a> </div> <div class="col-6"> <a href="/technik-eksploatacji-portow-i-terminali/SPL.03/" class="footer-link"> <span>SPL.03</span> <small class="text-muted">(289)</small> </a> </div> </div> </div> <!-- Additional Info --> <div class="col-lg-4 footer-section"> <h2 class="h5">O portalu</h2> <p> Baza pytań do egzaminów zawodowych dla uczniów szkół technicznych i branżowych. Materiały zgodne z wymaganiami CKE. </p> </div> </div> <!-- Copyright & Links --> <hr class="footer-divider"> <div class="row align-items-center"> <div class="col-md-8 text-center text-md-start"> <p class="mb-0">© 2025 <a href="https://brylka.net" class="footer-link" aria-label="brylka.net">brylka.net</a> | <a href="/about-me/" class="footer-link" aria-label="O mnie i zawodowe.edu.pl">Bartosz Bryniarski</a></p> </div> <div class="col-md-4 text-center text-md-end"> <!-- <a href="/sitemap.xml" class="footer-link" aria-label="Mapa strony"> <i class="fas fa-sitemap" aria-hidden="true"></i> <span>Mapa strony</span> </a> --> </div> </div> </div> </footer> <!-- Back to top button --> <button id="backToTop" class="btn btn-outline-primary back-to-top" aria-label="Przewiń do góry strony" style="display: none;"> <i class="fas fa-arrow-up" aria-hidden="true"></i> </button> <!-- Cookie Banner --> <div id="cookieConsent" class="position-fixed start-0 bottom-0 py-3 shadow rounded-end" style="display: none; z-index: 1050; max-width: 50%; background-color: rgba(248, 249, 250, 0.95);"> <div class="container-fluid px-4"> <div class="d-flex flex-column gap-2"> <div> <i class="fas fa-cookie-bite me-2 text-secondary" aria-hidden="true"></i> <span class="small"> Strona wykorzystuje pliki cookies do poprawy doświadczenia użytkownika oraz analizy ruchu. <a href="#" class="footer-link" id="cookieDetails" data-bs-toggle="modal" data-bs-target="#cookieModal"> Szczegóły </a> </span> </div> <div class="d-flex gap-2 justify-content-end"> <button id="cookieAccept" class="btn btn-outline-primary btn-sm">Akceptuję</button> <button id="cookieReject" class="btn btn-outline-secondary btn-sm">Odrzuć</button> </div> </div> </div> </div> <!-- Modal z informacjami o cookies --> <div class="modal fade" id="cookieModal" tabindex="-1" aria-labelledby="cookieModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> <h2 class="modal-title fs-5" id="cookieModalLabel">Polityka plików cookies</h2> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zamknij"></button> </div> <div class="modal-body"> <h6 class="fw-bold">Czym są pliki cookies?</h6> <p> Cookies to małe pliki tekstowe, które są zapisywane na urządzeniu użytkownika podczas przeglądania stron internetowych. Służą one do zapamiętywania preferencji, śledzenia zachowań użytkowników oraz poprawy funkcjonalności serwisu. </p> <h6 class="fw-bold mt-4">Jakie cookies wykorzystujemy?</h6> <ul class="list-unstyled ps-3"> <li><i class="fas fa-check-circle text-success me-2"></i><strong>Niezbędne cookies</strong> - konieczne do prawidłowego działania strony</li> <li><i class="fas fa-check-circle text-success me-2"></i><strong>Funkcjonalne cookies</strong> - umożliwiające zapamiętanie wybranych ustawień (np. wybrany motyw)</li> <li><i class="fas fa-check-circle text-success me-2"></i><strong>Analityczne cookies</strong> - pozwalające zbierać informacje o sposobie korzystania ze strony</li> </ul> <h6 class="fw-bold mt-4">Jak długo przechowujemy cookies?</h6> <p> Pliki cookies wykorzystywane w naszym serwisie mogą być sesyjne (usuwane po zamknięciu przeglądarki) lub stałe (pozostają na urządzeniu przez określony czas). </p> <h6 class="fw-bold mt-4">Jak zarządzać cookies?</h6> <p> Możesz zarządzać ustawieniami plików cookies w swojej przeglądarce internetowej. Większość przeglądarek domyślnie dopuszcza przechowywanie plików cookies, ale możliwe jest również całkowite zablokowanie tych plików lub usunięcie wybranych z nich. </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Zamknij</button> <button type="button" class="btn btn-outline-primary" id="acceptCookiesModal">Akceptuję wszystkie</button> </div> </div> </div> </div> <!-- JavaScript --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" defer></script> <script src="/static/exams/js/code.js" defer></script> <script src="/static/exams/js/report_modal.js" defer></script> <script> document.addEventListener('DOMContentLoaded', function() { // Dodaj obsługę motywów dla banera cookie function updateCookieBannerTheme() { const cookieBanner = document.getElementById('cookieConsent'); const currentTheme = document.body.getAttribute('data-theme'); if (!cookieBanner) return; // Ustaw domyślny jasny styl cookieBanner.style.backgroundColor = 'rgba(248, 249, 250, 0.95)'; cookieBanner.style.color = '#212529'; cookieBanner.classList.remove('border-top', 'border-white'); // Zastosuj style zgodnie z motywem if (currentTheme === 'dark') { cookieBanner.style.backgroundColor = 'rgba(52, 58, 64, 0.95)'; cookieBanner.style.color = '#fff'; } else if (currentTheme === 'high-contrast') { cookieBanner.style.backgroundColor = '#000'; cookieBanner.style.color = '#fff'; cookieBanner.classList.add('border-top', 'border-white'); } } // Sprawdź, czy użytkownik już dokonał wyboru if (!localStorage.getItem('cookieConsent')) { // Jeśli nie, pokaż banner const cookieBanner = document.getElementById('cookieConsent'); if (cookieBanner) { cookieBanner.style.display = 'block'; updateCookieBannerTheme(); // Dostosuj szerokość na małych ekranach function adjustWidth() { if (window.innerWidth < 768) { cookieBanner.style.maxWidth = '100%'; } else { cookieBanner.style.maxWidth = '50%'; } } // Wywołaj przy ładowaniu i przy zmianie rozmiaru okna adjustWidth(); window.addEventListener('resize', adjustWidth); } } // Obsługa zmiany motywu const themeButtons = document.querySelectorAll('.theme-btn'); themeButtons.forEach(btn => { btn.addEventListener('click', function() { setTimeout(updateCookieBannerTheme, 50); }); }); // Obsługa przycisku akceptacji document.getElementById('cookieAccept')?.addEventListener('click', function() { localStorage.setItem('cookieConsent', 'accepted'); document.getElementById('cookieConsent').style.display = 'none'; }); // Obsługa przycisku odrzucenia document.getElementById('cookieReject')?.addEventListener('click', function() { localStorage.setItem('cookieConsent', 'rejected'); document.getElementById('cookieConsent').style.display = 'none'; }); // Obsługa przycisku akceptacji w modalu document.getElementById('acceptCookiesModal')?.addEventListener('click', function() { localStorage.setItem('cookieConsent', 'accepted'); document.getElementById('cookieConsent').style.display = 'none'; // Zamknij modal var cookieModal = bootstrap.Modal.getInstance(document.getElementById('cookieModal')); cookieModal?.hide(); }); }); </script> <!-- Toast messages initialization --> <script> document.addEventListener('DOMContentLoaded', function() { const copyButton = document.getElementById('copy-link-button'); if (copyButton) { copyButton.addEventListener('click', function() { const input = document.getElementById('share-link-input'); input.select(); document.execCommand('copy'); // Zmień tekst przycisku na potwierdzenie const originalText = this.innerHTML; this.innerHTML = '<i class="fas fa-check me-1"></i> Skopiowano!'; // Przywróć oryginalny tekst po 2 sekundach setTimeout(() => { this.innerHTML = originalText; }, 2000); }); } }); </script> </body> </html>