Форум программистов, компьютерный форум CyberForum.ru

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Jessy James
2 / 2 / 0
Регистрация: 24.06.2013
Сообщений: 209
#1

Калькулятор Систем Счисления - Delphi

02.12.2013, 20:29. Просмотров 3031. Ответов 13
Метки нет (Все метки)

Написать программу(калькулятор систем счисления) в Lazarus которая будет переводить число из произвольной СС в другую произвольную СС начиная с 2-16 СС. Ещё чтобы была возможность вводить число уже в произвольной СС.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2013, 20:29     Калькулятор Систем Счисления
Посмотрите здесь:

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

Написать на Делфи калькулятор систем счисления. - Delphi
Всем доброго времени суток.Я понимаю что я очередной вася с 0 постами который хочет чтоб ему помогли но всё же задачка лёгкая для...

Создать калькулятор для различных систем счисления - Delphi
Создать целочисленный калькулятор позволяющий работать в десятичной двоичной восьмеричной и шестнадцатиричной системе счисления

Калькулятор систем счислений - Delphi
Доброе время суток форумчане, помогите написать программу на Delphi, а именно калькулятор систем счислений, буду благодарен! :)

Преобразование из систем счисления - Delphi
Преобразование из систем счисления: 16-тиричной, 8-ричной, 3-ичной, 2-ичной

Перевод систем счисления - Delphi
Здравствуйте, помогите пожалуйста не могу реализовать перевод из девятнадцатеричной системы в десятичную.. unit Unit1; interface ...

Преобразование систем счисления - Delphi
Помогите написать программу в Delphi Перевод числа из 2сс в 10сс,8сс и 16сс

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jessy James
2 / 2 / 0
Регистрация: 24.06.2013
Сообщений: 209
04.12.2013, 19:16  [ТС]     Калькулятор Систем Счисления #2
Как сделать операции сложение, вычитание, умножение, деление с учётом всех ограничений?

Добавлено через 11 минут
И как сделать так, чтобы вводимому мною числу можно присваивить любую СС, не только десятичную?
ZfoxAK
447 / 432 / 83
Регистрация: 26.11.2012
Сообщений: 1,736
05.12.2013, 07:00     Калькулятор Систем Счисления #3
Цитата Сообщение от Jessy James Посмотреть сообщение
Как сделать операции сложение, вычитание, умножение, деление с учётом всех ограничений?
О каких оганичений идет речь? (Деление на 0)? ....
Цитата Сообщение от Jessy James Посмотреть сообщение
Как сделать операции сложение, вычитание, умножение, деление
Например приведение всех вводимых значений к одной системе счислений например к десятичной и производить операции сложения и т.д., результат переводит в исходную СС.
Цитата Сообщение от Jessy James Посмотреть сообщение
И как сделать так, чтобы вводимому мною числу можно присваивить любую СС, не только десятичную?
Ограничить ввод знаков изходя из системы счисления.
Arigato
Программист
280 / 177 / 95
Регистрация: 05.12.2013
Сообщений: 672
Записей в блоге: 5
05.12.2013, 12:22     Калькулятор Систем Счисления #4
Что еще за калькулятор, обычный кнопочный или надо вычислить выражение, записанное в строке?
Jessy James
2 / 2 / 0
Регистрация: 24.06.2013
Сообщений: 209
05.12.2013, 13:29  [ТС]     Калькулятор Систем Счисления #5
Цитата Сообщение от Arigato_RU Посмотреть сообщение
Что еще за калькулятор, обычный кнопочный или надо вычислить выражение, записанное в строке?
Кнопочный.
Arigato
Программист
280 / 177 / 95
Регистрация: 05.12.2013
Сообщений: 672
Записей в блоге: 5
05.12.2013, 13:36     Калькулятор Систем Счисления #6
Тогда о ограничениях речь, чтобы деления на ноль не было? Если пользователь вводит число кнопками, то букву он ввести не может. Единственное, что при нажатии десятичной точки надо проверять, чтобы других точек в запаси числа еще не было.
Jessy James
2 / 2 / 0
Регистрация: 24.06.2013
Сообщений: 209
05.12.2013, 13:38  [ТС]     Калькулятор Систем Счисления #7
И что значит граничить ввод знаков изходя из системы счисления?
Вот операция по переводу из 10 СС в любую другую, что сюда нужно добавить, чтобы выбирать для вводимого числа свою произволшьную СС?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button1Click(Sender: TObject);
begin
s:=Edit1.text; //число
osn:=StrToint(Edit2.Text);
if pos(',',s)<>0 then
begin
intc:=StrToInt(copy(s,1,pos(',',s)-1)); //целая часть
frcc:=StrToInt(copy(s,pos(',',s)+1,length(s)-pos(',',s)));// дробная часть
Label1.Caption:=Convert(intc,osn)+','+Convert(frcc,osn);
end
else if  pos(',',s)=0 then
Label1.Caption:=Convert(StrToInt(s),osn);
end;
ZfoxAK
447 / 432 / 83
Регистрация: 26.11.2012
Сообщений: 1,736
06.12.2013, 05:52     Калькулятор Систем Счисления #8
Цитата Сообщение от Jessy James Посмотреть сообщение
И что значит граничить ввод знаков изходя из системы счисления?
По мимо десятичной СС существует много других. Наиболее известных: двоичная т.е. используется знаки 0, 1 тогда необходимо ограничить ввод только этих знаков; 8-ная соответсвенно 0,1,2,3,4,5,6,7;
16-ная 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F в которой как видно из ряда присутсвуют и буквы.

