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

Автор работы: Пользователь скрыл имя, 22 Мая 2013 в 08:02, курсовая работа

Описание работы

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

Содержание работы

Введение …………………………………………………………………… 3
1 Системы счисления ……………………………………………………... 6
1.1 История создания систем счисления ………………………………… 6
1.2 Виды систем счисления ……………………………………………….. 8
1.3 Перевод чисел из одной системы счисления в другую …………… 13
2 Проектная часть ………………………………………………………... 16
2.1Постановка задачи ……………………………………………………. 16
2.2 Входные и выходные данные ……………………………………….. 16
2.3 Описание алгоритма ………………………………………………….. 17
2.4 Тестирование ………………………………………………………….. 21
Заключение ………………………………………………………………… 22
Глоссарий ………………………………………………………………….. 24
Список использованных источников

Файлы: 1 файл

Курсовая работа Программа перевода из одной системы счисления в другую.doc

— 216.00 Кб (Скачать файл)

uses //служебное (зарезервированное слово), определяет подключенные модули

 crt; //crt – содержит процедуры и функции, обеспечивающие управление текстовым режимом работы экрана.

var //служебное слово, определяет раздел описания глобальных переменных

num_sys1,num_sys2:integer; //целочисленные переменные, которые будут хранить основания систем счисления – исходная и итоговая, задаются пользователем

e:integer;// целочисленная переменная- для хранения точности вычисления

chislo,ch_c,ch_d:string; //строковые переменные, которые будут хранить число для перевода, целую часть числа и дробную часть числа соответственно   

const //служебное слово, определяет раздел описания констант

number:string[16]='0123456789ABCDEF';//строковая константа, хранит возможные символы систем счисления.

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

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

 Функция перевода целой части десятичного числа в любую систему счисления:

function FromDec(n,p:integer):string; //описание заголовка функции – служебное слово function Имя_функции(набор параметров: тип параметров): тип результата

var //раздел описания внутренних переменных

s:String; //переменная для хранения результата

begin //начало функции

 s:=''; //создаем пустую строку

 repeat //в цикле выполняем

 s:=number[(n mod p)+1]+s; // в начало строки помещаем очередной остаток от деления числа на основание итоговой системы счисления

 n:=n div p; //берем целую часть от деления числа на основание итоговой системы счисления

 until n=0;//пока число не будет равно 0

FromDec:=s;//присваиваем результат функции

end; //конец функции

Функция перевода дробной  части десятичного числа в любую систему счисления:

function DrFromDec(n:real;p,k:integer):string;

var

s:String; //переменная для хранения результата

i:integer; //счетчик для цикла for

begin //начало функции

s:=''; //создаем пустую строку

for i:=1 to k do //в цикле выполняем до заданной точности

 begin

 s:=s+number[trunc(n*p)+1]; // в конец строки помещаем целую часть от умножения числа на основание итоговой системы счисления

 n:=frac(n*p); //берем остаток от умножения числа на основание итоговой системы счисления

end;

 DrFromDec:=s; //присваиваем результат функции

end; //конец функции

Функция перевода целой  части числа любой системы  счисления в десятичное:

function ToDec(n:string;p:integer):integer; //описание заголовка функции – служебное слово function Имя_функции(набор параметров: тип параметров): тип результата

var //раздел описания внутренних переменных

s,i:integer;//целочисленные переменные – s-результат, i-счетчик для цикла

begin //начало функции

s:=0; //обнуляем результат

for i:=1 to length(n) do //пробегая в цикле символы числа

s:=s*p+pos(n[i],number)-1; //вычисляем сумму

ToDec:=s; //присваиваем результат функции – итоговое число

end; //конец функции

Функция перевода дробной  части числа любой системы  счисления в десятичное:

function DrToDec(n:string;p:integer):real;

var //раздел описания внутренних переменных

s,i:integer;//целочисленные переменные – s-результат, i-счетчик для цикла

begin //начало функции

s:=0; //обнуляем результат

for i:=length(n) downto 1 do //пробегая в цикле символы числа с конца к началу

 s:=(s+pos(n[i],number)-1)/p; //вычисляем сумму

DrToDec:=s; //присваиваем результат функции – итоговое число

end; //конец функции

Основная программа

begin //начало программы//процедура очистки экрана

 clrscr; //вывод текста

 writeln('Из какой системы счисления:'); 

repeat //считываем основание исходной  системы счисления

readln(num_sys1);

until (num_sys1>=2) and (num_sys1<=16); //пока не введут от 2 до 16

writeln('Введите исходное число:'); //вывод текста

readln(chislo); //считываем число для перевода

writeln('В какую систему счисления:'); //вывод текста

repeat //считываем основание итоговой  системы счисления

readln(num_sys2);

until (num_sys2>=2) and (num_sys2<=16); //пока не введут от 2 до 16

writeln('Точность  перевода (знаков после запятой)'); //вывод текста

readln(e); //считываем требуемую точность вычисления

while chislo[1]='0' do //пока в начале числа стоят 0

 delete(chislo,1,1); //удаляем 0

 if pos('.',chislo)=0 then //если в числе нет точки, т.е. число целое,то

begin

 ch_c:=chislo; //целой частью будет все число

 ch_d:='';//дробная часть пустая

 end

 else // иначе, т.е. число дробное, выделяем целую и дробную части

 begin

 ch_c:=copy(chislo,1,pos('.',chislo)-1); //копируем целую часть числа (до точки)

 ch_d:=copy(chislo,pos('.',chislo)+1,length(chislo)); //копируем дробную часть числа после точки до конца 

 end;

writeln('Перевод ',chislo,' из  ',num_sys1,' системы счисления в ',num_sys2,' систему   счисления:'); //вывод текста

writeln(FromDec(ToDec(ch_c,num_sys1),num_sys2),',',DrFromDec(DrToDec(ch_d,num_sys1),num_sys2,e)); //вывод результата (в качестве параметров выступают значения функций перевода целой и дробной части числа из одной системы счисления в другую)

readln;//для задержки экрана

end.//конец программы

 

    1.  Тестирование

 

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

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

Проверка работы программы  на разных наборах входных данных    (Приложение Б).

Заключение

 

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

В какой системе счисления лучше  записывать числа - это вопрос удобства и традиций. С технической точки  зрения, в ЭВМ удобно использовать двоичную систему, так как в ней  для записи числа используется всего  две цифры 0 и 1, которыми можно представить двумя легко различимыми состояниями «нет сигнала» и «есть сигнал».

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

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

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

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

При написании программы  использовался язык программирования высокого уровня Turbo Pascal. Этот язык является мощным инструментальным средством написания прикладных программ и  его можно использовать в реальной работе. Разработчиком языка Turbo Pascal  является фирма Borland. Программное обеспечение  в среде Turbo Pascal реализуется на процедурно- ориентированном языке Паскаль. Язык Turbo Pascal предоставляет расширенные возможности объектно-ориентированного программирования: абстрактность, модульность, наибольшую структурность, встроенные непосредственно в язык.

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

Достоинствами моей программы являются:

1. Программе не требуется инсталляция, поэтому она не засоряет операционную систему различными библиотеками и файлами.

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

3. Алгоритм программы подходит  для перевода целых и дробных  чисел с заданной точностью.

4. Программный продукт малотребователен к системным ресурсам компьютера.

В результате исследования были выявлены следующие недостатки полученного программного продукта:

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

2. Пользовательский графический  интерфейс примитивен.

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

 

Глоссарий

п/п

Понятие

Определение

11.

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

Это способ записи чисел и соответствующие  ему правила действия над числами.

4.

Позиционная система  счисления

Система в которой количественное значение, обозначаемое цифрой в записи числа, зависит от позиции в цифры  в числе.

5.

Непозиционная система счисления

Система, в которой от положения  знака числа не зависит количественное значение, которое он обозначает

6.

Алгоритм

Точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к  искомому результату

7.

Программирование

Процесс определения последовательности инструкций, которые должен выполнить компьютер

11.

Составной оператор

Последовательность произвольных операторов программы заключения в  операторные скобки (BEGIN-END)

12.

Условный оператор

Оператор с ключевыми словами  IF-THEN-ELSE для программирования алгоритмов разветвляющей структуры

13.

Целый тип (INTEGER)

Элементы подмножества целых чисел


 

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

1

Марченко, А.И. Программирование в среде Turbo Pascal 7.0 [Текст] / А.И. Марченко, Л.А. Марченко. – СПб.: КОРОНА принт, 2004. – 464 с. ISBN 966-7140-32-6.

2

Иванова, Галина Сергеевна. Основы программирования [Текст]: учебник для вузов / - 3-е изд., испр.- М.: Изд-во МГТУ им. Н.Э. Баумена, 2004.- 416 с.: ил. (Сер. Информатика в техническом университете.) ISBN 5-7038-2487-7

3

Милов А.В. Основы программирования в задачах и примерах: Учебный курс. Фолио, 2002, 400 стр. ISBN 966-03-1717-4

4

Семакин, Игорь Геннадьевич. Информатика и ИКТ 9 класс - М.: Издательство БИНОМ. Лаборатория знаний 2009, 341стр. ISBN978-5-9963-0027-3.

5

Марысаев В.Б. Персональный компьютер: Программное обеспечение. РИК Русанова Познавательная книга плюс, 2000, 192 стр. ISBN 5-8321-0077-8

6

Федоренко Ю. Алгоритмы и программы на Turbo Pascal. Учебный курс - Издательство Питер 2001, 240стр, ISBN 5-318-00102-5 .

7

Павловская Т.А. Паскаль: Программирование на языке высокого уровня: Практикум. Издательство Питер, 2006, 317 стр. ISBN 5-94723-008-6

8

Перминов О.Н. Программирование на языке Паскаль. — Издательство «Радио и связь», 1988, 221 стр. ISBN: 5-256-00158-2

9

Фаронов В. В. Turbo Pascal 7.0. Практика программирования. Учебное пособие Издательство «Нолидж»,1999 ,ISBN: 5-89251-012-3

10

Ускова О. Ф. Программирование на языке Паскаль: задачник  -Издательство Питер, 2002, ISBN 5-318-00553-5


 

Приложения

А

Б

В





Информация о работе Программа перевода чисел из одной системы счисления в другую