- •Глава 1. Анализ инструментальных средств разработки по 9
- •Глава 2. Разработка программного комплекса 10
- •Глава 3. Тестирование программы и руководство 11
- •Введение
- •Системы счисления
- •Перевод чисел из произвольной сс в десятичную и обратно.
- •Глава 1. Анализ инструментальных средств разработки по
- •1.1 Среда Lazarus
Перевод чисел из произвольной сс в десятичную и обратно.
Перевод чисел из произвольной системы в десятичную. Для перевода числа из любой позиционной СС в десятичную необходимо использовать развернутую форму числа, заменяя, если это необходимо, буквенные обозначения соответствующими цифрами. Например:
11012=1*23+1*22+0*21+1*20=1310
17D.ECH=12·16-2 + 14·16-1 +13·160 + 7·161 + 1·162=381.921875
Перевод чисел из десятичной СС в заданную.
1) Для преобразования целых чисел десятичной системы счисления в число любой системы счисления последовательно выполняют деление нацело на основание СС, пока не получат нуль. Числа, которые возникают как остаток от деления на основание СС, представляют собой последовательную запись разрядов числа в выбранной СС от младшего разряда к старшему. Поэтому для записи самого числа остатки от деления записывают в обратном порядке.
Например:
Читая остатки от деления снизу вверх, получим 111011011.
Проверка:
1*28+1*27+1*26+0*25+1*24+1*23+0*2 2+1*21+1*20= 1+2+8+16+64+128+256=47510
2) Для преобразования десятичных дробей десятичной СС в число любой СС последовательно выполняют умножение на основание системы счисления , пока дробная часть произведения не станет равной нулю. Полученные целые части являются разрядами числа в новой системе, и их необходимо представлять цифрами этой новой системы счисления. Целые части в дальнейшем отбрасываются.
Например: перевести число 0.375 10 в двоичную СС.
Полученный результат - 0.0112.
Необходимо отметить, что не каждое число может быть точно выражено в новой системе счисления, поэтому иногда вычисляют только требуемое количество разрядов дробной части, округляя последний разряд.
Глава 1. Анализ инструментальных средств разработки по
1.1 Среда Lazarus
Lazarus — свободная среда разработки программного обеспечения для компилятора Free Pascal. Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении.
Позволяет достаточно несложно переносить Delphi-программы с графическим интерфейсом в различные операционные системы: Linux, FreeBSD, Mac OS X, Microsoft Windows. Начиная с Delphi XE2 в самом Delphi имеется возможность компиляции программ для Mac OS X и iOS.
Lazarus основан на библиотеке визуальных компонентов Lazarus Component Library (LCL). В настоящее время практически полностью поддерживает виджеты Win32, GTK1, GTK2, Carbon. В разработке находятся виджеты Qt и WinCE. Поддерживает преобразование проектов Delphi. Реализован основной набор элементов управления. Редактор форм и инспектор объектов максимально приближены к Delphi.
Lazarus имеет интерфейс отладки (используется внешний отладчик GDB) и простой переход для Delphi программистов благодаря близости LCL к VCL.
Пакет имеет полностью юникодный (UTF-8) интерфейс и редактор, поэтому отсутствуют проблемы с импортом кода, содержащего национальные символы. В Lazarus имеется мощный редактор кода, включающий систему подсказок, гипертекстовую навигацию по исходным текстам, автозавершение кода и рефакторинг, а также форматирование кода “из коробки” использованием механизмов Jedi Code Format. В нем осуществлена поддержка двух стилей ассемблера: Intel и AT&T (поддерживаются со стороны компилятора).
В Lazarus осуществлена поддержка множества типов синтаксиса Pascal: Object Pascal, Turbo Pascal, Mac Pascal, Delphi, поддерживаемых со стороны компилятора. Он имеет собственный формат управления пакетами.
Авто сборка самого себя (под новую библиотеку виджетов) осуществляется нажатием одной кнопки. Lazarus компилирует проекты в следующие ОС: Linux, Microsoft Windows (Win32, Win64), Mac OS X, FreeBSD, WinCE, OS/2.
Недостатками среды Lazarus является отсутствие полной совместимости с Delphi (хотя в отличие от Delphi предоставляет возможность создавать более кроссплатформенные приложения), а также отсутствие полной документации, хотя она доступна в виде Wiki — учебников, которые могут редактировать сами пользователи.
При компиляции с настройками проекта по умолчанию получается большой файл, размер которого может достигать 14,1 Мб. Без генерации отладочной информации размер файла примерно 1,8 Мб.
Глава 2. Разработка программного комплекса
2.1.Создание интерфейса
Главная форма содержит основные элементы интерфейса и даёт доступ ко всем функциям
Рис(1)
Рисунок 1 - главная форма программы
Форма Form1 содержит следующие элементы управления:
поле для просмотра введенных и вычисленных значений;
клавиши управления: для ввода цифр, вычисления данных;
Глава 3. Тестирование программы и руководство
3.1 Тестирование
Для тестирования программы производились различные манипуляции с данными, искусственно создавались всевозможные критические ситуации.
Тест 1. Ввод цифровых данных.
При вводе цифровых данных ошибок не возникает.
Тест 2. Ввод одной и той же системы счисления.
При вводе одной и той же системы счесления на экран выводится сообщение
3.2 Руководство администратора
Программа поставляется в виде исполнимого файла «SS.exe» размером 15 МБ не требует установки и дополнительной настройки.
Программа не разделяет полномочия на пользовательские и администраторские, вследствие чего руководство администратора будет идентично руководству пользователя.
3.3 Руководство пользователя
Программа предназначена для произведения элементарных действий перевода систем счисления.
Для ввода числовых,буквеных значений используется edit.
Заключение
В рамках курсовой работы была разработана программа над числами производящая перевод из одной системы счисления в другую.
При разработке данного программного средства применялся язык программирования Pascal.
Список использованной литературы
Попов Е.А. Экспресс курс программирования в Lazarus,2017г.
Дятченко Д.А. Методические указания к выполнению курсовой работы по дисциплине «Программирование и алгоритмически языки» – Северодонецк, 2015.
Абрамов В.Г., Трифонов Н.П., Трифонова Т.Н. Введение в язык Паскаль, 2014 г.
Бендукидзе А.Д. О системах счисления // Квант - 1975 - №8 - с 59-61.
Гутер Р.С. Вычислительные машины и системы счисления // Квант-1971 -№2.
Приложение
Приложение 1
unit Unit1;
interface
uses
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var
Form1: TForm1;
cs1, cs2: integer;
td: string;
const
digit: string[36] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
implementation
{$R *.dfm}
{функция перевода Dec числа в любую сс}
function FromDec(n, r: longint): string;
var
s: string;
begin
s := '';
repeat
s := digit[(n mod r) + 1] + s;
n := n div r;
until n = 0;
FromDec := s;
end;
{фунция перевода любой сс в Dec}
function ToDec(n: string; r: longint): longint;
var
m, i: longint;
begin
m := 0;
while n[1] = '0' do
delete(n, 1, 1);
for i := 1 to length(n) do
m := m * r + pos(n[i], digit) - 1;
ToDec := m;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,k:integer;
begin
val(Edit1.Text,cs1,k);
if(k<>0)or not(StrToInt(Edit1.Text)in [2..36])then
begin
ShowMessage('Исходная СС введена неверно, повторите ввод');
Edit1.Clear;
Edit1.SetFocus;
exit
end;
td:=Edit2.Text;
k:=0;
i:=1;
while(i<=length(td))and(k=0) do
if pos(td[i],copy(digit,1,cs1))=0 then k:=1
else inc(i);
if(td='')or(k=1) then
begin
ShowMessage('Исходное число введено неверно, повторите ввод');
Edit2.Clear;
Edit2.SetFocus;
exit
end;
val(Edit3.Text,cs2,k);
if(k<>0)or not(StrToInt(Edit3.Text)in [2..36])or(cs1=cs2)then
begin
ShowMessage('Итоговая СС введена неверно, повторите ввод');
Edit3.Clear;
Edit3.SetFocus;
exit
end;
Edit4.Text := FromDec(ToDec(td, cs1), cs2);
end;
end.