Добавлено через 6 минут
Цитата Сообщение от Jessy James Посмотреть сообщение
Convert
Если это не собсвенная функция, то Convert
Функция Преобразует одну величину измерения в другую например длины, массы и т.д.

Добавлено через 9 минут
Здесь готовые коды преобразование СС
Jessy James
2 / 2 / 0
Регистрация: 24.06.2013
Сообщений: 209
06.12.2013, 06:08  [ТС]     Калькулятор Систем Счисления #9
Я понял вас, я не так выразился...
В общем, у меня 4 Edit на форме...
В 1 ввожу число(оно ведь вводится в 10тичной СС?)
Во 2 ввожу СС для этого числа
В 3 ввожу СС в которую хочу перевести число
В 4 результат.
Так вот мне надо как то связать 1 и 2 Эдит...
ZfoxAK
447 / 432 / 83
Регистрация: 26.11.2012
Сообщений: 1,736
06.12.2013, 06:49     Калькулятор Систем Счисления #10
Цитата Сообщение от Jessy James Посмотреть сообщение
В 1 ввожу число(оно ведь вводится в 10тичной СС?)
В Edit вводится знаки, а не цифры по этому результатом будет строка типа string. А вот какие знаки могу быть внесены определяет программист. Для определения СС если число СС для работы ограничено 1-5 шт. то лучше использовать RadioButton расположенных на компоненте группирования GroupBox. Что позволит устанавливать выбор для одной компоненты RadioButton из нескольких.
Цитата Сообщение от Jessy James Посмотреть сообщение
Так вот мне надо как то связать 1 и 2 Эдит...
в процедуре обработки события OnChange компоненты Edit1 пишется код типо
Delphi
1
IF Edit2.text = 2 then //действия связанные с СС 2
. Или Case
ZfoxAK
447 / 432 / 83
Регистрация: 26.11.2012
Сообщений: 1,736
06.12.2013, 07:03     Калькулятор Систем Счисления #11
Вот пример.
Вложения
Тип файла: rar RadioBut.rar (163.8 Кб, 102 просмотров)
Булат Шакиров
Заблокирован
07.12.2013, 16:40     Калькулятор Систем Счисления #12
Могу дать заготовку:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
function stepen(x,n:longint):longint;
var
k,i:longint;
begin
k:=1;
if n=0 then
k:=1
else
for i:=1 to n do
k:=k*x;
stepen:=k;
end;
function _10toR(x:longint;R:longint):string;
var
i,ost:longint;
s,st,chislo:string;
begin
repeat
ost:=x mod R;
x:=x div R;
if ost>9 then
st:=chr(ord('A')-10+ost)
else str(ost,st);
s:=s+st;
until x=0;
for i:=1 to length(s) do
chislo:=chislo+s[length(s)-i+1];
_10toR:=chislo;
end;
function _Rto10(s:string;R:longint):longint;
var
i,z,m,n:longint;
begin
m:=0;
for i:=1 to length(s) do
begin
val(s[i],n,z);
if z<>0 then
n:=10+ord(UpCase(s[i]))-ord('A');
m:=m+stepen(R,length(s)-i)*n;
end;
_Rto10:=m;
end;
function AnyToDec(s:string;R:longint):real;
var
ints:string;
doubles:string;
intR:longint;
i,z,n:longint;
doubleR,m:real;
begin
ints:=copy(s,1,pos('.',s)-1); //целая часть
intr:=_Rto10(ints,r);
doubles:=copy(s,pos('.',s)+1,Length(s)-1); //дробная часть
m:=0;
for i:=1 to length(doubles) do
begin
val(doubles[i],n,z);
if z<>0 then
n:=10+ord(UpCase(doubles[i]))-ord('A');
m:=m+n/(stepen(R,i));
end;
doubleR:=m+intr; // <---- Здесь точность теряется
AnyToDec:=doubler;
end;
function DecToAny(x:real;R:longint):string;
var
tochnost,intx : longint;
doublex,tempx : real;
ints,doubles : string;
begin
ints:=_10toR(Round(int(x)),r);
doublex:=frac(x);
doubles:='';
tochnost:=1;
while (doublex>0.0) or (tochnost=8) do
begin
doublex:=doublex*r;
intx:=round(doublex-frac(doublex));
doublex:=doublex-intx;
doubles:=doubles+_10toR(intx,r);
tochnost:=tochnost+1;
end;
DecToAny:=ints+'.'+doubles;
end;
begin
writeln(_Rto10('12abcdef',16));
Writeln(_10toR(313249263,16));
writeln(AnyToDec('def.EFA',16):32:12);
Writeln(DecToAny(313249263.9296875,16));
readln;
end.
Sony_16
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 22
01.06.2015, 16:49     Калькулятор Систем Счисления #13
апппппппппппппппппппппппппппппппппп
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2015, 17:21     Калькулятор Систем Счисления
Еще ссылки по теме:

