[Algorytmy] Tablica zero-jedynkowa - matura 2010
: 3 wrz 2010, o 16:47
Jest to zadanie z matury rozszerzonej z informatyki z roku 2010:
(link do zadania, w pdf jest bardziej czytelne: ... a_PR_I.pdf)
Zadanie 2. Tablica zero-jedynkowa (8 pkt)
W tablicy a[1…1023] zapisano ciąg zer i jedynek w taki sposób, że wszystkie zera
poprzedzają jedynki.
Uwaga: W tablicy mogą być same zera lub same jedynki.
Oto niepełny algorytm obliczania liczby zer w tablicy a:
← – oznacza instrukcję przypisania
div – oznacza dzielenie całkowite
a) Uzupełnij opis algorytmu, wstawiając w miejsce kropek stosowne wyrażenie, tak aby
obliczał on zawsze poprawnie liczbę zer z tablicy a.
Odpowiedź:
pierwsza luka: s - l + 1
druga luka: s + 1
Mógłby mi ktoś wytłumaczyć działanie tego kodu?
Wydaje mi się, że w ogóle nie sprawdza on 2 części tablicy.
Z góry dzięki za pomoc.
(link do zadania, w pdf jest bardziej czytelne: ... a_PR_I.pdf)
Zadanie 2. Tablica zero-jedynkowa (8 pkt)
W tablicy a[1…1023] zapisano ciąg zer i jedynek w taki sposób, że wszystkie zera
poprzedzają jedynki.
Uwaga: W tablicy mogą być same zera lub same jedynki.
Oto niepełny algorytm obliczania liczby zer w tablicy a:
← – oznacza instrukcję przypisania
div – oznacza dzielenie całkowite
Kod: Zaznacz cały
liczba_zer ← 0
l ← 1, p ← 1023
dopóki l ≤ p wykonuj
s ←(l + p)div 2
jeśli a[s] =1 to
p←s − 1
w przeciwnym przypadku
liczba_zer ← liczba_zer + …………………
l ← …………………obliczał on zawsze poprawnie liczbę zer z tablicy a.
Odpowiedź:
pierwsza luka: s - l + 1
druga luka: s + 1
Mógłby mi ktoś wytłumaczyć działanie tego kodu?
Wydaje mi się, że w ogóle nie sprawdza on 2 części tablicy.
Z góry dzięki za pomoc.