Kod przedstawia operacje na 1000-elementowej tablicy wypełnionej liczbami całkowitymi. Aby zoptymalizować kod, nie tracąc na jego czytelności, należy
Kod przedstawia operacje na 1000-elementowej tablicy wypełnionej liczbami całkowitymi. Aby zoptymalizować kod, nie tracąc na jego czytelności, należy
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: C
Uzasadnienie i szersze wyjaśnienie:
Obecnie, wewnątrz pętli for, w każdej z 1000 iteracji, wykonywana jest operacja int j = Math.Pow(4, 3);. Wywołanie metody Pow (potęgowanie) jest operacją stosunkowo kosztowną obliczeniowo. Co najważniejsze, wynik tej operacji (4³ = 64) jest zawsze taki sam w każdej iteracji, ponieważ argumenty są stałe.
Powtarzanie tego samego, niezmiennego obliczenia 1000 razy jest nieefektywne. Optymalizacja polega na wyniesieniu niezmiennika pętli poza pętlę. Należy obliczyć potęgę tylko raz, przed rozpoczęciem pętli, a w jej wnętrzu używać już gotowego wyniku.
Zoptymalizowany kod wyglądałby tak:
int j = (int)Math.Pow(4, 3); // Wyliczenie tylko raz
for(int i=0; i < 1000; i++) {
tablica[i] = j * tablica[i];
}Ta prosta zmiana znacząco zwiększa wydajność kodu, eliminując 999 zbędnych wywołań funkcji Pow.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A: Zmniejszenie liczby iteracji zmieniłoby logikę programu – operacja nie zostałaby wykonana dla wszystkich elementów tablicy.
- B: Zamiana pętli
fornawhilenie przyniesie żadnej korzyści wydajnościowej; obie pętle są w tym przypadku równoważne. - D: Operacja musi być wykonana dla każdego z 1000 elementów, więc pętla jest niezbędna.
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Funkcje, Metody i Przekazywanie ParametrówWydzielone, nazwane bloki kodu realizujące określone zadanie, przyjmujące parametry wejściowe i opcjonalnie zwracające wartość wyniku za pomocą instrukcji return.
- Zmienne i Stałe w programowaniuNazwane obszary pamięci operacyjnej przechowujące dane robocze programu; zmienne pozwalają na modyfikację wartości podczas działania, podczas gdy stałe mają wartość niezmienną.
- Język programowania C# (.NET)Wieloparadygmatowy, obiektowy język programowania stworzony przez firmę Microsoft dla platformy .NET, cechujący się silnym typowaniem, automatycznym odśmiecaniem pamięci (GC) i bogatą składnią.
Podobne pytania z działu „Podstawy skladni i typy danych”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 54 pytań z tego działu.
- #48
Który z poniższych kroków NIE jest częścią cyklu rozkazowego procesora?
- #49
Która z poniższych zależności między pamięcią operacyjną (RAM) a procesorem jest prawdziwa?
- #51
Które z poniższych miejsc są wykorzystywane do przechowywania informacji w systemach informatycznych?
- #67
Która z poniższych sytuacji może być uznana za wypadek przy pracy?
- #74
Który ze środków ochrony zbiorowej najlepiej sprawdzi się w pracy biurowej?