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: 25 czerwca 2026 11:00
  • Data zakończenia: 25 czerwca 2026 11:18

Egzamin zdany!

Wynik: 33/40 punktów (82,5%)

Wymagane minimum: 20 punktów (50%)

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

Zasłanianie niektórych pól lub metod obiektów danej klasy w sposób, który umożliwia dostęp wyłącznie wewnętrznym metodom tej klasy lub funkcjom zaprzyjaźnionym, to

A. konkatenacja
B. hermetyzacja
C. dziedziczenie
D. polimorfizm
Hermetyzacja, znana także jako enkapsulacja, to fundamentalna zasada programowania obiektowego, która polega na ukrywaniu wewnętrznych stanów obiektu oraz metod, które te stany modyfikują. Dzięki hermetyzacji, programista może zdefiniować publiczne interfejsy, przez które inne części kodu mogą komunikować się z danym obiektem, przy jednoczesnym zabezpieczeniu wewnętrznych implementacji przed nieautoryzowanym dostępem lub modyfikacją. Przykładem hermetyzacji może być klasa `BankAccount`, która przechowuje saldo konta jako prywatne pole. Umożliwia dostęp do salda tylko przez publiczne metody, takie jak `deposit` i `withdraw`, co zapobiega bezpośredniemu modyfikowaniu salda przez zewnętrzny kod. W standardach programowania, hermetyzacja jest kluczowym elementem zwiększającym bezpieczeństwo i stabilność aplikacji, ponieważ pozwala na modyfikacje wewnętrznej logiki bez wpływu na kod zależny od tego obiektu. Hermetyzacja jest także jednym z podstawowych filarów programowania obiektowego, obok dziedziczenia i polimorfizmu, co czyni ją niezbędną do zrozumienia bardziej złożonych koncepcji w programowaniu.

Pytanie 2

Skrypt stworzony w języku JavaScript wyznacza cenę promocyjną dla swetrów w barwach: zielonej, niebieskiej (zmienna kolor) przy wydatkach przekraczających 200 zł (zmienna zakupy). Warunek niezbędny do obliczeń powinien być zapisany z użyciem wyrażenia logicznego?

A. zakupy > 200 && (kolor == 'zielony' || kolor == 'niebieski')
B. zakupy > 200 || kolor == 'zielony' || kolor == 'niebieski'
C. zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski')
D. zakupy > 200 && kolor == 'zielony' && kolor == 'niebieski'
Odpowiedź zakupy > 200 && (kolor == 'zielony' || kolor == 'niebieski') jest poprawna, ponieważ dokładnie spełnia warunki opisane w pytaniu. Wyrażenie logiczne składa się z dwóch głównych części: sprawdzenia, czy wartość zmiennej zakupy jest większa niż 200 oraz sprawdzenia, czy zmienna kolor jest równa 'zielony' lub 'niebieski'. Użycie operatora logicznego '&&' (AND) w połączeniu z '||' (OR) pozwala na zdefiniowanie warunków, które muszą być spełnione, aby uzyskać cenę promocyjną. Przykładowo, jeśli użytkownik kupi sweter za 250 zł w kolorze zielonym, warunek będzie prawdziwy, a cena promocyjna zostanie zastosowana. W kontekście standardów programistycznych, taka konstrukcja jest zgodna z najlepszymi praktykami pisania czytelnego i efektywnego kodu w JavaScript, gdzie zrozumiałość i logika wyrażeń warunkowych są kluczowe dla utrzymania i rozwoju aplikacji.

Pytanie 3

Do jakich liczb odnosi się typ int?

A. stałoprzecinkowych
B. naturalnych
C. zmiennoprzecinkowych
D. całkowitych
Typ int przechowuje liczby CAŁKOWITE - dodatnie, ujemne i zero, bez części ułamkowej (np. -3, 0, 42). Dlatego int odnosi się do liczb całkowitych.

Pytanie 4

Który modyfikator dostępu daje dostęp do pola w obrębie klasy oraz w klasach dziedziczących (a nie z zewnątrz)?

A. chroniony
B. opublikowany
C. publiczny
D. prywatny
Pozostałe modyfikatory dają inny zakres dostępu lub nie istnieją. Publiczny (public) otwiera pole zewsząd - również dla kodu spoza klasy, więc jest za szeroki w stosunku do pytania. Prywatny (private) działa odwrotnie: zamyka dostęp wyłącznie w jednej klasie, tak że nie sięgną do pola nawet klasy dziedziczące. „Opublikowany” nie jest standardowym kwalifikatorem dostępu. Dostęp w klasie i klasach dziedziczących zapewnia modyfikator chroniony (protected), dlatego to on jest poprawny.

Pytanie 5

Który operator w PHP oznacza sumę logiczną (logiczne LUB)?

A.
&&
B.
||
C.
!
D.
+
Sumę logiczną (logiczne LUB) zapisuje się w PHP operatorem || - wyrażenie jest prawdziwe, gdy CHOĆ JEDEN warunek jest spełniony, np. ($wiek < 7) || ($wiek > 65). Działa „leniwie”: jeśli pierwszy warunek jest prawdą, drugiego już nie sprawdza. Zapamiętaj: || to „lub” (wystarczy jeden), a && to „i” (oba naraz).

Pytanie 6

Po wykonaniu instrukcji języka JavaScript  x = Math.ceil(2.4); wartość zmiennej x będzie wynosić

