Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пояснения к выполнению работы.




Для выполнения этой работы создайте в Вашей папке файл - приложение Excel - с именем «Системы счисления» и откройте его. Дайте трем листам имена: «В десятичную» «Из десятичной» и «Сложение».

Все три листа нужно сделать «в клеточку», т. е. задать ширину их столбцов примерно равной ширине строк. Это можно сделать одновременно для всех трех листов следующим образом.

На любом (например, первом) листе щелкните правой кнопкой мыши по ярлычку и выберите в открывшемся контекстном меню «Выделить все листы». Ярлычки всех листов станут «активными», белыми. Теперь щелкните кнопку выделения всего листа (серый прямоугольник в левом верхнем углу листа на пересечении заголовков строк и столбцов). Весь лист станет выделенным. Установите курсор между заголовками любых из двух столбцов и левой кнопкой мыши «стяните» ширину столбца до 2.00 (19 пиксел). Щелкните теперь любую ячейку, чтобы этим закончить операцию. Все столбцы сделались одной ширины, и ячейки приобрели форму квадратных клеточек. То же самое (проверьте) произошло с другими двумя листами. Книга подготовлена к работе. Перейдем к листу «В десятичную».

1. На листе «В десятичную» создадим «машину» для перевода в десятичную систему счисления чисел, записываемых в системах с произвольным основанием B >1.

С этой целью разметим предварительно лист так, как показано на рис. 1. В верхней части листа наберите текст - заголовок листа: «Перевод чисел из системы счисления с основанием B в десятичную систему счисления». Растяните в ширину столбец В, в котором будем записывать основание системы счисления (в ячейку В8) и получать десятичное число - результат перевода (ячейка В15). С помощью команды- кнопки меню «внешние границы» разметьте диапазоны для записи цифр целой части числа (D8:W8) и дробной части числа (Y8:AR8). Сделайте необходимые текстовые заголовки-пояснения к этим размеченным диапазонам ячеек. Соседние с этими диапазонами ячейки можно залить серым цветом для улучшения дизайна нашей «машины» (см. рис. 1). Если вся «машина» не помещается на экране, то можно слегка уменьшить масштаб листа.


 

 

Рисунок 1 – Примерный вид экрана с листом «В десятичную»


Строка 8 листа готова для записи в ячейку В8 основания системы счисления и для записи в ячейки D8:AR8 цифр числа, представленного в этой системе счисления. При этом как целая, так и дробная части числа могут содержать до 20 цифр. Остается сделать так, чтобы в ячейке В15 появлялось десятичное число, записанное в строке 8 в системе счисления с основанием В. Для этого нужно лишь правильно ввести в ячейки несколько простых формул.

Во всех этих формулах нам, разумеется, нужно будет ссылаться на одну и ту же ячейку В8. И, чтобы при копировании формул ссылка на эту ячейку не изменялась, эту ссылку нужно писать как абсолютную, т. е. в виде $В$8. Однако наличие ссылок такого вида в формулах делает их не очень удобными для чтения. Поэтому воспользуемся другим механизмом присвоения абсолютного имени ячейкам и диапазонам. Чтобы присвоить ячейке В8 имя, например, а, - выделим ее левой кнопкой мыши. Взгляните на поле имени - оно расположено на верхней панели инструментов, слева от строки формул. Введите в поле имени букву а и нажмите Enter. Имя, присвоенное сейчас выделенной ячейке, является ее абсолютным адресом, уникальным в пределах всей книги. Если, например, сейчас вы перейдете на другой лист и в поле имени выберете из списка имя а, то тут же окажетесь вновь на листе «В десятичную», где будет выделена ячейка В8. Итак, основание системы счисления будет именоваться на листе как а, и в формулах вместо $В$8 мы будем писать просто букву а.

Введите в ячейку В8 в качестве основания системы счисления число 3. Для перевода чисел в десятичную систему зададим веса разрядов. В ячейку W10 (т. е. под младшим разрядом целой части) введите 1 – это вес младшего разряда. В соседнюю слева ячейку введите формулу =W10* а. В ней появится число 3. Скопируйте эту ячейку с формулой ее «растягиванием» за маркер заполнения влево, до старшего разряда. Теперь мы имеем все веса целой части числа. Многие их значения не входят в клеточки и выводятся как символ решетки. Но нам и не нужно их видеть. Скоро мы скроем всю эту строку.

Аналогично задайте веса для дробной части числа: в клетку Y10 введите формулу =1/ а. Результат из-за его округления до одной цифры будет выглядеть как 0. В соседнюю справа ячейку введите формулу =Y10/ а. Затем «растяните» - скопируйте ее до младшего разряда дробной части. Теперь в ячейку В15 введите формулу:

=СУММПРОИЗВ(D8:W8;D10:W10)+СУММПРОИЗВ(Y8:AR8;Y10:AR10).

Программа для перевода чисел в десятичную систему счисления готова. Формулу для вычисления суммы произведений цифр разрядов на их веса пришлось разбить на две части, т. к., из-за дизайнерских соображений, в колонке X между двумя диапазонами разрядов нам пришло в голову поместить запятую. Если запятую оттуда удалить, то формулу в ячейке В15 можно записать сразу для двух сплошных диапазонов в виде =СУММПРОИЗВ(D8:AR8;D10:AR10).

Запишите в ячейки W8 и Y8 цифры 1 и 1. Остальные разряды троичного числа пусть будут нули (или пустые ячейки - это то же самое). Таким образом, мы ввели троичное число 1,13. В ячейке В15 появится десятичное изображение 1,3333… этого троичного числа. Увеличьте ширину столбца B, как на рис.1 или еще больше.

Выделите все ячейки с входными данными: для этого щелкните ячейку B8 и при нажатой клавише Ctrl выделите мышкой диапазон D8:AR8. После выделения войдите в меню Формат/Ячейки..., в открывшемся окне на вкладке Защита снимите флажок Защищаемая ячейка, и подтвердите это действие клавишей ОК. Теперь выделенные нами ячейки останутся доступными для ввода данных после защиты листа. Затем выделите строки 10 и 11, щелкните по ним правой клавишей мыши и выберите из контекстного меню «Скрыть». Чтобы защитить лист, войдите в меню Сервис/Защита/Защитить лист и нажмите ОК, не задавая пароль. Снимать защиту листа можно будет без пароля, через те же пункты меню Сервис/Защита.

Так мы застраховались от случайного изменения всех ячеек, кроме тех, где нужно будет вводить данные при решении задач. Попробуйте выполнить какие-нибудь непредусмотренные изменения. Попробуйте, например, отобразить скрытые строки, или изменить формулы. Необходимые для этого действия окажутся недоступны. Можно приступать к экспериментам. Сохраните файл, но не закрывайте его.

Первый проверочный опыт можно провести сейчас. Запишите в строке 8 в качестве основания исходной системы счисления число 10. Запишите в этой же строке цифры целой и дробной частей числа 1234,5. Эта запись автоматически преобразуется и отобразится в ячейке В15 в виде десятичного числа 1234,5. Теперь в ячейке В8 запишите 8. При таком основании исходной системы счисления число, записанное в строке 8, отобразится в виде десятичного числа 668,625. Это изображено на рис. 1. «Машина» работает.

2. Перейдите на лист «Из десятичной».

Чтобы построить «машину» для перевода десятичных чисел в системы счисления с любыми основаниями, разметьте ячейки: ячейку K7 – для ввода основания системы счисления B, ячейку B10 – для ввода целой части N исходного десятичного числа, и ячейку B18 – для ввода его дробной части Z (см. рис.2). Присвойте выбранным

Рисунок 2 – Примерная организация листа «Из десятичной»

ячейкам имена b, N и Z, используя окно имен. Обратите внимание: на рис.2 выделена ячейка K7 с записанным в ней числом 2, а в окне имен (вверху слева) высвечено имя b этой ячейки. Кроме того, строки 11, 12 и 19, 20 (с промежуточными результатами) на листе уже скрыты, нам же эти строки пока еще нужны для работы.

Ширину столбца B увеличьте.

Сделайте с помощью форматирования границ разметку диапазонов D10:W10 и D18:W18 для отображения цифр переведенного числа. Позднее можно будет поработать и над дизайном листа в целом. В ячейки для записи чисел B, N и Z запишите 2, 1190 и 0,625 соответственно; сейчас мы начнем перевод в двоичную систему счисления десятичного числа 1190,625.

