|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.05.2007, 13:48 | #1 |
Пользователь
Регистрация: 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; |
11.05.2007, 14:02 | #2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,530
|
в чем проблема? делаешь функцию автозамены букв V I L и т.д. на арабские цифры. т.е. калькулятор работает с арабскими цифрами, а пользователь видит римские. Нужно написать, всего 2 функции . На форуме есть код для преобразования
|
11.05.2007, 14:24 | #3 |
Форумчанин
Регистрация: 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.
Не надо ничего усложнять. Все достаточно тривиально.
|
11.05.2007, 14:25 | #4 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
И где его посмотреть?
Не надо ничего усложнять. Все достаточно тривиально.
|
11.05.2007, 14:30 | #5 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,530
|
|
11.05.2007, 17:15 | #6 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
Большое спасибо.
Не надо ничего усложнять. Все достаточно тривиально.
|
11.05.2007, 17:15 | #7 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
Только как ограничение обходить?
Не надо ничего усложнять. Все достаточно тривиально.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выручайте | Panda | Помощь студентам | 6 | 08.07.2008 15:40 |
SDI приложения, выручайте | lacost | Общие вопросы C/C++ | 9 | 30.05.2008 12:51 |
господа выручайте!! | Stan | Помощь студентам | 2 | 25.06.2007 19:38 |