A. 3
B. 8
C. 2
D. 4
W tym zadaniu najczęstszy problem polega na pomyleniu różnych sposobów zaokrąglania liczb w JavaScript. Wiele osób odruchowo myśli o zwykłym zaokrąglaniu matematycznym i zakłada, że 2.4 powinno zostać zaokrąglone do 2, bo jest bliżej dwójki niż trójki. To byłoby prawdziwe dla Math.round(2.4), ale nie dla Math.ceil(2.4). I tu jest cały haczyk.
Math.ceil() nie patrzy, czy liczba jest bliżej niższego czy wyższego całkowitego. Ta funkcja zawsze zaokrągla w górę, czyli w stronę dodatniej nieskończoności. Jeżeli mamy 2.0001, 2.4 czy 2.9 – w każdym z tych przypadków Math.ceil() zwróci 3. Jedynie gdy liczba jest już całkowita, np. 2.0, wynik pozostanie 2. Odpowiedź 2 wynika więc z błędnego założenia, że ceil działa jak klasyczne „zaokrąglanie w dół przy małej części ułamkowej”. Tymczasem do zaokrąglania w dół służy Math.floor(), która z 2.4 zrobiłaby 2.
Zdarza się też, że ktoś mechanicznie przeskakuje o „więcej niż jedną” jednostkę i wybiera 4 albo nawet 8, jakby ceil miał coś wspólnego z podwajaniem wartości albo jakimś magicznym przeskokiem. To już kompletnie nie ma uzasadnienia w definicji funkcji. Math.ceil() nie skaluje liczby, nie mnoży jej, nie patrzy na „odległość” od kolejnych całkowitych, tylko wybiera najbliższą liczbę całkowitą większą lub równą podanej wartości.
Z mojego doświadczenia taki błąd często wynika z mieszania w głowie kilku funkcji naraz: ceil, floor, round, czasem jeszcze parseInt. Dobra praktyka jest taka, żeby kojarzyć je kierunkowo: floor – w dół, ceil – w górę, round – do najbliższej. W codziennym programowaniu webowym ma to ogromne znaczenie, np. przy paginacji, gdzie zazwyczaj właśnie Math.ceil() liczy liczbę stron, bo nie możesz obciąć „końcówki” wyników. Jeśli zaokrąglisz w dół, użytkownik straci część danych. Jeżeli zrozumiesz dokładnie różnicę między tymi funkcjami, takie pytania nie będą sprawiały żadnego problemu.

Pytanie 7

Wskaż zdanie, które jest fałszywe w odniesieniu do poniższej definicji funkcji w języku C++?

void zamien(float &x, float &y) {
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja ma dwa argumenty
B. Funkcja zwraca wartość
C. Funkcja korzysta z parametrów przez referencję
D. Funkcja nie zwraca żadnej wartości
Funkcja w języku C++ z deklaracją 'void' na początku oznacza, że nie zwraca żadnej wartości. Jest to zgodne z poprawną odpowiedzią nr 3. Tego typu funkcje używane są często w sytuacjach, gdy nie jest konieczne przekazywanie wyniku, a operacje są wykonywane na danych wejściowych. Deklaracja parametrów przez referencję 'float &x, float &y' pozwala na bezpośrednią modyfikację wartości przekazanych do funkcji zmiennych. Oznacza to, że wszelkie zmiany dokonane na tych parametrach wewnątrz funkcji są odzwierciedlane w zmiennych oryginalnych. Taka technika jest szeroko stosowana w programowaniu, aby zwiększyć efektywność i zmniejszyć ilość niepotrzebnych kopii danych. Funkcja 'zamien' ilustruje wymianę wartości dwóch zmiennych przy użyciu tymczasowej zmiennej 'tmp', co jest klasycznym podejściem do tego problemu programistycznego. Zachowanie funkcji bez zwracania wartości jest zgodne z zasadami projektowania funkcji użytkowych, które realizują pewne operacje proceduralne na danych. Stosowanie referencji zwiększa kontrolę nad pamięcią i wydajność programu, co jest krytyczne w aplikacjach o wysokiej wydajności. Zrozumienie tego aspektu jest istotne dla prawidłowego biegu programu i efektywnego zarządzania zasobami.

Pytanie 8

Program napisany w języku PHP ma na celu wyliczenie średniej pozytywnych ocen ucznia w zakresie od 2 do 6. Warunek doboru ocen w pętli obliczającej średnią powinien zawierać wyrażenie logiczne

A. $ocena > 2 and $ocena < 6
B. $ocena > 2 or $ocena < 6
C. $ocena >= 2 and $ocena <= 6
D. $ocena >= 2 or $ocena <= 6
Wybrana odpowiedź jest poprawna, ponieważ warunek '$ocena >= 2 and $ocena <= 6' precyzyjnie definiuje zakres ocen, które mają być brane pod uwagę przy obliczaniu średniej. Użycie operatora 'and' zapewnia, że tylko oceny mieszczące się w przedziale od 2 do 6, włącznie z obydwoma krańcami, będą uwzględnione. Przykład praktyczny to sytuacja, w której programista chciałby zrealizować system oceny uczniów, w którym dopuszczalne oceny to 2, 3, 4, 5 i 6. Gdybyśmy użyli operatora 'or', program mógłby przyjąć oceny spoza tego zakresu, co prowadziłoby do nieprawidłowych obliczeń i fałszywych wniosków. W kontekście programowania w PHP, stosowanie poprawnych warunków logicznych jest kluczowe dla zapewnienia prawidłowego działania kodu. Dobrym przykładem zastosowania takiego warunku jest pętla, która iteruje przez zestaw ocen i sumuje je, aby na końcu obliczyć średnią. Stosując odpowiednie warunki, programista może być pewny, że obliczenia są realizowane na danych, które są zgodne z wymaganiami. Warto również zauważyć, że w kontekście dobrych praktyk programistycznych, jasne definiowanie warunków logicznych pozwala na łatwiejsze zrozumienie kodu przez innych programistów oraz ułatwia jego późniejsze utrzymanie.

Pytanie 9

Jaką wartość zwróci funkcja w języku C++, jeśli parametry wynoszą a = 4 oraz b = 3?

long int fun1(int a, int b)
{
long int wynik = 1;
for (int i = 0; i < b; i++)
wynik *= a;
return wynik;
}
A. 64
B. 16
C. 12
D. 1
Funkcja fun1 w języku C++ oblicza potęgę liczby a do b. Wykorzystuje pętlę for aby przemnożyć początkową wartość 1 przez a dokładnie b razy co daje wynik a do potęgi b. W tym przypadku gdy a = 4 i b = 3 funkcja wykonuje 3 iteracje mnożąc wynik początkowo równy 1 przez 4 daje 4 następnie 16 i ostatecznie 64. To podejście ilustruje podstawowe zastosowanie pętli for w obliczeniach iteracyjnych. Takie podejście do obliczania potęg jest efektywne dla małych potęg ale dla większych wartości można rozważyć algorytmy typu exponentiation by squaring które są optymalniejsze. W programowaniu C++ pętla for jest często stosowana do zadań o z góry określonej liczbie iteracji co czyni ją idealnym wyborem dla tego problemu. Ważne jest także zrozumienie jak zmienne takie jak wynik są wykorzystywane do przechowywania stanu w trakcie iteracji co jest kluczowe w wielu algorytmach programistycznych. Takie rozumowanie i wykorzystanie pętli for jest zgodne z dobrymi praktykami programowania.

Pytanie 10

Działaniem przedstawionego kodu PHP będzie wypełnienie tablicy.

$tab = array();
for($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}
foreach ($tab as $x){
    if ($x < 0) echo "$x ";
}
A. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych.
B. kolejnymi liczbami od 0 do 9 i wypisanie ich.
C. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich.
D. kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych.
Prawidłowo zidentyfikowałeś, że kod PHP wypełni tablicę 10 losowymi wartościami, a następnie wypisze tylko te, które są wartościami ujemnymi. Jest to fundament, na którym opiera się działanie tego konkretnego fragmentu kodu. Tworzenie losowych wartości jest powszechną praktyką w programowaniu i jest wykorzystywane do testowania funkcji, symulowania danych wejściowych czy generowania unikalnych identyfikatorów. Tutaj, użycie losowości służy do stworzenia przypadkowego zestawu liczb, które następnie są filtrowane i wypisywane tylko te o wartości ujemnej. Ta technika jest przydatna, gdy chcemy przefiltrować dane według określonych kryteriów, w tym przypadku liczby ujemne. Jest to ważne nie tylko dla zrozumienia tego konkretnego pytania, ale także dla zrozumienia, jak działa programowanie i jakie są jego praktyczne zastosowania. Pamiętaj, że zrozumienie tego, co robi konkretny fragment kodu, jest kluczowe dla skutecznego programowania i debugowania.

Pytanie 11

Wskaż kod równoważny do przedstawionego kodu zapisanego językiem PHP.

$suma = 0;
for ($x = 10; $x <= 20; $x++) {
    $suma += $x;
}
Kod 1.
$suma = 0;
while ($x <= 20) {
    $suma += $x;
    $x++;
}
Kod 2.
$suma = 0;
$x = 10;
while ($x <= 20) {
    $suma += $x;
    $x++;
}
Kod 3.
$suma = 0;
$x = 1;
while ($x <= 10) {
    $suma += $x;
    $x++;
}
Kod 4.
$suma = 0;
$x = 10;
while ($x <= 20) {
    $suma = $x;
    $x++;
}
A. Kod 4.
B. Kod 3.
C. Kod 1.
D. Kod 2.
Gratulacje, Twoja odpowiedź jest poprawna! Wybrałeś Kod 2, który jest równoważny do kodu PHP przedstawionego w pytaniu. Kod ten składa się z pętli while, która jest zainicjowana wartością $x równą 10. Pętla ta jest wykonywana, aż wartość zmiennej $x osiągnie 20. Co ważne, za każdym obiegiem pętli wartość zmiennej $x jest inkrementowana, co jest równoważne do działania pętli for w kodzie PHP. Wykorzystanie różnych rodzajów pętli do osiągnięcia tego samego efektu jest dobrym przykładem na to, jak różne konstrukcje języka programowania mogą służyć do rozwiązania tego samego problemu. Pamiętaj, że wybór pętli zależy od kontekstu. Pętle for są zazwyczaj używane, kiedy z góry wiemy ile razy pętla ma być wykonana. Pętle while są często wykorzystywane, gdy nie wiemy ile razy pętla ma być wykonana, ale znamy warunek jej zakończenia. To praktyczna wiedza, którą możesz zastosować w codziennym programowaniu.

Pytanie 12

W aplikacjach webowych tablice asocjacyjne to takie tablice, w jakich

A. elementy tablicy są zawsze indeksowane od 0
B. w każdej komórce tablicy znajduje się inna tablica
C. istnieją przynajmniej dwa wymiary
D. indeks jest ciągiem znaków
Tablice asocjacyjne, znane również jako słowniki lub mapy, to struktury danych, które przechowują pary klucz-wartość, gdzie kluczem jest zazwyczaj łańcuch tekstowy. Umożliwia to dostęp do wartości na podstawie zrozumiałych identyfikatorów, co jest znacznie bardziej intuicyjne niż indeksowanie numeryczne. Przykładem zastosowania tablic asocjacyjnych może być przechowywanie informacji o użytkownikach w aplikacjach webowych, gdzie kluczem może być adres e-mail, a wartością obiekt zawierający dane użytkownika, takie jak imię, nazwisko czy wiek. W wielu językach programowania, takich jak JavaScript, Python czy PHP, tablice asocjacyjne są wbudowanymi strukturami, które pozwalają na efektywne zarządzanie danymi, ułatwiając ich przechowywanie i manipulację. W praktyce, używanie tablic asocjacyjnych poprawia czytelność kodu i jego utrzymanie, co jest zgodne z dobrymi praktykami programowania, takimi jak KISS (Keep It Simple, Stupid) i DRY (Don't Repeat Yourself).

Pytanie 13

Ile razy powtórzy się pętla w JavaScript?

var x=1, i=0;
do{
    x*=3;
    i++;
}
while(x!=27);
A. 26 razy
B. 3 razy
C. 27 razy
D. 2 razy
Błędne odpowiedzi wynikają z niepoprawnego zrozumienia działania pętli do-while oraz mechanizmu iteracji w kodzie. Częstym błędem jest założenie, że pętla wykona się tak wiele razy, jak wynosi ostateczna wartość x. Jednak w rzeczywistości, każda iteracja zwiększa x przez jego pomnożenie przez 3, a nie przez dodawanie. Począwszy od wartości 1, zmienna x przyjmuje wartości 3, 9, i 27, co oznacza, że pętla musi wykonać się trzykrotnie, zanim osiągnie wartość równą 27. Innym częstym błędem jest założenie, że pętla do-while nie różni się od standardowej pętli while. W rzeczywistości, do-while wykonuje swój blok kodu przynajmniej raz, zanim oceni warunek, co jest kluczowe dla zrozumienia, dlaczego pętla wykonuje się dokładnie tyle razy. Niewłaściwe zrozumienie tego mechanizmu może prowadzić do nadmiernego wykonywania pętli lub nieoczekiwanego zakończenia przed osiągnięciem zamierzonego celu. Dobre praktyki programistyczne wymagają dokładnego przemyślenia warunków początkowych i końcowych pętli, aby uniknąć błędów logicznych i zapewnić poprawne działanie kodu w różnych sytuacjach praktycznych, takich jak przetwarzanie danych czy iteracyjne obliczenia matematyczne.

Pytanie 14

Jaki zestaw liczb zostanie wyświetlony w wyniku działania pętli napisanej w języku PHP?

$liczba = 10;
while ($liczba < 50) {
  echo "$liczba ";
  $liczba = $liczba + 5;
}
A. 0 5 10 15 20 25 30 35 40 45 50
B. 10 15 20 25 30 35 40 45
C. 0 5 10 15 20 25 30 35 40 45
D. 10 15 20 25 30 35 40 45 50
Pytanie dotyczyło wyniku działania pętli w języku PHP co często prowadzi do nieporozumień związanych z mechaniką działania pętli iteracyjnych. Pierwsza z niepoprawnych odpowiedzi zakładała że pętla wydrukuje również liczbę 0 co jest błędem ponieważ zmienna $liczba jest inicjalizowana wartością 10 i nigdy nie osiągnie wartości mniejszej niż 10 w trakcie działania tego programu. Częstym błędem w myśleniu jest nieuwzględnianie początkowej wartości zmiennej kontrolnej co prowadzi do fałszywych założeń na temat iteracji. Kolejna błędna odpowiedź sugerowała że pętla zakończy się po wypisaniu liczby 50 jednak warunek pętli while sprawdza czy $liczba jest mniejsza od 50 co oznacza że gdy $liczba osiągnie 50 warunek będzie fałszem i pętla zakończy działanie nie wypisując tej wartości. Ostatecznie inna opcja błędnie zakładała wypisanie liczby 0 co jak wcześniej wspomniano jest niemożliwe w kontekście tej konkretnej pętli. Aby uniknąć takich błędów należy zawsze dokładnie analizować warunki początkowe i końcowe oraz mechanizm inkrementacji zmiennej kontrolnej. Korzystanie z debuggera lub ręczne prześledzenie kolejnych kroków pętli może pomóc w lepszym zrozumieniu jej działania w praktyce co jest kluczowe w efektywnym programowaniu aplikacji wykorzystujących złożone struktury iteracyjne. Zrozumienie tych mechanizmów pozwala na tworzenie bardziej wydajnych i bezbłędnych kodów co jest zgodne z dobrymi praktykami programistycznymi.

Pytanie 15

Jak nazywa się technika sortowania, która polega na podziale zbioru na n przedziałów o równej długości, gdzie przeprowadza się sortowanie, a następnie analizuje i prezentuje posortowane elementy z tych przedziałów?

A. Sortowanie przez wybór
B. Sortowanie kubełkowe
C. Sortowanie bąbelkowe
D. Sortowanie szybkie
Sortowanie kubełkowe (ang. bucket sort) jest metodą, która dzieli dane na kilka przedziałów, zwanych kubełkami, w którym następnie dokonuje się sortowania elementów. W praktyce, dane są przypisywane do kubełków na podstawie ich wartości, co umożliwia efektywne sortowanie mniejszych zbiorów. Po posortowaniu elementów w każdym kubełku, następuje ich scalanie w jeden, posortowany zbiór. Metoda ta jest szczególnie efektywna dla danych, które są równomiernie rozłożone w ograniczonym zakresie wartości. Przykładem zastosowania sortowania kubełkowego może być sortowanie wyników testów w szkołach, gdzie wyniki są klasyfikowane w poszczególnych kubełkach odpowiadających przedziałom ocen. Takie podejście przyspiesza proces sortowania, zwłaszcza w przypadku dużych zbiorów danych, i jest zgodne z zasadami optymalizacji algorytmów, pozwala na wykorzystanie równoległego przetwarzania. W standardach branżowych sortowanie kubełkowe jest często polecane w kontekście przetwarzania danych w systemach baz danych oraz w algorytmach obliczeniowych, gdzie czas realizacji operacji sortujących jest krytyczny.

Pytanie 16

Jaką wartość zwróci funkcja zao, która została zdefiniowana w języku C++, gdy zostanie wywołana z argumentem 3.55?

int zao(float x) {
    return x+0.5;
}
A. 3
B. 3.5
C. 4.05
D. 4
Funkcja zaofloat zdefiniowana w C++ przyjmuje argument typu float, a następnie zwraca go po dodaniu do niego wartości 0.5. W przypadku wywołania tej funkcji z argumentem 3.55, najpierw dodajemy 0.5, co daje nam 4.05. Następnie, w kontekście C++, funkcja ta nie została jeszcze zaimplementowana w sposób, który by zaokrąglał wynik. W rezultacie, gdybyśmy zaokrąglili wynik do najbliższej liczby całkowitej, otrzymalibyśmy 4. Takie podejście jest zgodne z zasadami zaokrąglania, które mówią, że liczby z częścią dziesiętną równą lub większą od 0.5 powinny być zaokrąglane w górę. Tego rodzaju funkcje są powszechnie stosowane w programowaniu, zwłaszcza w kontekście obliczeń finansowych i inżynieryjnych, gdzie precyzyjne zarządzanie wartościami liczbowymi jest kluczowe. Warto dodać, że w C++ istnieją standardowe funkcje, takie jak round() z biblioteki cmath, które mogą być wykorzystywane do efektywnego zaokrąglania wartości do najbliższej liczby całkowitej, co może być przydatne w wielu sytuacjach.

Pytanie 17

Na czym polega analiza ścieżek w testach jednostkowych?

A. na testowaniu wartości brzegowych danych
B. na wyznaczeniu punktu początkowego i końcowego oraz zbadaniu dróg między nimi
C. na utworzeniu kilku zbiorów danych o podobnym przetwarzaniu i przetestowaniu nimi
D. na badaniu inicjacji i zwalniania pamięci obiektów
Analiza ścieżek w testach jednostkowych polega na wyznaczeniu punktu początkowego i końcowego fragmentu kodu, a następnie zbadaniu wszystkich możliwych dróg (przepływów sterowania) między nimi - tak, by przetestować każdą gałąź. Pozwala to wykryć nieobsłużone przypadki. Dlatego to badanie dróg między punktem startu a końca.

Pytanie 18

$x = 0; while($x < 5) { echo "$x,"; $x++; } Wskaż instrukcję, która jest funkcjonalnie równoważna dla podanej pętli while w języku PHP.

Ilustracja do pytania
A. Instrukcja 2
B. Instrukcja 1
C. Instrukcja 4
D. Instrukcja 3
Instrukcja while w PHP jest pętlą, która kontroluje warunek przed każdą iteracją. W jej przypadku zmienna $x jest początkowo równa 0, a warunek $x < 5 powoduje, że blok kodu wewnątrz pętli wykonuje się dopóki $x jest mniejsze od 5. Za każdym razem, gdy kod wewnątrz pętli się wykonuje, echo wyświetla aktualną wartość zmiennej $x, a następnie $x jest inkrementowane o 1. Instrukcja for, która jest funkcjonalnie równoważna tej pętli while, to taka, która zaczyna się z $x równe 0, kończy na $x mniejszym od 5, i w każdym kroku zwiększa $x o 1, dokładnie tak jak instrukcja 3. Odpowiednia struktura pętli for daje możliwość precyzyjnego określenia wszystkich trzech elementów: inicjalizacji zmiennej, warunku kontynuacji oraz zmiany wartości zmiennej po każdej iteracji, co zapewnia pełną kontrolę nad przebiegiem pętli i transparentność kodu, realizując te same funkcjonalności co pętla while w bardziej kompaktowy sposób. Tego typu podejście jest szeroko stosowane w branży ze względu na swoją czytelność i efektywność, co czyni je zgodnym z dobrymi praktykami programistycznymi.

Pytanie 19

Tablica tab[] jest wypełniona losowymi liczbami całkowitymi. Jaka będzie wartość zmiennej zm2 po wykonaniu poniższego fragmentu kodu?

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

for (int i=0; i < 10; i++)
{
    zm1 = zm1 + tab[i];
}
zm2 = zm1 / 10;
A. Średnia geometryczna liczb od 0 do 9
B. Suma elementów z tablicy
C. Średnia arytmetyczna liczb z tablicy
D. Suma liczb od 1 do 10
W tym kodzie fajnie widać, jak oblicza się średnią arytmetyczną z liczb w tablicy tab[]. Na początku ustawiamy zmienne zm1 i zm2 na 0, co jest spoko, bo potem w pętli for dodajemy wszystkie liczby z tablicy do zm1. Gdy pętla się kończy, zm1 zbiera całą sumę liczb, a żeby dostać średnią, dzielimy ją przez 10, bo tyle mamy elementów. Wynik przypisujemy do zm2. To bardzo przydatny proces w programowaniu – średnie są często używane w analizie danych czy obliczeniach wyników. Pamiętaj jednak, żeby nie zapomnieć o możliwych błędach dzielenia przez zero. Dobrze jest sprawdzić, czy tablica nie jest pusta, aby uniknąć kłopotów. I jeszcze jedna rzecz – używanie typu double dla zmiennej zm2 to dobry pomysł, żeby średnia była dokładna, zwłaszcza gdy mowa o liczbach, które nie są całkowite. To wszystko jest zgodne z dobrymi praktykami w IT.

Pytanie 20

Do przechowywania jakich wartości przeznaczony jest typ DECIMAL?

A. liczb rzeczywistych zmiennoprzecinkowych
B. liczb zapisanych w systemie binarnym
C. danych tekstowych o określonej długości
D. liczb rzeczywistych stałoprzecinkowych
DECIMAL to dokładny typ liczbowy o ustalonej precyzji, a nie zmiennoprzecinkowy (od tego są FLOAT/DOUBLE, które mogą zaokrąglać). Nie służy do tekstu (CHAR/VARCHAR) ani do zapisu binarnego. DECIMAL przechowuje liczby rzeczywiste stałoprzecinkowe.

Pytanie 21

Zdefiniowano char zm1; w C++. Jak poprawnie przypisać do niej wartość?

A.
zm1 = 'w';
B.
zm1 = "wiadro";
C.
zm1[2] = 32;
D.
zm1 == 0x35;
Zmienna typu char przechowuje POJEDYNCZY znak, który w C++ zapisuje się w apostrofach. Dlatego zm1 = 'w'; poprawnie przypisuje znak - apostrofy odróżniają literał znakowy od łańcucha. Dlatego prawidłowe jest zm1 = 'w';.

Pytanie 22

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. jeden blok decyzyjny
B. jedną pętlę
C. dwie pętle
D. trzy bloki operacyjne (procesy)
Na tym diagramie widać jedną pętlę, co jest dość ważne w programowaniu. Pętla pozwala na powtarzanie pewnych działań, aż spełni się jakiś warunek. Tu mamy blok decyzyjny, który mówi, czy proces ma trwać, czy się zakończyć. To dość powszechnie używane podejście, zwłaszcza w algorytmach, jak na przykład sortowanie czy obróbka danych. Warto zwrócić uwagę, by dobrze zrozumieć, jak działają pętle, szczególnie te oparte na warunkach, jak while czy for. Pozwoli to uniknąć problemów z niekończącymi się pętlami, które mogą sprawić, że program przestanie działać. Z mojego doświadczenia, ogarnać te struktury to kluczowy skill dla każdego, kto chce działać w IT.

Pytanie 23

Funkcja zapisana w języku PHP wygląda tak patrz ramka): Jej celem jest

Ilustracja do pytania
A. wypisanie liczby nieparzystej
B. zwrócenie wartości 1, gdy liczba jest parzysta
C. zwrócenie wartości 0, gdy liczba jest parzysta
D. wypisanie liczby parzystej
Funkcja w języku PHP jest zapisana w taki sposób że przyjmuje jeden argument liczba i sprawdza czy jest on parzysty. Używa operatora modulo % który zwraca resztę z dzielenia. Jeśli liczba podzielona przez 2 daje resztę równą 0 oznacza to że jest parzysta. W takim przypadku funkcja zwraca wartość 1. W przeciwnym razie czyli gdy liczba jest nieparzysta funkcja zwraca 0. Takie podejście jest częstym wzorcem w programowaniu gdyż pozwala na szybkie i efektywne sprawdzenie parzystości liczby. Stosowanie operatora modulo jest standardem w wielu językach programowania dzięki czemu kod jest zrozumiały i łatwo go przenieść między różnymi platformami. W praktyce takie funkcje mogą być używane w algorytmach gdzie konieczne jest filtrowanie danych na podstawie parzystości lub innych podobnych kryteriów. Dobre praktyki w kodowaniu w PHP obejmują również jasne nazywanie funkcji i zmiennych co poprawia czytelność i utrzymanie kodu. Można także zastanowić się nad rozszerzeniem funkcji o dodatkowe sprawdzania lub logikę w zależności od potrzeb projektu.

Pytanie 24

Kod w języku PHP przedstawia się następująco (patrz ramka): Zakładając, że zmienne a, b, c mają wartości numeryczne, wynik warunku będzie skutkował wypisaniem liczby:

if ($a > $b && $a > $c)
    echo $a;
else if ($b > $c)
    echo $b;
else
    echo $c;
A. najmniejszej.
B. największej.
C. nieparzystej.
D. parzystej.
Kod PHP używa instrukcji warunkowych if aby porównać wartości trzech zmiennych a b i c. Pierwsza instrukcja if sprawdza czy a jest większe od b i c. Jeśli tak to echo a wyświetla wartość a jako największą. Jeśli ten warunek nie jest spełniony sprawdzamy czy b jest większe od c za pomocą else if. Jeśli b jest rzeczywiście większe to echo b wyświetla wartość b. W przeciwnym razie instrukcja else zakłada że c jest największe i wyświetla echo c. To podejście jest powszechnie stosowane w programowaniu i opiera się na dobrej praktyce stopniowego eliminowania przypadków poprzez logiczne porównania. Znajomość takich konstrukcji jest kluczowa w codziennej pracy programisty umożliwiając tworzenie efektywnego i czytelnego kodu. Tego rodzaju struktura logiczna należy do podstawowych elementów algorytmiki w programowaniu proceduralnym i obiektowym. Rozumienie jak struktury kontrolne wpływają na przepływ programu jest podstawą efektywnego kodowania oraz rozwiązywania problemów poprzez algorytmy.

Pytanie 25

Co powinno znaleźć się w dokumentacji TECHNICZNEJ aplikacji (dla programisty)?

A. opis algorytmów i struktury kodu źródłowego
B. opis funkcji z perspektywy osoby obsługującej program
C. przewodnik pierwszego uruchomienia dla klienta
D. instrukcja obsługi krok po kroku dla użytkownika
Dokumentacja TECHNICZNA jest przeznaczona dla programisty, więc opisuje wnętrze aplikacji: zastosowane algorytmy, strukturę kodu źródłowego, architekturę i zależności między modułami. Ma ułatwić rozwój i utrzymanie programu. Dlatego znajdzie się w niej opis algorytmów i struktury kodu.

Pytanie 26

W jakim bloku powinien być umieszczony warunek pętli?

Ilustracja do pytania
A. Opcja A
B. Opcja D
C. Opcja C
D. Opcja B
Odpowiedź C jest prawidłowa ponieważ blok w kształcie rombu jest powszechnie stosowany w schematach blokowych do przedstawiania warunków decyzyjnych W kontekście pętli programistycznych warunek decyzyjny kontroluje jej wykonanie określając kiedy pętla powinna się zakończyć lub kontynuować Romb jako symbol decyzyjny umożliwia zadanie pytania logicznego którego wynik decyduje o dalszym przebiegu algorytmu Na przykład w pętli while warunek jest oceniany przed każdym wykonaniem bloków kodu w pętli co zapewnia że pętla działa dopóki warunek jest spełniony Podobnie w pętli for warunek kontroluje liczbę iteracji poprzez ocenę wyrażenia logicznego przed każdą iteracją Stosowanie rombu do przedstawiania warunków pętli jest zgodne ze standardami modelowania procesów i zwiększa czytelność oraz zrozumiałość schematów blokowych dla programistów i analityków Właściwe umiejscowienie warunku w rombie w strukturze pętli pokazuje zdolność do logicznego modelowania algorytmów co jest kluczowe dla tworzenia efektywnego i niezawodnego oprogramowania

Pytanie 27

Instrukcja JavaScript: document.write5==='5'); co zostanie wyświetlone?

