Pytania pomocnicze - INF.03

Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Każde pytanie ma krótką odpowiedź, która pomaga utrwalić wiedzę i przygotować się do egzaminu. Łącznie: 6221.
Strona 67 z 81.

Dlaczego poprawna odpowiedź używa JOIN zamiast SELECT *?

`JOIN` jest potrzebny, ponieważ dane pochodzą z dwóch tabel. `SELECT *` pobrałby wszystkie kolumny, a pytanie wymaga tylko imienia, nazwiska i ulicy.

Co oznacza warunek ON Mieszkancy.Adresy_id = Adresy.id?

Określa sposób połączenia tabel. Kolumna `Adresy_id` z tabeli `Mieszkancy` wskazuje na kolumnę `id` w tabeli `Adresy`.

Z której tabeli pochodzą kolumny imie i nazwisko?

Kolumny `imie` i `nazwisko` pochodzą z tabeli `Mieszkancy`.

Z której tabeli pochodzi kolumna ulica?

Kolumna `ulica` pochodzi z tabeli `Adresy`.

Dlaczego odpowiedzi A i B są błędne?

Obie używają `SELECT *`, czyli pobierają wszystkie kolumny, a nie tylko wymagane trzy. Dodatkowo odpowiedź A ma niepoprawną składnię połączenia tabel.

Dlaczego odpowiedź C jest błędna?

W odpowiedzi C użyto składni `FROM Mieszkancy, Adresy ON ...`, która jest niepoprawna. Warunek `ON` stosuje się przy `JOIN`.

Czy w tym zapytaniu można użyć INNER JOIN zamiast JOIN?

Tak. W większości systemów SQL zapis `JOIN` oznacza domyślnie `INNER JOIN`, więc oba zapisy dadzą ten sam wynik.

Co oznacza kod HTTP 404?

Kod 404 oznacza, że serwer działa, ale nie znalazł zasobu pod podanym adresem URL. Jest to błąd z grupy 4xx, czyli błąd po stronie klienta.

Czym różnią się błędy HTTP 4xx od błędów 5xx?

Kody 4xx oznaczają problemy związane z żądaniem klienta, np. błędny adres lub brak uprawnień. Kody 5xx oznaczają problemy po stronie serwera.

Kiedy serwer zwraca kod 400 Bad Request?

Kod 400 jest zwracany, gdy żądanie klienta ma niepoprawną składnię lub zawiera dane, których serwer nie może przetworzyć.

Co oznacza kod HTTP 500?

Kod 500 Internal Server Error oznacza wewnętrzny błąd serwera. Problem nie wynika bezpośrednio z błędnego adresu, lecz z działania aplikacji lub konfiguracji serwera.

W jakiej sytuacji może pojawić się kod HTTP 503?

Kod 503 Service Unavailable oznacza, że usługa jest chwilowo niedostępna. Może to wynikać z przeciążenia serwera albo prac technicznych.

Czy błąd 404 oznacza awarię całego serwera?

Nie. Błąd 404 oznacza tylko, że wskazany zasób nie został znaleziony, ale sam serwer może działać poprawnie.

Co oznacza typ bool w języku C++?

Typ `bool` przechowuje wartość logiczną: `true` oznacza prawdę, a `false` oznacza fałsz.

Jaką wartość wypisze cout dla zmiennej bool ustawionej na true?

Domyślnie `cout` wypisze `1`, ponieważ wartość `true` jest reprezentowana liczbowo jako 1.

Jaką wartość wypisze cout dla zmiennej bool ustawionej na false?

Domyślnie `cout` wypisze `0`, ponieważ wartość `false` jest reprezentowana liczbowo jako 0.

Czy cout wypisuje dla typu bool słowa Tak i Nie?

Nie. `cout` domyślnie wypisuje wartości logiczne jako `1` albo `0`, a nie jako polskie słowa `Tak` i `Nie`.

Do czego służy operator << przy cout?

Operator `<<` przekazuje dane do strumienia wyjścia, czyli pozwala wypisać je na ekranie.

Jak wypisać wartość bool jako true albo false zamiast 1 albo 0?

Należy użyć manipulatora `boolalpha`, np. `cout << boolalpha << gotowe;`.

Dlaczego w podanym kodzie wynikiem nie jest słowo true?

Ponieważ bez `boolalpha` strumień `cout` konwertuje wartość logiczną na postać liczbową: `true` na `1`, a `false` na `0`.

Do czego służy funkcja define() w PHP?

Funkcja `define()` służy do definiowania stałych. Przykład `define("OSOBA", "Anna Kowalska");` tworzy stałą `OSOBA` o podanej wartości.

Czym różni się stała od zmiennej w PHP?

Zmienna w PHP zaczyna się od znaku `$`, np. `$osoba`, i jej wartość można zmieniać. Stała nie ma znaku `$` i po zdefiniowaniu przechowuje stałą wartość.

Jak odwołać się do stałej zdefiniowanej przez define()?

