Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2007, 13:48   #1
HAMMAN
Пользователь
 
Аватар для HAMMAN
 
Регистрация: 09.01.2007
Сообщений: 92
Вопрос Выручайте - Кентов отчисляют!

Задание: сделать простой калькулятор, но только чтобы данные вводились Римскими цифрами и результат выходил тоже Римскими цифрами!!!Калькулятор простой готов уже, но только вот проблема с Римскими цифрами осталась!...

var
Form1: TForm1;
operand1,operand2:Real;
Result:Real;
a,b:Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
operand1:=StrToFloat(Edit1.Text);
operand2:=StrToFloat(Edit2.Text);
Result:=operand1+operand2;
Edit3.Text:=FloatToStr(Result);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
operand1:=StrToFloat(Edit1.Text);
operand2:=StrToFloat(Edit2.Text);
Result:=operand1*operand2;
Edit3.Text:=FloatToStr(Result);
end;
HAMMAN вне форума Ответить с цитированием
Старый 11.05.2007, 14:02   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,530
По умолчанию

в чем проблема? делаешь функцию автозамены букв V I L и т.д. на арабские цифры. т.е. калькулятор работает с арабскими цифрами, а пользователь видит римские. Нужно написать, всего 2 функции . На форуме есть код для преобразования
Alar вне форума Ответить с цитированием
Старый 11.05.2007, 14:24   #3
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Примерно в таком духе:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
FStr1, FStr2: string;
public
{ Public declarations }
end;
var
Form1: TForm1;
const
RimNum: array[1..20] of string =
('I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X',
'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX');
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) then
begin
beep;
key := #0;
end
else
begin
FStr1 := FStr1 + key;
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);
var
num: integer;
begin
num := StrToInt(FStr1);
if num <= 20
then Edit1.Text := RimNum[num]
else Edit1.Text := FStr1;
end;
procedure TForm1.Edit2Change(Sender: TObject);
var
num: integer;
begin
num := StrToInt(FStr2);
if num <= 20
then Edit2.Text := RimNum[num]
else Edit2.Text := FStr2;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) then
begin
beep;
key := #0;
end
else
begin
FStr2 := FStr2 + key;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
num: integer;
begin
num := StrToInt(FStr1)+StrToInt(FStr2);
if num <= 20
then Edit3.Text := RimNum[num]
else Edit3.Text := IntToStr(num);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
num: integer;
begin
num := StrToInt(FStr1)*StrToInt(FStr2);
if num <= 20
then Edit3.Text := RimNum[num]
else Edit3.Text := IntToStr(num);
end;
end.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 11.05.2007, 14:25   #4
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
в чем проблема? делаешь функцию автозамены букв V I L и т.д. на арабские цифры. т.е. калькулятор работает с арабскими цифрами, а пользователь видит римские. Нужно написать, всего 2 функции . На форуме есть код для преобразования
И где его посмотреть?
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 11.05.2007, 14:30   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,530
По умолчанию

http://programmersforum.ru/showthread.php?t=759
Alar вне форума Ответить с цитированием
Старый 11.05.2007, 17:15   #6
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Большое спасибо.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 11.05.2007, 17:15   #7
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Только как ограничение обходить?
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выручайте Panda Помощь студентам 6 08.07.2008 15:40
SDI приложения, выручайте lacost Общие вопросы C/C++ 9 30.05.2008 12:51
господа выручайте!! Stan Помощь студентам 2 25.06.2007 19:38