A. 1
B. 0
C. true
D. false
Analizując inne opcje odpowiedzi, można zauważyć, że pierwsza z nich sugeruje wynik 1. W kontekście JavaScript, wynik 1 zazwyczaj odnosi się do wartości prawdy, co jest mylne w przypadku porównania 5 === '5', które nie może zwrócić takiej wartości. Kolejna opcja wskazuje na 0, co w JavaScript również jest interpretowane jako fałsz, ale nie jest zgodne z logiką porównania typów, gdzie wynik jest jednoznacznie 'false', a nie liczbowy. Trzecia opcja, 'true', jest szczególnie myląca, ponieważ może sugerować, że porównanie zakończyło się sukcesem, co jest sprzeczne z zasadą porównania typów: 5 jako liczba i '5' jako string nie mogą być uznawane za identyczne przy użyciu operatora '===' w JavaScript. Warto pamiętać, że JavaScript jest językiem z dynamicznym typowaniem, co oznacza, że typy danych mogą być zmieniane, ale operator '===' wymaga, aby obie strony porównania były tego samego typu. Dlatego każda z tych niepoprawnych odpowiedzi błędnie interpretuje zasady operatorów w JavaScript, prowadząc do nieprawidłowych wniosków.

Pytanie 28

Jaką wartość zwróci ten algorytm?

