SZUKAJ NA TYM BLOGU

Zadanie 2. Analiza algorytmu (0–6) ()

Niech n będzie nieujemną liczbą całkowitą, a T[1..n] – tablicą zawierającą n liczb całkowitych. Dla n = 0 tablica T jest pusta (nie zawiera żadnego elementu).
Wykonaj analizę poniżej zapisanej funkcji d(x), która rozszerza tablicę T o liczbę całkowitą x, a następnie przeprowadza pewną reorganizację zawartości tej tablicy. 

d(x):
  n ← n + 1
  T[n] ← x
  s ← n
  dopóki ((s div 2) ≥ 1) oraz (T[s] > T[s div 2]) wykonuj
      pom ← T[s]
      T[s] ← T[s div 2]
      T[s div 2] ← pom
      s ← s div 2 

Uwaga: w tym zadaniu przyjmujemy, że:
• tablica T może być powiększana;
• jeśli wartość lewego argumentu operatora oraz jest równa fałsz, to wartość prawego argumentu nie jest wyliczana;
• div jest operatorem oznaczającym część całkowitą z dzielenia. 

Zadanie 2.1. (0–2) 

Uzupełnij tabelę – wpisz zawartość tablicy T po wykonaniu d(x) z podanym parametrem x:

n T[1..n] x T po wykonaniu d(x)
4 26, 3, 5, –4 5 26, 5, 5, –4, 3
4 36, 15, 17, 3 -5
7 27, 6, 13, 4, –3, –2, –3 30

Zadanie 2.2. (0–2) 

Podaj zawartość tablicy T po wykonaniu wszystkich sześciu wywołań funkcji d kolejno z parametrami: 6, –4, 12, 27, 26, 8, przy początkowo pustej tablicy T.

................................................................................................................ 

Zadanie 2.3. (0–2) 

Do początkowo pustej tablicy T wstawiono za pomocą funkcji d kolejno liczby całkowite od 1 do k – 1. Wstawiamy teraz do tablicy T kolejną liczbę k za pomocą d(k). Zapisz, ile razy w trakcie wykonywania d(k) sprawdzany jest warunek pętli dopóki: „((s div 2) ≥ 1) oraz (T[s] > T[s div 2])” dla podanych wartości k.

k Ile razy sprawdzany jest warunek pętli dopóki podczas wykonywania d(k)?
4 3 razy
16
1025

Rozwiązanie

Zasady oceniania 

2 pkt – za poprawną odpowiedź w obu wierszach.
1 pkt – za poprawną odpowiedź w jednym wierszu.
0 pkt – za podanie odpowiedzi niepoprawnej albo brak odpowiedzi. 

Poprawna odpowiedź

n T[1..n] x T[1..n+1]
4 26, 3, 5, –4 5 26, 5, 5, –4, 3
4 36, 15, 17, 3 -5 36, 15, 17, 3, -5
7 27, 6, 13, 4, –3, –2, –3 30 30, 27, 13, 6, -3, -2, -3, 4

Zasady oceniania 

2 pkt – za pełną poprawną odpowiedź.
1 pkt – za odpowiedź z jednym błędem (tzn. zamienione miejscami liczby z dwóch dowolnych pozycji).
0 pkt – za podanie odpowiedzi niepoprawnej lub brak odpowiedzi. 

Rozwiązanie 27, 26, 8, -4, 12, 6 

Zasady oceniania 

2 pkt – za pełną poprawną odpowiedź.
1 pkt – za poprawną odpowiedź w jednym wierszu.
0 pkt – za podanie odpowiedzi niepoprawnej lub brak odpowiedzi.

Poprawna odpowiedź

k Ile razy sprawdzany jest warunek pętli dopóki ?
4 3
16 5
1025 11

Przykładowe rozwiązanie

 d(5):
  n ← 4 + 1
  T[5] ← 5
  s ← 5
  dopóki ((5 div 2) ≥ 1) oraz (T[5] > T[5 div 2]) wykonuj 
               ((2) ≥ 1) oraz (5 > T[2])
                (prawda) oraz (5 >3)
                 prawda  oraz  prawda
                        prawda  
    pom ← T[5],
pom ← 5
    T[5] ← T[5 div 2], T[5] ← T[2], T[5] ← 3 
    T[5 div 2] ← 5 ,
  T[2] ← 5 
    s ← 5 div 2,
s ← 2
 
  dopóki ((2 div 2) ≥ 1) oraz (T[5] > T[2 div 2]) wykonuj
                 (2 ≥ 1) oraz (3 > T[1])
                (prawda) oraz (5 > 26)
                 prawda  oraz  fałsz
                        fałsz
 

Poziom wykonania zadania

Zadanie 2.1. (0–2) - 45%
Zadanie 2.2. (0–2) - 33%
Zadanie 2.3. (0–2)  - 40%

Na podstawie: