Материал: Программная реализация механизма перевода чисел в различные системы счисления

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Программная реализация механизма перевода чисел в различные системы счисления

ФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное учреждение Высшего профессионального образования

«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

ИНСТИТУТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И ЕСТЕСТВЕННЫХ НАУК

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ПРИКЛАДНОЙ МАТЕМАТИКИ

Кафедра прикладной математики и информатики



Курсовая работа

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕХАНИЗМА ПЕРЕВОДА ЧИСЕЛ В РАЗЛИЧНЫЕ СИСТЕМЫ СЧИСЛЕНИЯ

по дисциплине: «Информатика и программирование»

студента Иванова Ивана Ивановича,

Научный руководитель: к.т.н. Смирнова В.В.


БЕЛГОРОД 2014

Содержание

Введение

. Теоретическая часть

. Разработка задачи средствами прикладных программ

. Разработка алгоритмов и структур данных

. Программная реализация алгоритмов перевода в различные системы счисления на языке программирования С#

. Тестирование разработанного программного обеспечения

Заключение

Список использованных источников

Приложение

Введение

Программная реализация перевода чисел в различные системы счисления в некоторых сферах деятельности человека является необходимостью. Данный вопрос является основным в данной курсовой работе, основной целью которой будет создание и реализация программного проекта. Основными задачами работы будет анализ теоретического материала по вопросу перевода чисел в различные системы счисления, а так же выбор возможного варианта программной реализации практического задания. Подготовка курсовой работы способствует:

-       закреплению, углублению и обобщению знаний, полученных студентами в процессе изучения лекционных курсов по дисциплине «Информатика и программирование»;

-       развитию умений и навыков, полученных при выполнении лабораторных работ;

-       применению этих знаний, умений и навыков к решению конкретных задач;

-       развитию навыков работы со специальной литературой и разработки программного обеспечения.

Язык программирования С# отличается минимализмом. Программы компилируются с помощью однопроходного компилятора <https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80>, чтобы каждой элементарной составляющей программы после компиляции соответствовало небольшое число машинных команд, а использование базовых элементов языка не задействовало библиотеку времени выполнения <https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F>. Однопроходный компилятор компилирует программу, не возвращаясь назад, к уже обработанному тексту. Поэтому использованию функций <https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)> и переменных должно предшествовать их объявление. Код на Си можно писать на низком уровне абстракции <https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%BE%D0%B9_%D0%B0%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F>, почти как на ассемблере <https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0>. Си называют «универсальным ассемблером» или «ассемблером высокого уровня», что отражает различие языков ассемблера для разных платформ и единство стандарта Си, код которого может быть скомпилирован без изменений практически на любой модели компьютера <https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80>. Си часто называют языком среднего уровня или даже низкого уровня, учитывая то, как близко он работает к реальным устройствам. Однако, в строгой классификации, он является языком высокого уровня. С# имеет массу преимуществ: простота, объектная ориентированность, типовая защищенность, сборка мусора, поддержка совместимости версий и многое другое. Данные возможности позволяют быстро и легко разрабатывать приложения. При создании С# его авторы учитывали достижения многих других языков программирования: C++, С, Java, Visual Basic и т.д. Ввиду высокой объектной ориентированности, язык С# подходит для быстрого конструирования различных компонентов - от высокоуровневой бизнес-логики до системных приложений, использующих низкоуровневый код. Программа на С# состоит из одного или нескольких файлов. Каждый файл может содержать одно или несколько пространств имен. Каждое пространство имен может содержать вложенные пространства имен и типы, такие как классы, структуры, интерфейсы, перечисления и делегаты- функциональные типы.# - это язык программирования, предназначенный для разработки самых разнообразных приложений, предназначенных для выполнения в среде .NET Framework. Язык C# прост, строго типизирован и объектно-ориентирован. Благодаря множеству нововведений C# обеспечивает возможность быстрой разработки приложений.

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

1. Теоретическая часть