Z = 0
N = 1
dopóki Z < 3:
    N = N * 2 + 1
    Z = Z + 1
wypisz N
A. 3
B. 5
C. 7
D. 15
Zrozumienie działania tego algorytmu jest kluczowe dla programowania i matematyki obliczeniowej. Algorytm ten wykorzystuje pętlę 'dopóki', która wykonuje operacje na dwóch zmiennych: Z i N. Na początku Z jest równe 0, a N jest równe 1. Pętla trwa dopóki Z jest mniejsze od 3. W każdej iteracji pętli zmienna N jest aktualizowana zgodnie z wyrażeniem N = N * 2 + 1 oraz Z jest zwiększane o 1. Przy pierwszej iteracji Z wynosi 0, więc N staje się 1 * 2 + 1 = 3, a Z zostaje zwiększone do 1. W drugiej iteracji Z wynosi 1, więc N staje się 3 * 2 + 1 = 7, a Z wynosi 2. W trzeciej iteracji Z wynosi 2, dlatego N staje się 7 * 2 + 1 = 15, a Z zostaje zwiększone do 3, co kończy pętlę. W rezultacie, gdy algorytm kończy działanie, zmienna N ma wartość 15, która zostaje wypisana. To podejście jest zgodne z dobrymi praktykami w pisaniu algorytmów, gdzie dbałość o zrozumienie pętli i operacji na zmiennych jest fundamentalna dla tworzenia wydajnych programów.