В строках 11 и 12 разместим формулы для пересчета целой части N десятичного числа в заданную систему счисления с любым основанием B, реализуя правило последовательного деления N на B и вычисления остатков [1]. Формулы для определения частных от деления разместим в диапазоне ячеек D11:W11, под разрядами B -ичного числа. Строкой ниже введем формулы для вычисления последовательных остатков от деления N на B. Эти остатки и будут цифрами B -ичного числа.

Итак, введем в ячейку W11, под младшим разрядом, формулу =ЦЕЛОЕ(N/b). Поскольку результат деления – частное – не помещается в ячейку, то в ней выводится символ «решетка». В соседнюю слева ячейку V11 введем формулу = ЦЕЛОЕ(W11/b). Скопируем эту ячейку влево до старшего разряда, т. е. на весь диапазон D11:V11.

В ячейку W12 запишем формулу =ОСТАТ(N;b) – по которой определяется младшая цифра числа. В соседнюю слева ячейку V12 запишем =ОСТАТ(W11;b), т. к. далее мы должны получать остатки от деления каждого предыдущего частного на b. Скопируем эту формулу влево, до старшего разряда, т. е. в диапазон D12:V12.

Мы видим в строке 12 все цифры B -ичного (в данном случае – двоичного) числа, и на этом можно было бы остановиться. Однако потребуем еще, чтобы незначащие нули в старших разрядах не выводились. Тогда переносить полученные цифры в приготовленную для них «разрядную сетку» D10:W10 нужно с помощью условной функции «ЕСЛИ». Сделаем это так.

В клетку W10 введем формулу =W12. Младший разряд переносится в отображаемые цифры безусловно. Левее, в клетку V10, вводим формулу =ЕСЛИ(СУММ($D$12:V12)=0;””;V12). Смысл этой формулы таков: если слева от разряда V12 (включая и сам этот разряд) все нули, то в ячейку записывается результат «пусто» (пустой текст между апострофами), иначе пишется цифра из ячейки V12. Ячейку V10 с введенной формулой копируем влево до конца разрядной сетки. Если все сделано правильно, то результат перевода соответствует рис. 2.

Дробная часть Z десятичного числа переводится аналогично, только при этом применяется не деление, а умножение Z на основание системы счисления. После каждого умножения целая часть результата забирается (вычитается) из него и переносится в качестве очередной цифры в состав дробной части перевода числа [1]. При этом цифры дробной части появляются в порядке слева направо.

В строках 19 и 20 для такого перевода выполните следующие действия:

– в ячейку D19 введите =b*Z,

– в ячейку D18 введите =ЦЕЛОЕ(D19) – это первая цифра дробной части,

– в D20 вводите формулу =D19 - D18 – вычитаем целую часть из результата,

– в E19 – формулу =b*D20, и скопируйте эту ячейку вправо до W19,

– скопируйте ячейку D18 вправо вплоть до W18,

– скопируйте ячейку D20 вправо вплоть до W20.

Если все сделано правильно, то цифры дробной части будут такими, как на рис.2.

Теперь скройте строки 11, 12 и 19, 20. Выделите ячейки с исходными данными (K7, B10, B18), через меню формата ячеек снимите с них флажок «защищаемая ячейка» и защитите лист, не задавая пароля. Лист готов к экспериментам и к решению задач. Сохраните файл.

3. Устройство листа «Сложение» – наиболее простое в данной работе. Перейдите на этот лист. Разметив ячейки и диапазоны для ввода основания системы счисления, ввода цифр слагаемых и отображения суммы слагаемых (как на рис.3), введите в диапазон ячеек D12:AC12 формулы для вычисления переносов. Для этого введите в ячейку B8 число 8, а в ячейку AC12 – формулу =ЦЕЛОЕ((AC9+AC8+AD12)/$B$8). Смысл формулы в том, что, когда сумма двух разрядов и переноса из предыдущего разряда будет больше основания системы счисления, то сформируется перенос в следующий разряд. Скопируйте ячейку AC12 с формулой влево до ячейки D12.

Аналогично можно задать формулы для вычисления разрядов суммы. В ячейку AC10 занесите формулу =ОСТАТ(AD12+AC8+AC9;$B$8) – это часть той же суммы, остающаяся в данном разряде. Скопируйте эту ячейку влево до конца разрядной сетки.

Скройте строку 12. Введите цифры семеричных слагаемых как на рис.3. Если Вы не ошибались, то получится и соответствующая этому рисунку сумма.

На рис. 3 видно, что группа разрядов чисел «разделена» на листе на две части стрелками. Так можно условно отмечать положение разделительной запятой, когда нужно интерпретировать суммирование как операцию над дробными числами. Здесь, на рис. 3, сложены дробные числа из последнего варианта заданий к данной лаб. работе (табл. 1).

Выделите ячейку B8 и, прижимая клавишу Ctrl, выделите одновременно с ячейкой диапазон D8:AC9. Снимите через меню формата флажок защиты выделенных ячеек, т. к. эти ячейки нужно оставить доступными для ввода данных после защиты всего листа. Защитите лист и сохраните файл.

 

Рисунок 3 – Примерный вид листа «Сложение»

4. Перед тем, как выполнять индивидуальные варианты заданий, проведите предлагаемые ниже эксперименты и ответьте на поставленные вопросы.

4.1. Случай B >10. На листе «Из десятичной» введите для перевода число 1190,625 (т. е. N = 1190, Z = 0,625) и задайте основание системы счисления 16. Полученное в результате автоматического перевода шестнадцатеричное число изображается так:

      ,                                        

Цифры этого числа записаны в виде их десятичных значений. В стандартах информатики данное шестнадцатеричное число записывается в виде 4A6,A. Но, поскольку в выполняемой лабораторной работе основание B >10 может отличаться от 16 (оно может быть любым), то принятая нами запись цифр числа в виде их десятичных значений представляется достаточно удобной и универсальной.

Ответьте на вопросы. 1). Как представляется число 1190,62510 в двадцатеричной системе счисления? 2). Сколько значащих двадцатеричных цифр оно содержит?

4.2. Задайте N = 0 и Z = 0,1. Переведите указанное так десятичное число 0,110 в двоичную систему счисления (т. е. задайте B = 2). В двоичной записи получилась периодическая дробь (0,0001100110011...)2. Переведите десятичную дробь 0,110 в системы счисления с основаниями 2,...,9. Ответьте на вопросы. 1). Почему дробь получается периодической? 2). В каких случаях дробь с конечным числом цифр точно переводится в дробь с конечным числом цифр?

4.3. В предыдущем эксперименте, когда Вы испытывали вариант B = 8, период дроби представлял собой последовательность цифр 6314, однако в последних двух разрядах результата этот период сбился. Причина сбивки заключается в том, что компьютер использует двоичное внутреннее представление чисел и имеет ограниченную длину разрядной сетки; поэтому построенная нами «машина» для перевода чисел неизбежно округляет дроби во многих промежуточных операциях с ними. При точном переводе периодичность полученной дроби нигде не нарушалась бы.

Вопросы: Сколько неточных последних разрядов содержат результаты выполняемого «машиной» перевода десятичной дроби 0,110 в системы счисления с основаниями 1) B = 9; 2) B = 11; 3) B = 12?

4.4. Переведите в систему счисления с основанием 9 целое число 999999999 (задавая Z =0). В результате получится девятеричное число 2520607100, заканчивающееся двумя нулями.

Вопросы: 1). Можно ли было без осуществления перевода предсказать появление в конце числа двух нулей? 2). Сколько нулей будет в конце его троичной записи?

4.5. В [1] утверждается, что шестнадцатеричное число делится на 15, если сумма его цифр делится на 15. Переведите в шестнадцатеричную запись целое число N = 2595. 1). Чему равна сумма его цифр? 2). Подтверждается ли признак?

4.6. Проверьте следующий признак делимости на 7 числа, записанного в восьмеричной системе счисления: число делится на 7 тогда и только тогда, когда на 7 делится сумма его цифр. Переведите 651 в восьмеричную систему. 1). Какой получился результат перевода? 2). Выполняется ли упомянутый признак делимости на 7?

4.7. Перейдите на лист «В десятичную». Введите 2 в ячейку B8. Задайте для перевода из двоичной системы число 0,1. В результате автоматического перевода в десятичную дробь получилась дробь 0,5 с конечным числом значащих цифр. Задайте для перевода любую другую двоичную дробь и посмотрите на результат. 1). Объясните, почему всегда получается дробь с конечным числом значащих цифр?

4.8. Перейдите на лист «Сложение». Удалите все цифры из диапазона слагаемых. Не бойтесь нечаянно удалить содержимое ячеек суммы (в которых находятся формулы) - ведь лист Вы защитили. Выполните несколько сложений в двоичной системе счисления. Вопросы: 1). При каких условиях наш «сумматор» будет работать неправильно из-за переполнения его разрядной сетки? 2). Какой вид имеет наибольшее значение правильно вычисляемой суммы в двоичной записи? 3). Какое это будет десятичное число?

4.9. С помощью всех трех листов выполните следующие действия:

- переведите число 2460,738 в десятичную систему счисления;

- переведите полученное десятичное число с помощью листа «Из десятичной» обратно в восьмеричную систему. 1). Получилось ли вновь исходное число?

4.10. Проведите эксперимент, на основе которого выполняются индивидуальные задания к данной лабораторной работе. Суть эксперимента состоит в том, что две заданных величины представляются и складываются сначала в одной (исходной) системе счисления, потом в другой, и результаты сравниваются. Теоретически они, разумеется, должны совпадать точно.

Переведите заданное целое число X 7 = 24607 в десятичную систему счисления, затем из десятичной – в пятеричную. В результате получается преобразование 24607 ® 121445.

Переведите таким же способом число Y 7 = 1337 в пятеричную систему. В результате получится преобразование 1337 ® 2435.

На листе «Сложение» найдите сумму Z сначала семеричных представлений величин X и Y, а затем - их пятеричных представлений. Получается Z 7 = X 7+ Y 7 = 26237, Z 5 = X 5+ Y 5 = 124425. Переведите эти два разных представления суммы Z в десятичное число с помощью листа «В десятичную». Итог: выполнение операции сложения в обеих системах счисления дает один и тот же результат 99710.

Все выполненные действия представляются схематически такой «программой»:

X B ® X C; Y B ® Y C; X B + Y B = Z B ® Z 10; X C + Y C = Z C ® Z' 10 ; (1)

при этом в выполненном примере было задано основание исходной системы счисления B = 7, и основание дублирующей системы C = 5.

Ниже, в индивидуальных вариантах заданий, слагаемые не являются целыми числами. Поскольку при этом перевод и сложение чисел при выполнении «программы» (1) осуществляются с ограниченным числом разрядов, то числа Z 10 и Z' 10 могут точно и не совпасть. Разделительные стрелки на листе «Сложение» расположите приблизительно так же, как на рис.3. Если для записи целой части слагаемых или суммы окажется недостаточно места, сдвиньте стрелки на минимально необходимое число разрядов вправо. Для удобства перемещения стрелок их можно сгруппировать с помощью панели «Рисование».


ВАРИАНТЫ ЗАДАНИЙ К РАЗДЕЛУ 3

В отчете следует дать ответы на все вопросы, приведенные в п. 4.1 – 4.10 (под номерами со скобками).

 

Таблица 1 – Варианты заданий к работе

№ варианта Основание B исходной системы Число X B Число Y B Основание С дублирующей системы
    100,0001 100,0111  
    010,0110 110,1001  
    432,1414 042,5220  
    110,0010 111,0110  
    315,5087 111,5834  
    073,4821 632,4888  
    020,1222 221,2020  
    B42,AB0B 65F,8903  
    8AB,3F7F 5DB,02D2  
    452,0632 123,0016  
    30D,4A89 AAD,DC1E  
    100,1010 010,0010  
    300,0414 545,2315  
    772,4022 706,1470  
    141,0246 435,3044  
    855,8063 661,1871  
    431,0632 222,1003  
    125,3320 431,1235  
    012,4012 001,4020  
    234,5646 563,3034  

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...