Do stałej odwołujemy się przez jej nazwę, bez znaku dolara. Dla `define("OSOBA", "Anna Kowalska");` poprawny zapis to `echo OSOBA;`.

Dlaczego odpowiedź o przypisaniu wartości do zmiennej $OSOBA jest błędna?

Ponieważ w kodzie nie występuje zmienna `$OSOBA`. Zapis `define("OSOBA", ...)` definiuje stałą `OSOBA`, a nie zmienną.

Czy define() porównuje ciągi znaków?

Nie. Funkcja `define()` nie służy do porównywania tekstów, tylko do tworzenia stałych. Do porównywania używa się operatorów, np. `==`, `===` lub funkcji tekstowych.

Jaka jest różnica między define() a const w PHP?

Oba mechanizmy mogą tworzyć stałe. `define()` jest funkcją, a `const` jest konstrukcją języka, np. `const OSOBA = "Anna Kowalska";`.

Czym jest typ wyliczeniowy enum w C++?

`enum` to typ pozwalający zdefiniować zestaw nazwanych stałych całkowitych. Ułatwia zapisywanie wartości takich jak dni tygodnia, statusy lub tryby pracy programu.

Jaką wartość ma pierwszy element enum, jeśli nie przypisano mu wartości?

Domyślnie pierwszy enumerator ma wartość `0`. Każdy następny otrzymuje wartość większą o `1`.

Co się stanie, jeśli pierwszemu elementowi enum przypiszemy wartość 1?

Pierwszy element będzie miał wartość `1`, a kolejne automatycznie `2`, `3`, `4` itd. W przykładzie `PONIEDZIALEK = 1`, `CZWARTEK` ma wartość `4`.

Czy nazwa enumeratora w C++ jest napisem?

Nie. Enumerator, np. `CZWARTEK`, jest nazwą stałej liczbowej, a nie tekstem typu string.

Do czego praktycznie używa się enum w programach?

`enum` stosuje się do reprezentowania ograniczonego zbioru wartości, np. dni tygodnia, stanów gry, statusów użytkownika lub typów komunikatów.

Jak obliczyć wartość dowolnego enumeratora w enum?

Należy zacząć od pierwszej jawnie podanej wartości albo od `0`, jeśli jej nie podano. Potem kolejne enumeratory zwiększają się o `1`, chyba że któryś z nich ma przypisaną inną wartość.

Dlaczego element <title> jest wymagany w dokumencie HTML?

Element <title> określa tytuł dokumentu widoczny m.in. na karcie przeglądarki i w wynikach wyszukiwania. W poprawnym dokumencie HTML powinien znajdować się w sekcji <head>.

Czy brak elementu <link> powoduje błąd walidacji HTML?

Nie. Element <link> jest używany np. do podłączania arkuszy CSS, ale nie jest obowiązkowy w każdym dokumencie HTML.

Czy dokument HTML musi zawierać nagłówek <h1>?

Nie jest to bezwzględny wymóg walidatora HTML. Nagłówek <h1> jest jednak zalecany ze względów semantycznych, dostępności i SEO.

Czy <meta name="author"> jest obowiązkowym elementem strony?

Nie. Ten znacznik może informować o autorze dokumentu, ale jego brak nie powoduje błędu walidacji HTML.

W której części dokumentu HTML umieszcza się element <title>?

Element <title> umieszcza się wewnątrz sekcji <head>. Nie powinien znajdować się w części <body>.

Jaka jest różnica między błędem walidacji a zaleceniem dobrych praktyk?

Błąd walidacji oznacza niezgodność ze standardem HTML. Dobra praktyka, np. stosowanie jednego głównego <h1>, może być zalecana, ale jej brak nie zawsze oznacza niepoprawny kod.

Do czego służy właściwość CSS float przy układaniu bloków na stronie?

Właściwość `float` powoduje opływanie elementu przez kolejne elementy i pozwala ustawić bloki obok siebie, np. po lewej lub prawej stronie kontenera.

Dlaczego w pokazanym układzie bloki 2, 3 i 4 powinny mieć ustawione float?

Bloki 2, 3 i 4 tworzą środkową część układu, w której elementy są ustawione obok siebie lub w kolumnach. `float` pozwala im nie zajmować automatycznie całej szerokości wiersza.

Jaką rolę pełni właściwość clear dla bloku 5?

`clear` sprawia, że blok 5 nie ustawia się obok elementów pływających, tylko zaczyna się poniżej nich. Dzięki temu tworzy dolny pasek układu.

Co może się stać, jeśli blok 5 nie otrzyma właściwości clear?

Blok 5 może zostać ustawiony obok wcześniejszych elementów z `float` albo wejść w nieoczekiwane miejsce układu. Strona nie będzie miała poprawnej struktury stopki.

Jaka jest różnica między float a clear w CSS?

`float` przesuwa element do lewej lub prawej strony i pozwala innym elementom go opływać. `clear` zabrania elementowi ustawiania się obok elementów pływających.

Dlaczego blok 1 nie wymaga właściwości float w tym układzie?

Blok 1 jest górnym paskiem zajmującym pełną szerokość strony. Jako zwykły element blokowy naturalnie układa się nad kolejnymi sekcjami.

Czy obecnie float jest najlepszą metodą budowania układów stron?

Nie. `float` historycznie stosowano do układów kolumnowych, ale obecnie częściej używa się Flexboxa lub CSS Grid. Na egzaminie INF.03 nadal trzeba jednak znać działanie `float` i `clear`.

Do czego służy metoda getElementsByClassName() w JavaScript?

Służy do pobierania z dokumentu HTML elementów, które mają określoną klasę. Wynikiem jest kolekcja elementów pasujących do podanej nazwy klasy.

Czym różni się atrybut class od atrybutu id w HTML?

`class` może być przypisana do wielu elementów, a `id` powinno wskazywać jeden unikalny element. Do klas używa się m.in. `getElementsByClassName()`, a do identyfikatora `getElementById()`.

Co zwraca metoda getElementsByClassName()?

Zwraca obiekt `HTMLCollection`, czyli kolekcję elementów HTML. Aby odwołać się do konkretnego elementu, używa się indeksu, np. `[0]`.

Czy getElementsByClassName('akapit') znajdzie element <p>akapit</p>?

Nie. Ta metoda nie szuka tekstu wewnątrz znacznika, tylko wartości atrybutu `class`.

Czy getElementsByClassName('akapit') znajdzie element z id='akapit'?

Nie. Atrybut `id` jest obsługiwany przez inną metodę: `getElementById('akapit')`.

Jak poprawnie oznaczyć akapit klasą akapit w HTML?

Należy użyć atrybutu `class`, np. `<p class="akapit">Treść</p>`. Taki element zostanie znaleziony przez `getElementsByClassName('akapit')`.

Dlaczego walidację w czasie rzeczywistym najczęściej wykonuje się w JavaScript?

JavaScript działa w przeglądarce użytkownika, więc może natychmiast reagować na wpisywane dane. Nie trzeba czekać na wysłanie formularza do serwera.

Dlaczego zapis danych do bazy wykonuje się w PHP lub innym języku serwerowym?

Połączenie z bazą danych powinno odbywać się po stronie serwera, gdzie można bezpiecznie przechowywać dane dostępowe i wykonywać zapytania SQL.

Czy walidacja w JavaScript wystarczy do zabezpieczenia formularza?

Nie. Walidacja w JavaScript poprawia wygodę użytkownika, ale dane trzeba sprawdzić także po stronie serwera, ponieważ walidację w przeglądarce można ominąć.

Jak dane z formularza HTML trafiają do skryptu PHP?

Formularz ma atrybuty `method` i `action`. Przy metodzie `post` PHP odbiera dane najczęściej przez tablicę `$_POST`.

Co oznacza walidacja formularza w czasie rzeczywistym?

Oznacza sprawdzanie danych podczas ich wpisywania lub zmiany, np. po każdym znaku wpisanym w polu formularza.

Jaka jest różnica między front-endem a back-endem w tym pytaniu?

Front-end to część działająca w przeglądarce, np. HTML i JavaScript. Back-end to część działająca na serwerze, np. PHP zapisujący dane do bazy.

Czy JavaScript może uczestniczyć w przesyłaniu danych do serwera?

Tak, np. przez AJAX lub fetch, ale nadal dane trafiają do skryptu po stronie serwera. Sam JavaScript w przeglądarce nie powinien zapisywać danych bezpośrednio w bazie.

Do czego służy znacznik <ul> w HTML?

Znacznik <ul> tworzy listę nieuporządkowaną, czyli listę punktowaną. Jej elementy zapisuje się za pomocą znaczników <li>.

Jaką rolę pełni znacznik <li>?

Znacznik <li> oznacza pojedynczy element listy. Może występować wewnątrz listy <ul> lub <ol>.

Czym różni się lista <ul> od listy <ol>?

<ul> tworzy listę punktowaną, w której kolejność elementów zwykle nie jest istotna. <ol> tworzy listę numerowaną, używaną wtedy, gdy kolejność ma znaczenie.

Dlaczego odpowiedzi <tr>, <th> i <td> nie są poprawne?

Te znaczniki służą do budowy tabel. <tr> oznacza wiersz tabeli, <th> komórkę nagłówkową, a <td> zwykłą komórkę danych.

Jak wygląda poprawny przykład listy punktowanej w HTML?

Poprawna lista punktowana ma znacznik <ul>, a w nim elementy <li>, np. <ul><li>Punkt 1</li><li>Punkt 2</li></ul>.

Czy wygląd punktorów listy <ul> można zmienić?

Tak. Wygląd punktorów można zmienić za pomocą CSS, np. właściwości list-style-type albo list-style-image.