Pytanie 29

Który typ danych w języku C++ ma najszerszy zakres wartości całkowitych?

A. int
B. long int
C. short
D. long long
Pozostałe typy są węższe. short jest najmniejszy, int zwykle 32-bitowy, a long int bywa 32- lub 64-bitowy, ale nie szerszy niż long long. Najszerszy zakres ma long long.

Pytanie 30

Którego słowa kluczowego użyć w języku C, aby zdefiniować stałą?

A.
static
B.
const
C.
#CONST
D.
#INCLUDE
W języku C stałą definiuje się słowem kluczowym const, np. const int max = 100; - wartości takiej zmiennej nie można potem zmienić. Dlatego stałą tworzy const.

Pytanie 31

Systemem zarządzania wersjami w projekcie programistycznym, który działa w trybie rozproszonym, jest

A. Eclipse
B. FileZilla
C. GIT
D. TotalCommander
GIT jest rozproszonym systemem kontroli wersji, który pozwala na efektywne zarządzanie kodem źródłowym projektu programistycznego. Jego architektura umożliwia każdemu programiście posiadanie lokalnej kopii repozytorium, co przyspiesza operacje takie jak commit, diff czy log, ponieważ nie wymaga dostępu do zdalnego serwera. GIT wspiera równoległą pracę wielu deweloperów, umożliwiając tworzenie gałęzi (branch) do rozwijania funkcji czy naprawy błędów bez wpływania na główną wersję kodu. Przykładami praktycznego zastosowania są: rozwijanie nowych funkcjonalności w oddzielnych gałęziach, zarządzanie kodem w projektach open source, czy współpraca w zespołach rozproszonych geograficznie, gdzie deweloperzy mogą synchronizować swoje zmiany poprzez operacje push i pull. Warto także zaznaczyć, że GIT jest szeroko stosowany w standardach branżowych, takich jak Continuous Integration/Continuous Deployment (CI/CD), co podkreśla jego znaczenie w nowoczesnym procesie wytwarzania oprogramowania.

