Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.05.2009, 13:07
Kiddie Kiddie вне форума
Прохожий
 
Регистрация: 24.05.2009
Сообщения: 2
Репутация: 10
По умолчанию Задача с системами исчисления

Прошу помочь решить несколько вопросов.
Сама задача такова: необходимо зделать калькулятор систем исчисления, тоесть перевод вещественных чисел в разные сс(2\8\10\16) и обратно, а также их складывать вычитать и умножать. Выобор сс осуществляется нажатием на радиобаттом и таким образом числа в трех едитах меняются в другую сс. Такой вопрос: как зделать, что б после перевода чисел в другую сс(например в двоичную)числа складывались, омножались итд уже в выбраной системе счисления, а не определялись как десятичные(например двоичное число 1001 не определялось как тысяча один).
И второй вопрос, помогите найти ошибку в переводе в 16ричную систему(точнее ошибку не выбивает, а отображает только в одном эдите и не A B C D F, а непонятные символы.
Код:
procedure TForm1.RadioButton4Click(Sender: TObject);
var
result: string;
remainder: word;
c: char;
num: word;
result2: string;
remainder2: word;
c2: char;
num2: word;
result3: string;
remainder3: word;
c3: char;
num3: word;


begin
num:=strtoint(edit1.Text);
num2:=strtoint(edit2.Text);
num3:=strtoint(edit3.Text);

begin
result := '';
while num <> 0 do
begin
remainder := num mod 16;
num := num div 16;
If remainder = 10 then c:='A';
If remainder = 11 then c:='B';
If remainder = 12 then c:='C';
If remainder = 13 then c:='D';
If remainder = 14 then c:='E';
If remainder = 15 then c:='F';
result := c + result;

end;
edit1.Text := result;
end;

begin
result2 := '';
while num2 <> 0 do
begin
remainder2 := num2 mod 16;
num2 := num2 div 16;
If remainder = 10 then c:='A';
If remainder = 11 then c:='B';
If remainder = 12 then c:='C';
If remainder = 13 then c:='D';
If remainder = 14 then c:='E';
If remainder = 15 then c:='F';
result2 := c2 + result2;
end;
edit2.Text := result2;
end;

begin
result3 := '';
while num3 <> 0 do
begin
remainder3 := num3 mod 16;
num3 := num3 div 16;
If remainder = 10 then c:='A';
If remainder = 11 then c:='B';
If remainder = 12 then c:='C';
If remainder = 13 then c:='D';
If remainder = 14 then c:='E';
If remainder = 15 then c:='F';
result3 := c3 + result3;
end;
edit3.Text := result3;
end;

end;
Admin: Пользуемся тегами!

Последний раз редактировалось Admin, 24.05.2009 в 13:10.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:47.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025