Система счисления - это совокупность приемов и правил, по которым числа записываются и читаются. Существуют позиционные и непозиционные системы счисления. В непозиционных системах счисления вес цифры (т. е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа. Так, в римской системе счисления в числе ХХХII (тридцать два) вес цифры Х в любой позиции равен просто десяти.

В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Например, в числе 757,7 первая семерка означает 7 сотен, вторая - 7 единиц, а третья - 7 десятых долей единицы. Сама же запись числа 757,7 означает сокращенную запись выражения. Любая позиционная система счисления характеризуется своим основанием.

Основание позиционной системы счисления - количество различных цифр, используемых для изображения чисел в данной системе счисления. За основание системы можно принять любое натуральное число - два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т.д.

Целые числа в позиционных системах счисления. В каждой системе счисления цифры упорядочены в соответствии с их значениями: 1 больше 0, 2 больше 1 и т.д. Продвижением цифры называют замену её следующей по величине. Продвинуть цифру 1 значит заменить её на 2, продвинуть цифру 2 значит заменить её на 3 и т.д. Продвижение старшей цифры (например, цифры 9 в десятичной системе) означает замену её на 0. В двоичной системе, использующей только две цифры - 0 и 1, продвижение 0 означает замену его на 1, а продвижение 1 - замену её на 0.

Для образования целого числа, следующего за любым данным целым числом, нужно продвинуть самую правую цифру числа; если какая-либо цифра после продвижения стала нулем, то нужно продвинуть цифру, стоящую слева от неё. Применяя это правило, получаются первые десять целых чисел

· в двоичной системе: 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001;

· в восьмеричной системе: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11.

Люди предпочитают десятичную систему потому, что с древних времен считали по пальцам, а пальцев у людей по десять на руках и ногах. Не всегда и не везде люди пользуются десятичной системой счисления. В Китае, например, долгое время пользовались пятеричной системой счисления.

Компьютеры используют двоичную систему потому, что она имеет ряд преимуществ перед другими системами. Для ее реализации нужны технические устройства с двумя устойчивыми состояниями (есть ток - нет тока, намагничен - не намагничен и т.п.), а не, например, с десятью, как в десятичной;

-       представление информации посредством только двух состояний надежно и помехоустойчиво;

-       возможно применение аппарата булевой алгебры для выполнения логических преобразований информации;

-       двоичная арифметика намного проще десятичной.

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

Двоичная система, удобная для компьютеров, для человека неудобна из-за ее громоздкости и непривычной записи. Перевод чисел из десятичной системы в двоичную и наоборот выполняет машина. Однако, чтобы профессионально использовать компьютер, следует научиться понимать слово машины. Для этого и разработаны восьмеричная и шестнадцатеричная системы.

Числа в этих системах читаются почти так же легко, как десятичные, требуют соответственно в три (восьмеричная) и в четыре (шестнадцатеричная) раза меньше разрядов, чем в двоичной системе (ведь числа 8 и 16 - соответственно, третья и четвертая степени числа 2).

Для перевода десятичного числа в двоичную систему его необходимо последовательно делить на 2 до тех пор, пока не останется остаток, меньший или равный 1. Число в двоичной системе записывается как последовательность последнего результата деления и остатков от деления в обратном порядке.

Для перевода десятичного числа в шестнадцатеричную систему его необходимо последовательно делить на 16 до тех пор, пока не останется остаток, меньший или равный 15. Число в шестнадцатеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.

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

Пример. Число  перевести в восьмеричную систему счисления.  

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

Пример. Число  перевести в шестнадцатеричную систему счисления:

Для перевода восьмеричного числа в двоичное необходимо каждую цифру заменить эквивалентной ей двоичной триадой.

Пример. Число  перевести в двоичную систему счисления:

Для перевода шестнадцатеричного числа в двоичное необходимо каждую цифру заменить эквивалентной ей двоичной тетрадой.

Пример. Число  перевести в двоичную систему счисления:

При переходе из восьмеричной системы счисления в шестнадцатеричную и обратно, необходим промежуточный перевод чисел в двоичную систему.

Пример 1. Число  перевести в восьмеричную систему счисления:

Пример 2. Число  перевести в шестнадцатеричную систему счисления:

Обратный перевод числа:

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

.

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

.

2. Решение задачи средствами прикладных программ

счисление двоичный программирование перевод

Microsoft Excel (также иногда называется Microsoft Office <https://ru.wikipedia.org/wiki/Microsoft_Office> Excel) - программа <https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0> для работы с электронными таблицами <https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0>, созданная корпорацией Microsoft <https://ru.wikipedia.org/wiki/Microsoft> для Microsoft Windows <https://ru.wikipedia.org/wiki/Microsoft_Windows>, Windows NT <https://ru.wikipedia.org/wiki/Windows_NT> и Mac OS <https://ru.wikipedia.org/wiki/Mac_OS>. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и, за исключением Excel 2008 под Mac OS X <https://ru.wikipedia.org/wiki/Mac_OS_X>, язык макропрограммирования VBA <https://ru.wikipedia.org/wiki/VBA> (Visual Basic for Application). Microsoft Excel входит в состав Microsoft Office <https://ru.wikipedia.org/wiki/Microsoft_Office> и на сегодняшний день Excel является одним из наиболее популярных приложений в мире. Ценной возможностью Excel является возможность писать код на основе Visual Basic для приложений (VBA <https://ru.wikipedia.org/wiki/VBA>). Этот код пишется с использованием отдельного от таблиц редактора. Управление электронной таблицей осуществляется посредством объектно-ориентированной модели кода и данных. С помощью этого кода данные входных таблиц будут мгновенно обрабатываться и отображаться в таблицах и диаграммах (графиках). Таблица становится интерфейсом кода, позволяя легко работать изменять его и управлять расчётами

Система счисления - это метод представления чисел символическими знаками, в котором для удобной и компактной группировки чисел используется значение, называемое основанием. Наиболее распространенной является десятичная система с основанием 10 и набором знаков 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Однако в определенных случаях использование других систем счисления может быть более целесообразным. Например, в компьютерах, применяющих для выполнения вычислений и операций булеву логику, используется двоичная система счисления с основанием 2 (таблица 1).

Система счисления

Основание

Набор знаков

Двоичная

2

0,1

Восьмеричная

8

0, 1, 2, 3, 4, 5, 6, 7

Десятичная

10

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Шестнадцатеричная

16

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F


Перевод из десятичной системы счисления в двоичную систему счисления и обратно. Двоичная система счисления - это система, в которой для записи чисел используются две цифры 0 и 1. Основанием двоичной системы счисления является число 2. Для получения записи числа в двоичной системе используется представление этого числа с помощью степеней числа 2. В общем виде представление целого неотрицательного числа с помощью степеней двойки записывается так же, как и представление (1) с заменой числа 10 на число 2

 (1)

Здесь каждый из коэффициентов аn, an-1 ,···,a1, a0 является одной из двух двоичных цифр 0 или 1, причем an=1. Запись числа в двоичной системе строится так же, как и в десятичной: первой записывается цифра ап, второй - цифра ап -1 и т.д., последней - цифра а0. Двоичный код числа - запись этого числа в двоичной системе счисления.

Для того, чтобы выполнить преобразование двоичного числа в десятичное в MS Excel необходимо использовать функцию ДВ.В.ДЕС.

Перевод из шестнадцатеричной системы счисления в двоичную систему счисления

Шестнадцатеричная и двоичная системы счисления являются позиционными, то есть очередность каждой цифры в общем числе означает позицию соответствующего разряда. Перевод из одной системы в другую осуществляется разбиением искомого числа на разряды и перевод каждой цифры в двоичное число по соответствующей таблице.

Перевод из шестнадцатеричной системы в двоичную осуществляется методом представления каждого разряда исходного числа в виде четверки цифр двоичной системы по определенному принципу. Каждой цифре или букве шестнадцатеричного числа соответствует последовательность из четырех комбинаций чисел 0 и 1: 0 = 0000; 1 = 0001; 2 = 0100; 3 = 0011; 4 = 0100; 5 = 1001; 6 = 0110; 7 = 0111; 8 = 1000; 9 = 1001; А = 1010; B = 1011; C = 1100; D = 1101; E = 1110; F = 1111.

Пронумеруем разряды целой части некоторого шестнадцатеричного числа, справа налево, как 0,1,2…n (нумерация начинается с нуля). А разряды дробной части, слева направо, как -1,-2,-3…-m, то значение некоторого шестнадцатеричного числа может быть вычислено по формуле:

N = dn16n+dn-116n-1+…+d1161+d0160+d-116-1+d-216-2+…+d-(m-1)16-(m-1)+d-m16-m

Где: n - количество разрядов в целой части числа минус единица; m -количество разрядов в дробной части числа di - цифра стоящая в i-м разряде

Эта формула называется формулой поразрядного разложения шестнадцатеричного числа, т.е. числа записанного в шестнадцатиричной системе счисления. Если мы в этой формуле заменим число шестнадцать на некоторое произвольное число q, то получим формулу разложения для числа записанного в q-й системе счисления, т.е. с основанием q: