2.1. Liczenie bloków w zapisie binarnym

ORYGINALNE POLECENIE CKE

Wprowadzenie

W tym zadaniu rozważamy binarny zapis liczb całkowitych dodatnich. Blokiem w zapisie binarnym liczby nazywamy każdy niepusty, maksymalny (nie można go rozszerzyć ani z lewej, ani z prawej strony) ciąg kolejnych takich samych cyfr w tym zapisie.

Przykład: Liczba binarna 111110000110111 składa się z pięciu bloków – trzech bloków złożonych z jedynek (11111, 11 i 111) i dwóch bloków złożonych z zer (0000 i 0). Liczba binarna 1111111111111111 składa się z jednego bloku złożonego z jedynek.

Polecenie

Zapisz w pseudokodzie lub w wybranym języku programowania algorytm, który dla danej dodatniej całkowitej liczby n obliczy liczbę bloków w jej zapisie binarnym.

Przykład: Dla liczby 67 wynikiem jest 3, ponieważ 67 w zapisie binarnym to 1000011 (dwa bloki jedynek i jeden blok zer). Dla liczby 245 wynikiem jest 5, ponieważ 245 w zapisie binarnym to 11110101 (trzy bloki jedynek i dwa bloki zer).

Uwaga: W zapisie algorytmu możesz korzystać tylko z instrukcji sterujących, operatorów arytmetycznych: dodawania, odejmowania, mnożenia, dzielenia, dzielenia całkowitego i reszty z dzielenia; operatorów logicznych, porównań, instrukcji przypisania lub samodzielnie napisanych funkcji i procedur wykorzystujących powyższe operacje. Zabronione jest używanie funkcji wbudowanych oraz operatorów innych niż wymienione, dostępnych w językach programowania, w tym zwłaszcza funkcji zamiany między systemami pozycyjnymi i konwersji między typami danych.

Specyfikacja:

Dane:

n – dodatnia liczba całkowita Wynik:

b – liczba bloków w zapisie binarnym liczby n

Pokaż odpowiedź i ocenianie CKE

Odpowiedź CKE

Przykładowe rozwiązanie

b ← 1
poprzednia ← n mod 2
n ← n div 2
dopóki (n > 0)
    cyfra ← n mod 2
    jeśli cyfra ≠ poprzednia
        b ← b + 1
        poprzednia ← cyfra
    n ← n div 2

Zasady oceniania CKE

Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania.

W zadaniach praktycznych wszystkie wyniki muszą być odzwierciedleniem komputerowej realizacji obliczeń.

3 pkt – poprawny algorytm, w tym:

1 pkt – za poprawną pętlę,

1 pkt – za poprawne porównywanie kolejnych cyfr binarnych,

1 pkt – za poprawne zliczenie liczby bloków, w tym rozpoznawanie końca/początku kolejnego bloku i ustawienia początkowe.

0 pkt – odpowiedź niepoprawna albo brak odpowiedzi.

Źródło

Oryginalne zasady oceniania CKE — PDF, strona 4

Potrzebujesz pomocy w przygotowaniu do matury?

Zobacz korepetycje

TWÓJ NASTĘPNY KROK

Przygotuj się do matury z informatyki ze mną.

Igor Józefowicz — korepetycje z informatyki do matury

Na indywidualnych zajęciach online uporządkujemy trudne zagadnienia i przećwiczymy zadania maturalne. Wspólnie ustalimy plan przygotowań dopasowany do Twojego poziomu i celu.

TWÓJ PIERWSZY KROK

30 minut · online · bezpłatnie

Umów bezpłatną rozmowę