Перевод систем счисления - Delphi
Здравствуйте! Нужно сделать программу, 3 поля, в одно вводится число, во второе основание текущей системы счисления, в третье основание...

Перевод из разных систем счисления. - Delphi
Написал код для программы по переводу из 10-чной системы счисления в 2,8,16-ичные системы. все работает, но в 16-ричной после 10 идут...

Перевод систем счисления мажду 2-ой, 8-ой и 10-ой - Delphi
Пожалуйста помогите сделать програму чтоб переводила из 10 в 8,из 2 в 8 и обратно на delphi

Создание конвертера для систем счисления с основанием 2 8 10 16. - Delphi
Привет. Нужна помощь с курсовой, строки поджимают, препод дал тему: &quot;Создание конвертера для систем числения с основой 2 8 10 16.

ПРограмма перевода систем счисления с математическим действием(интересно:)) - Delphi
Вообшем суть в следуюшем: Составить программу которая будет переводить два числа из любой системы счисления (3..16) в двоичную в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Mawrat
12778 / 5684 / 672
Регистрация: 19.09.2009
Сообщений: 8,838
01.06.2015, 17:21     Калькулятор Систем Счисления #14
Есть код: Перевод представлений любых чисел между любыми системами счисления с основанием 2..36. Там, кроме прочего, есть функции StrToNum() и NumToStr().
StrToNum() - переводит представление в любой системе счисления - в число.
NumToStr() - представляет число в любой системе счисления.

В калькуляторе можно действовать так. Сначала получаем числа - с помощью вызовов StrToNum(). Затем, выполняем действия над этими числами. И потом числовой результат представляем в нужной системе счисления с помощью вызова NumToStr().
Yandex
Объявления
01.06.2015, 17:21     Калькулятор Систем Счисления
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru