Pytania pomocnicze - INF.04
Projektowanie, programowanie i testowanie aplikacji
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: 3704.
Strona 21 z 50.
Co oznacza zdarzenie submit w formularzu HTML?
Zdarzenie submit oznacza próbę wysłania formularza przez użytkownika. Może zostać wywołane kliknięciem przycisku wysyłającego lub naciśnięciem Enter w polu formularza.
Jak Angular obsługuje wysłanie formularza w pokazanym przykładzie?
Angular używa `(ngSubmit)="submit(f)"`, czyli po wysłaniu formularza wywołuje metodę `submit` i przekazuje do niej referencję do formularza `f`.
Jaką rolę pełni `#f="ngForm"` w formularzu Angular?
Tworzy lokalną referencję do formularza Angulara. Dzięki niej można przekazać formularz do metody i odczytać jego wartości przez `f.value`.
Po co w React używa się `e.preventDefault()` przy obsłudze formularza?
Zapobiega domyślnemu zachowaniu przeglądarki, czyli przeładowaniu strony po wysłaniu formularza. Dzięki temu aplikacja może obsłużyć dane po stronie JavaScriptu.
Dlaczego pokazany kod nie oznacza odczytu danych w czasie rzeczywistym?
Dane są odczytywane dopiero w chwili wysłania formularza, czyli przy zdarzeniu submit. Odczyt w czasie rzeczywistym wymagałby np. obsługi zdarzenia `input`, `change` lub aktualizacji stanu przy każdej zmianie pola.
Jaką funkcję pełni `console.log()` w obu fragmentach kodu?
Służy do wypisania danych w konsoli przeglądarki. Nie zapisuje danych do bazy ani nie wypełnia formularza.
Czym różni się `(ngSubmit)` w Angularze od `onSubmit` w React?
Oba mechanizmy służą do obsługi wysłania formularza, ale należą do różnych frameworków. Angular używa składni szablonowej `(ngSubmit)`, a React używa JSX i atrybutu `onSubmit`.
Dlaczego nie można utworzyć instancji klasy abstrakcyjnej?
Klasa abstrakcyjna jest niepełnym wzorcem dla klas pochodnych. Może zawierać metody bez implementacji, dlatego nie da się bezpośrednio utworzyć jej obiektu.
Do czego służy klasa abstrakcyjna w programowaniu obiektowym?
Służy do definiowania wspólnych cech i zachowań dla klas pochodnych. Pozwala wymusić implementację wybranych metod w klasach dziedziczących.
Czy klasa abstrakcyjna może mieć pola?
Tak, klasa abstrakcyjna może mieć pola, także publiczne, choć ze względu na hermetyzację zwykle zaleca się ograniczanie dostępu do pól.
Czy klasa abstrakcyjna może być dziedziczona?
Tak, klasy abstrakcyjne są przeznaczone do dziedziczenia. Klasa pochodna może rozszerzać klasę abstrakcyjną i implementować jej metody abstrakcyjne.
Czym różni się klasa abstrakcyjna od zwykłej klasy?
Zwykłą klasę można bezpośrednio instancjonować, a klasy abstrakcyjnej nie. Klasa abstrakcyjna może też zawierać metody abstrakcyjne, które muszą zostać zaimplementowane w klasie pochodnej.
Czy klasa abstrakcyjna może zawierać metody z implementacją?
Tak, klasa abstrakcyjna może zawierać zarówno metody abstrakcyjne bez implementacji, jak i zwykłe metody z gotowym kodem.
Co oznacza utworzenie instancji klasy?
Utworzenie instancji oznacza stworzenie konkretnego obiektu na podstawie definicji klasy, np. przez użycie operatora new w wielu językach programowania.
Do czego służy kontrolka Stepper w aplikacji mobilnej?
Stepper służy do zwiększania lub zmniejszania wartości liczbowej, zwykle za pomocą przycisków `+` i `-`. Może mieć ustawione minimum, maksimum oraz krok zmiany.
Dlaczego do obsługi Steppera używa się zdarzenia ValueChanged?
Ponieważ `ValueChanged` jest wywoływane dokładnie wtedy, gdy zmieni się wartość kontrolki. Dzięki temu można natychmiast zapisać nową wartość do zmiennej.
Czym różni się ValueChanged od Unfocused?
`ValueChanged` reaguje na zmianę wartości, a `Unfocused` na utratę aktywności przez kontrolkę. `Unfocused` nie gwarantuje reakcji przy każdej zmianie wartości.
Czym różni się ValueChanged od SizeChanged?
`SizeChanged` dotyczy zmiany rozmiaru kontrolki, np. szerokości lub wysokości. Nie służy do monitorowania wartości liczbowej Steppera.
Jak można przechowywać aktualną wartość Steppera w zmiennej?
W obsłudze zdarzenia `ValueChanged` należy przypisać do zmiennej nową wartość, np. `aktualnaWartosc = e.NewValue;`.
Co oznacza programowanie zdarzeniowe w kontekście kontrolek interfejsu?
Programowanie zdarzeniowe polega na tym, że aplikacja reaguje na akcje użytkownika lub zmiany stanu kontrolek. Przykładem jest wykonanie metody po zmianie wartości Steppera.
Dlaczego spokój jest ważną cechą dobrego negocjatora?
Spokój pozwala racjonalnie oceniać sytuację, kontrolować emocje i unikać pochopnych decyzji. Dzięki temu negocjator łatwiej dochodzi do porozumienia.
Jakich zachowań powinien unikać negocjator podczas rozmów?
Negocjator powinien unikać przechwalania się, agresji, lekceważenia drugiej strony oraz myślenia wyłącznie o własnym interesie.
Jak aktywne słuchanie pomaga w negocjacjach?
Aktywne słuchanie pozwala lepiej zrozumieć potrzeby i argumenty drugiej strony. Ułatwia znalezienie rozwiązania korzystnego dla obu stron.
Czy pewność siebie jest potrzebna negocjatorowi?
Tak, ale powinna być połączona z opanowaniem i szacunkiem. Brak pewności może osłabić pozycję negocjatora, a nadmierna pewność może zostać odebrana jako arogancja.
Jak komunikacja niewerbalna wpływa na przebieg negocjacji?
Postawa ciała, mimika, kontakt wzrokowy i ton głosu mogą wzmacniać lub osłabiać przekaz. Spokojna i otwarta komunikacja niewerbalna buduje zaufanie.
Co oznacza wykonanie polecenia `git init` w katalogu projektu?
Oznacza utworzenie nowego lokalnego repozytorium Git w tym katalogu. Git tworzy folder `.git` i od tego momentu może śledzić historię zmian projektu.
Czy `git init` automatycznie zapisuje pliki projektu w historii?
Nie. `git init` tylko inicjalizuje repozytorium, a pliki trzeba osobno dodać przez `git add` i zatwierdzić przez `git commit`.
Do czego służy polecenie `git add .`?
Dodaje wszystkie zmiany z bieżącego katalogu i jego podkatalogów do obszaru przygotowania. Dzięki temu mogą zostać uwzględnione w najbliższym commicie.
Co oznacza obszar przygotowania w Git?
Obszar przygotowania to miejsce, w którym Git przechowuje listę zmian wybranych do następnego commita. Trafiają tam pliki dodane poleceniem `git add`.
Co robi polecenie `git commit -m 'first commit'`?
Tworzy commit, czyli zapisuje przygotowane zmiany w historii repozytorium. Tekst `first commit` jest komunikatem opisującym ten commit.
Czy `first commit` jest nazwą repozytorium albo archiwum?
Nie. `first commit` to tylko wiadomość commita, czyli opis zapisanej rewizji projektu.
Czym różni się `git init` od `git clone`?
`git init` tworzy nowe puste repozytorium w istniejącym folderze. `git clone` pobiera kopię już istniejącego repozytorium, najczęściej z serwera zdalnego.
Jaka jest typowa kolejność rozpoczęcia pracy z projektem w Git?
Najpierw wykonuje się `git init`, potem `git add .`, a następnie `git commit -m 'opis'`. Taki ciąg poleceń tworzy repozytorium i zapisuje pierwszą wersję projektu.
Do czego służy algorytm Euklidesa?
Algorytm Euklidesa służy do obliczania Największego Wspólnego Dzielnika dwóch liczb naturalnych.
Jak rozpoznać algorytm Euklidesa na schemacie blokowym?
Typowe elementy to wczytanie dwóch liczb, porównywanie ich oraz powtarzanie odejmowania większej liczby od mniejszej aż do momentu, gdy obie liczby będą równe.
Czym różni się NWD od NWW?
NWD to największa liczba dzieląca dane liczby bez reszty. NWW to najmniejsza liczba, która jest wielokrotnością danych liczb.
Dlaczego w algorytmie Euklidesa można odejmować mniejszą liczbę od większej?
Odejmowanie nie zmienia wspólnych dzielników obu liczb. Dzięki temu po kolejnych krokach dochodzi się do tej samej wartości, która jest NWD.
Jaka jest różnica między wersją algorytmu Euklidesa przez odejmowanie a wersją z modulo?
Wersja przez odejmowanie wykonuje kolejne różnice liczb. Wersja z modulo używa reszty z dzielenia i zwykle działa szybciej.
Co oznacza warunek a = b w schemacie algorytmu Euklidesa?
Oznacza zakończenie obliczeń. Gdy obie liczby są równe, ta wspólna wartość jest Największym Wspólnym Dzielnikiem.
Czy algorytm Euklidesa służy do znajdowania liczb pierwszych?
Nie. Algorytm Euklidesa oblicza NWD dwóch liczb, a nie sprawdza pierwszości ani nie wyszukuje liczb pierwszych.
Po czym rozpoznać poprawną definicję interfejsu w Javie?
Poprawny interfejs używa słowa kluczowego `interface` i zawiera zwykle deklaracje metod bez ciał. Metody kończą się średnikiem, np. `void mth1();`.
Dlaczego Definicja 4 jest poprawna?
Zawiera wyłącznie deklaracje metod bez implementacji: `void mth1();` oraz `int mth2();`. To klasyczny zapis metod w interfejsie Javy.
Dlaczego zapis `private:` jest błędny w interfejsie Javy?
`private:` to składnia znana z C++, a nie z Javy. W Javie modyfikator dostępu zapisuje się przed elementem, np. `private int a;`.
Czy interfejs w Javie może mieć konstruktor?
Nie. Interfejsu nie tworzy się przez `new` jak zwykłej klasy, więc nie definiuje się w nim konstruktora.
Jakie modyfikatory mają domyślnie metody w interfejsie?
Zwykłe metody zadeklarowane w interfejsie są domyślnie `public abstract`. Oznacza to, że klasa implementująca musi je zdefiniować jako publiczne.
Czy interfejs w Javie może zawierać pola?
Może zawierać tylko stałe, które są domyślnie `public static final`. Nie deklaruje się w nim zwykłych prywatnych pól obiektu, takich jak `private int a;`.
Jak klasa korzysta z interfejsu w Javie?
Klasa używa słowa kluczowego `implements`, np. `class MyClass implements IMyInterface`. Następnie musi zaimplementować wszystkie wymagane metody interfejsu.
Czy metoda w interfejsie może mieć ciało?
W nowoczesnej Javie tak, ale musi być np. metodą `default`, `static` albo prywatną metodą pomocniczą. Zwykła metoda z ciałem zapisana bez takiego modyfikatora jest błędna.
Czym jest wzorzec projektowy Fasada?
Fasada to wzorzec strukturalny, który udostępnia prosty interfejs do złożonego systemu klas lub modułów. Ułatwia korzystanie z systemu bez znajomości jego szczegółów.
Do jakiej grupy wzorców projektowych należy Fasada?
Fasada należy do wzorców strukturalnych, ponieważ dotyczy organizacji i powiązań między klasami oraz obiektami.
Jaki problem rozwiązuje wzorzec Fasada?
Rozwiązuje problem zbyt skomplikowanego dostępu do wielu klas podsystemu. Kod klienta korzysta z jednej uproszczonej klasy zamiast wielu elementów naraz.
Czym Fasada różni się od Dekoratora?
Fasada upraszcza dostęp do systemu, natomiast Dekorator dynamicznie rozszerza funkcjonalność pojedynczego obiektu bez zmiany jego klasy.
Czym Fasada różni się od Kompozytu?
Kompozyt pozwala traktować pojedyncze obiekty i ich grupy w jednolity sposób. Fasada natomiast tworzy prosty interfejs do złożonego podsystemu.
Czym Fasada różni się od Prototypu?
Prototyp jest wzorcem kreacyjnym i służy do tworzenia obiektów przez klonowanie istniejących. Fasada jest wzorcem strukturalnym i upraszcza korzystanie z systemu.
Czy Fasada ukrywa całkowicie klasy podsystemu?
Nie zawsze. Fasada zwykle udostępnia wygodniejszy interfejs, ale nie musi blokować bezpośredniego dostępu do klas podsystemu.
Jakie objawy są charakterystyczne dla zespołu cieśni kanału nadgarstka?
Typowe objawy to ból, drętwienie, mrowienie oraz zaburzenia czucia w obrębie kciuka, palca wskazującego i środkowego. Może też wystąpić osłabienie chwytu dłoni.
Dlaczego długotrwała praca przy klawiaturze i myszce może sprzyjać tej dolegliwości?
Powtarzalne ruchy i nieprawidłowe ułożenie nadgarstka mogą powodować przeciążenie oraz ucisk nerwu pośrodkowego. Ryzyko rośnie przy braku przerw i złej ergonomii stanowiska.
Które palce są określane jako palce 1-3 dłoni?
Palec 1 to kciuk, palec 2 to palec wskazujący, a palec 3 to palec środkowy. Zaburzenia czucia w tych palcach są typowe dla zespołu cieśni kanału nadgarstka.
Jak można zapobiegać zespołowi cieśni kanału nadgarstka podczas pracy programisty?
Należy dbać o neutralne ułożenie nadgarstków, robić regularne przerwy, stosować ergonomiczną myszkę i klawiaturę oraz wykonywać ćwiczenia rozluźniające dłonie.
Czym zespół cieśni kanału nadgarstka różni się od zespołu suchego oka?
Zespół cieśni kanału nadgarstka dotyczy dłoni i nadgarstka, a zespół suchego oka dotyczy narządu wzroku. Suche oko objawia się pieczeniem, suchością i zmęczeniem oczu.
Czym zespół cieśni kanału nadgarstka różni się od kifozy?
Kifoza to wada lub nadmierne wygięcie kręgosłupa, zwykle w odcinku piersiowym. Zespół cieśni kanału nadgarstka dotyczy ucisku nerwu w nadgarstku.
Dlaczego ergonomia stanowiska pracy jest ważna w zawodzie programisty?
Programista spędza wiele godzin w pozycji siedzącej, często wykonując powtarzalne ruchy. Dobra ergonomia zmniejsza ryzyko bólu pleców, problemów ze wzrokiem i przeciążeń dłoni.
Do czego służy typ boolean w programowaniu?
Typ boolean służy do przechowywania wartości logicznej: prawdy albo fałszu. Najczęściej wykorzystuje się go w warunkach, pętlach i wynikach porównań.
Jakie dwie wartości może przyjąć zmienna typu boolean?
Zmienna typu boolean może przyjąć wartości `true` albo `false`. Oznaczają one odpowiednio prawdę i fałsz.
Czy liczby 0 i 1 zawsze są wartościami typu boolean?
Nie zawsze. W niektórych językach liczby mogą być interpretowane jako fałsz lub prawda, ale właściwe wartości typu boolean to zwykle `true` i `false`.
Gdzie najczęściej stosuje się zmienne boolean?
Stosuje się je np. w instrukcjach `if`, pętlach `while`, walidacji danych oraz jako flagi informujące, czy jakiś warunek został spełniony.
Czym jest flaga logiczna w programie?
Flaga logiczna to zmienna boolean używana do zapamiętania stanu, np. `czyZalogowany = true` albo `czyBlad = false`.