Pytanie 32

W języku JavaScript zdefiniowano funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Prawidłowa forma wywołania tej funkcji, razem z przypisaniem jej wyniku, powinna wyglądać następująco

A. liczba_max(a, b, c) = wynik;
B. liczba_max(a, b, c, wynik);
C. liczba_max(a, b, c);
D. var wynik = liczba_max(a, b, c);
Wywołanie funkcji 'liczba_max' w postaci 'var wynik = liczba_max(a, b, c);' jest prawidłowe, ponieważ stosuje syntaksę języka JavaScript do przypisania wartości zwróconej przez funkcję do zmiennej. Zdefiniowana funkcja 'liczba_max' przyjmuje trzy argumenty, które są porównywane, a maksymalna z nich jest zwracana jako wynik. W tym przypadku 'var wynik' tworzy nową zmienną, która przechowuje tę wartość, co jest zgodne z najlepszymi praktykami programowania, gdzie wyniki operacji są przypisywane do zmiennych dla dalszego wykorzystania. Użycie 'var' (lub 'let', 'const' w nowszych wersjach JavaScript) jest kluczowe, aby jasno określić zakres zmiennej. Przykładowo, jeśli a = 5, b = 10, c = 3, to po wywołaniu 'var wynik = liczba_max(a, b, c);', zmienna 'wynik' będzie miała wartość 10. Tego typu konstrukcje są podstawą programowania w JavaScript i są niezwykle przydatne w tworzeniu dynamicznych aplikacji webowych, gdzie operacje na danych są na porządku dziennym.

Pytanie 33

Jakie znaczenie ma przedstawiony fragment kodu w języku C++?

Ilustracja do pytania
A. Trzy niezwiązane ze sobą zmienne.
B. Interakcja między zmiennymi globalnymi a lokalnymi.
C. Zbiór zmiennych w hierarchii.
D. Typ strukturalny składający się z trzech pól.
Ten fragment kodu w C++ definiuje strukturę o nazwie CONTACT, która ma trzy pola: nazwisko i telefon jako typy std::string oraz numer jako int. Struktury w C++ pozwalają na grupowanie różnych typów danych w jedną całość, co jest super przydatne w programowaniu, szczególnie gdy pracujemy z danymi. Dzięki strukturze kod widzi te dane jako jedno, co czyni go bardziej zorganizowanym. Na przykład w aplikacjach, gdzie musimy przetwarzać różne typy informacji, takie jak bazy danych czy systemy CRM, struktury sprawdzają się świetnie. Warto też dodać, że w nowoczesnym C++ wolemy korzystać z stringów, bo są łatwiejsze w użyciu niż tradycyjne tablice znaków, a standardowa biblioteka daje nam dodatkowe opcje. To podejście ułatwia życie programistom!

Pytanie 34

Ile WARUNKÓW wystarczy, aby znaleźć największą z trzech liczb a, b, c?

A. dwie tablice
B. pięć zmiennych
C. dwa warunki
D. jedna pętla
Aby wyłonić największą z trzech liczb a, b, c, wystarczą DWA porównania: najpierw wybierasz większą z dwóch (np. a i b), a potem porównujesz wynik z trzecią liczbą c. Te dwa warunki w pełni wyznaczają maksimum. Dlatego wystarczają dwa warunki.

Pytanie 35

Wskaż konstrukcję pętli w języku JavaScript, która wyświetli sześć kolejnych liczb parzystych

A. for(i=2;i<12;i++) {i++; document.write(i);}
B. for(i=2;i<=12;i+=2) {document.write(i);}
C. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
D. for(i=2;i<12;i+=2) {document.write(i);}
Odpowiedź for(i=2;i<=12;i+=2) {document.write(i);} jest prawidłowa, ponieważ prawidłowo implementuje pętlę for w języku JavaScript, aby wydrukować sześć kolejnych liczb parzystych, zaczynając od 2 i kończąc na 12. Pętla ta inicjuje zmienną i na wartość 2, a następnie kontynuuje iterację, aż do osiągnięcia wartości 12, zwiększając i o 2 w każdej iteracji. Dzięki temu osiągamy pożądane liczby: 2, 4, 6, 8, 10 i 12. Użycie operatora inkrementacji (i+=2) jest zgodne z dobrymi praktykami programistycznymi, ponieważ jest bardziej zwięzłe i jednoznaczne w porównaniu do zwiększania zmiennej w każdej iteracji o 1, a następnie dodawania 1 w ciele pętli. W praktyce, można stosować takie podejście do generowania sekwencji liczb w różnych zastosowaniach, na przykład w wizualizacji danych lub grach, gdzie potrzebujemy pracować z parametrami o określonej wartości. Ponadto, pętle w JavaScript są fundamentalnym elementem skryptów, pozwalającym na automatyzację powtarzalnych zadań, co czyni programowanie bardziej efektywnym.

Pytanie 36

Jednym z atrybutów tabeli ksiazki jest pole czyWypozyczona, które może mieć dwie wartości: true lub false. Jaki typ danych będzie najbardziej odpowiedni dla tego pola?

A. VARCHAR(5)
B. BOOLEAN
C. DOUBLE
D. CHAR
Odpowiedź 'BOOLEAN' jest poprawna, ponieważ jest to typ danych, który idealnie odpowiada na potrzeby pola 'czyWypozyczona', które przyjmuje jedynie dwie wartości: true (prawda) oraz false (fałsz). W przypadku baz danych, typ BOOLEAN jest optymalny do reprezentowania stanów logicznych, co pozwala na efektywniejsze zarządzanie danymi oraz ich przetwarzanie. Przykładowo, w systemie zarządzania biblioteką, pole 'czyWypozyczona' może być używane do szybkiego filtrowania książek, które są aktualnie dostępne lub wypożyczone. Użycie typu BOOLEAN eliminuje potrzebę zbędnych konwersji typu, zwiększa czytelność kodu oraz ułatwia optymalizację zapytań SQL. W praktyce, stosowanie typu BOOLEAN jest zgodne z najlepszymi praktykami projektowania baz danych, które promują przejrzystość i zgodność z modelowaniem danych. Warto również zauważyć, że w niektórych systemach zarządzania bazami danych (np. PostgreSQL) typ BOOLEAN jest natywnie obsługiwany, co dodatkowo wpływa na wydajność operacji na danych.

Pytanie 37

W języku JavaScript przedstawiona poniżej definicja jest definicją
var imiona=["Anna", "Jakub", "Iwona", "Krzysztof"];

A. kolekcji.
B. tablicy.
C. klasy.
D. obiektu.
W języku JavaScript definicja var imiona=["Anna", "Jakub", "Iwona", "Krzysztof"]; przedstawia tablicę, która jest jednym z fundamentalnych typów danych w tym języku. Tablice są używane do przechowywania zbiorów danych w sposób uporządkowany. W tym przypadku tablica imiona przechowuje cztery stringi, każdy reprezentujący imię. Wartością dodaną tablicy jest możliwość dostępu do poszczególnych elementów za pomocą indeksów, które zaczynają się od zera. Na przykład, imiona[0] zwróci \"Anna\", a imiona[1] zwróci \"Jakub\". W praktyce tablice są niezwykle przydatne w programowaniu, ponieważ pozwalają na łatwe zarządzanie i manipulację danymi. Dobrą praktyką jest używanie tablic do przechowywania związków danych, co umożliwia ich efektywne przetwarzanie i iterację za pomocą pętli, co zwiększa czytelność i organizację kodu. Warto również zaznaczyć, że tablice w JavaScript są obiektami, co daje dodatkowe możliwości manipulacji, takie jak metody tablicowe (np. push, pop, map, filter) do operacji na zbiorach danych. Poznanie i zrozumienie tablic jest kluczowe dla każdego programisty, ponieważ są one podstawą wielu algorytmów i struktur danych."

Pytanie 38

Jaką wartość zwróci funkcja zoo zdefiniowana w języku C++, wywołana z aktualnym parametrem 3.55

int zao(float x){
    return (x + 0.5);
}
A. 3.5
B. 4
C. 4.05
D. 3
Dobra robota! Wybrałeś poprawną odpowiedź, która wynosi 4. W języku C++ typy zmiennoprzecinkowe (float) są konwertowane do typów całkowitych (int) poprzez odrzucenie części ułamkowej liczby. W tym przypadku, nawet jeśli wynik działania wewnątrz funkcji wynosi 4.05, po konwersji do typu int, zostaje z tego tylko 4. Jest to dobra praktyka, aby zawsze pamiętać o tym zachowaniu podczas pracy z różnymi typami danych w językach programowania, zwłaszcza jeśli precyzja jest istotna dla twojego kodu. Odrzucenie części ułamkowej może prowadzić do nieoczekiwanych wyników, jeśli nie jest to świadome działanie. Dlatego w języku C++ zaleca się zawsze jasne i precyzyjne określenie typu danych.

Pytanie 39

Zmienna o typie integer lub int jest w stanie przechowywać

A. liczbę całkowitą
B. znak
C. łańcuch znaków
D. liczbę rzeczywistą
Zmienna typu integer, znana również jako int, jest podstawowym typem danych w wielu językach programowania, takich jak C, C++, Java czy Python. Jej kluczową zaletą jest możliwość przechowywania tylko liczb całkowitych, co czyni ją idealnym wyborem do operacji arytmetycznych, które wymagają precyzyjnego zarządzania wartościami całkowitymi bez części dziesiętnych. Przykłady zastosowania to m.in. przechowywanie ilości przedmiotów w magazynie, zliczanie punktów w grze lub reprezentowanie indeksów w tablicach. W praktyce, użycie zmiennych typu integer umożliwia efektywne wykorzystanie pamięci, ponieważ zajmują one mniej miejsca niż zmienne typu zmiennoprzecinkowego, a ich operacje są wykonywane szybciej. Ponadto, stosowanie zmiennych całkowitych jest zgodne z dobrymi praktykami programowania, które zalecają dobór odpowiednich typów danych do specyficznych potrzeb aplikacji, co zwiększa ich wydajność i czytelność kodu. Warto także zrozumieć, że w kontekście programowania, typ zmiennej determinuje zakres wartości, które można przechowywać, co w przypadku typu integer zwykle wynosi od -2,147,483,648 do 2,147,483,647 w standardzie 32-bitowym, co czyni go wystarczającym dla wielu zastosowań.

Pytanie 40

Jeżeli założymy, że zmienne: a, b, c mają wartości liczbowe, wynikiem spełnienia warunku będzie wyświetlenie liczby

if ($a > $b && $a > $c)
echo $a;
else if ($b > $c)
echo $b;
else
echo $c;
A. nieparzystej
B. najmniejszej
C. największej
D. parzystej
Prawidłowa odpowiedź, czyli największa liczba jest wynikiem analizy warunku, który sprawdza wartość zmiennych a, b i c. Wykorzystujemy tutaj strukturę warunkową if-else, co jest standardową techniką w wielu językach programowania, takich jak PHP czy JavaScript. Przy pierwszej linijce kodu if ($a > $b && $a > $c) echo $a sprawdzamy, czy a jest większe od b i jednocześnie większe od c. Jeśli warunek jest spełniony, wypisujemy wartość a, co oznacza, że a jest największa. Jest to zgodne z dobrą praktyką algorytmiczną, gdzie przy porównywaniu trzech wartości dokładne warunki logiczne pomagają w ustaleniu największej z nich. Struktura ta jest wydajna i łatwa do zrozumienia. Praktycznym zastosowaniem może być np. system oceniania, gdzie na podstawie kilku wyników wybieramy ten najwyższy do dalszej analizy. Prawidłowe rozpoznawanie i implementowanie takich warunków jest kluczowe w codziennej pracy programisty, który musi regularnie wybierać największe wartości do różnych zastosowań biznesowych.