Решение задач систем счисления в электронной таблице EXCEL

Разделы: Информатика


При решении огромного класса задач систем счисления требуется переход из одной системы счисления в другую. Решение этих задач, как правило, требует довольно большого объема вычислений. Поставим в Excel следующие задачи:

  • Задано число в некоторой системе счисления, представить его в десятичной системе счисления;
  • Задано десятичное число, представить его в системе счисления с базой Q.
  • На базе решения двух предыдущих задач, можно решать задачи перехода из любой системы счисления в любую другую, задачи арифметики чисел, заданных в разных системах счисления.

Замечание. Пусть произвольная система счисления имеет базу не более 10. Данное ограничение упрощает решение задач именно в электронных таблицах Excel, так как цифры и база любой системы счисления (в данном случае) будут представлены в их десятичном эквиваленте.

Реализуем эти задачи в электронных таблицах EXCEL.

Задача № 1.

Задача №1. Задано число в системе счисления с базой Q. Определить десятичное представление заданного числа.

Решение.

Формирование входного и выходного потоков.

Из условия задачи имеем:

На выходе десятичное число.

На входе два числа:

  • исходное число,
  • база системы счисления, в которой задано исходное число.

Математическая модель.

Для решения поставленной задачи воспользуемся свойствами развернутой формы записи числа в заданной системе счисления, имеющей вид:

A(q) = a0 * q^0 + a1 * q^1 + a2 * q^2 + a3 * q^3 + … (1)

где:

q – база системы счисления, в которой задано число A(q);

a0, a1, a2, a3,… – цифры системы счисления с базой q.

Для q< = 10, a0, a1, a2, a3,…, q – даны в десятичном эквиваленте.

Для вычисления цифр (1) можно предложить следующую формулу, обоснование которой в общем виде дано в Приложении 1:

ai = ОСТАТ(ЦЕЛОЕ(A(q)/q^i);q) (2)

данная формула записана в синтаксисе функций EXCEL.

Задание на дом: можно ли в (2) ОСТАТ и ЦЕЛОЕ поменять местами, и если можно то как?

Алгоритм решения задачи.

Обобщая изложенное можно предложить следующий алгоритм решения задачи:

  1. вводятся исходное число и его база,
  2. с помощью (2) определяем цифры исходного числа,
  3. вычисляем для каждой цифры вклад в десятичное число согласно формулы:
    Pi = ai * q^i (3)
  4. Суммируем вклады и получаем десятичное представление исходного числа.

Тестирование алгоритма.

Для тестирования алгоритма можно предложить следующий пример:

Расчет дает, что 101011(2) 43(10).

Можно предложить любой другой.

Реализация алгоритма.

Данная задача реализуется в EXCEL

Таблицы.

Для данной задачи есть смысл использовать две таблицы:

  • Таблица Ввода\Вывода, для ввода исходной информации и вывода результатов,
  • Таблица расчетов.

Таблица Ввода\Вывода.

Эта таблица будет содержать значения входных и выходных данных и комментарии к ним.

  А В
1 Комментарии значения
2 ИСХОДНОЕ ЧИСЛО <значение>
3 БАЗА системы счисления исходного числа <значение>
4 РЕЗУЛЬТАТ <формула>

Расчетная таблица.

При ее решении необходимо помнить, что EXCEL рассматривает введенное число как десятичное, именно поэтому при определении цифр заданного числа в (2) необходимо использовать значение базы равной 10.

Согласно математической модели и свойства EXCEL, построим следующую таблицу расчетов.

  A B C D E F G
9 КОММЕНТАРИИ            
10 Разряды цифр 0 1 2 3 4 5
11 ЦИФРЫ = ОСТАТ(ЦЕЛОЕ($b$2/10^b10);10)
12 Вклад цифры = b11*$b$3^b10        

Провести протяжку формул, введенных в В11 и В12, по горизонтали. Диапазон протяжки формул ограничивается только адресом столбца IV (то есть концом строки таблицы) будем протягивать до столбца T.

Расчетная таблица готова.

Остается в ячейку В4 таблицы Ввода\Вывода ввести формулу

В4 [= СУММА(B12:T12)] (возможен диапазон вплоть до IV12).

Тестирование расчетной таблицы.

Для тестирования разработанной таблицы можно воспользоваться тестом алгоритма решения данной задачи. Для этого необходимо ввести в таблицу Ввода\Вывода в ячейку b2 значения исходного числа 101011 и в ячейку b3 значение базы системы счисления исходного числа – 2. Если в ячейке b4 появится число 43, то решение верно. Дополнительно, если в b3 ввести число 10, и в ячейке b4 должно появиться число 101011, то можно быть уверенным, что таблицы разработаны правильно и решение задачи верно.

  А В
2 ИСХОДНОЕ ЧИСЛО 101011
3 БАЗА системы счисления исходного числа 2(10)
4 РЕЗУЛЬТАТ 43(101011)

Задача решена.

Рис. 1

На данном рисунке приведен фрагмент таблицы Excel, где реализована задача № 1.

Задача № 2.

Задача № 2. Задано десятичное число и база системы счисления Q 10. Определить представление исходного числа в системе счисления с базой Q.

Решение.

Формирование входного и выходного потоков.

Из условия задачи имеем:

На выходе должно быть:

  • число в заданной системе счисления с базой Q.

На входе два числа:

  • исходное десятичное число,
  • база системы счисления, в которой необходимо представить исходное число.

Математическая модель.

Рассмотрим математическую модель исходной задачи. Для перехода из десятичной системы счисления в систему счисления с базой q(10), исходной является развернутая форма записи числа в системе счисления с базой q – (1). А так как q, a0, a1, a2, a3,… даны в десятичном эквиваленте, то, проведя вычисления, получаем это число в десятичном представлении, то есть

A(q) = a0 * q^0 + a1 * q^1 + a2 * q^2 + a3 * q^3 + … А(10) (4)

Обращая формулу, получаем, что цифры системы счисления с базой q могут быть получены с помощью целочисленного деления исходного десятичного числа на базу q.

Мы вновь приходим к формуле (2) для определения цифр на этот раз результирующего числа, то есть в результате вычисления цифр получаем необходимый результат, записываемый в виде: an a(n-1) … a3a2 a1 a0 для базы q.

Алгоритм решения задачи.

Обобщая изложенное можно предложить следующий алгоритм решения задачи:

  • вводятся исходное десятичное число и база системы счисления, в которую необходимо перевести исходное десятичное число;
  • с помощью (2) определяем цифры исходного числа (база q),
  • вычисляем для каждой цифры вклад в десятичное число согласно формулы:
    Pi = ai * q^i (3)
  • Суммируем вклады и получаем результирующее число.

Тестирование алгоритма.

Для тестирования алгоритма можно использовать следующий пример:

Расчет дает , что 43(10). 101011(2)

Можно предложить любой другой.

Реализация алгоритма.

Данная задача реализуется в EXCEL.

Таблицы.

Для заданной задачи есть смысл использовать две таблицы:

  • таблица Ввода\Вывода, для ввода исходной информации и вывода результатов,
  • таблица расчетов.

Таблица Ввода\Вывода.

Эта таблица будет содержать значения входных данных и выходных и комментарии к ним.

  А В
1 Комментарии Значения
2 ИСХОДНОЕ ЧИСЛО <значение>
3 БАЗА системы счисления результирующего числа <значение>
4 РЕЗУЛЬТАТ =<формула>

Расчетная таблица.

Согласно математической модели можно построить следующую таблицу расчетов.

  A B C D E F G
9 КОММЕНТАРИИ            
10 Разряды цифр 0 1 2 3 4 5
11 ЦИФРЫ
= ОСТАТ(ЦЕЛОЕ($b$2/$b$3^b10);$b$3)
12 Вклад цифры
= b11*10^b10
       

Протяжка формул проводится до столбца Т, но можно и до IV

В ячейку b4 вводится формула В4 [= СУММ(B12:T12)].

Расчетная таблица готова.

Тестирование расчетной таблицы.

Для тестирования необходимо ввести во таблицу Ввода\Вывода значения исходного десятичного числа и базы системы счисления, в которой необходимо представить исходное число и проверить полученный результат, например:

  А В
2 ИСХОДНОЕ ЧИСЛО 33
3 БАЗА системы счисления исходного числа 2
4 РЕЗУЛЬТАТ 100001

Дополнительно, если в В3 ввести 10, то в В4 должно появиться число 33. Если это так, то построение верно.

Задача решена.

Рис. 2

На данном рисунке приведен фрагмент таблицы Excel, где реализована задача № 2.

С помощью этих двух задач можно провести вычисления перехода

(Q) (10) (q)

Здесь Q,q 10 – любые базы систем счисления (но не превосходящих 10).

Для этого вначале решаем задачу перехода Q (10), а затем задачу (10) (q).

И в заключении выполнить задание, данное в Приложении 2.

Заключение.

Как показала практика, для представления данного материала требуется два часа и лучше, если это будет спаренный урок, то есть два академических часа подряд.

На данном уроке рассмотрено решение двух задач, используя которые можно с помощью компьютера:

  1. Переходить из одной системы счисления в другую.
  2. Проводить арифметические операции над числами разных систем счисления.
  3. Сопоставлять два числа, заданных в разных системах счисления.