![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ПЛИЗ HELP!!!
kassel © (2006-11-09 21:32:00)Как написать прогу которая переводит арабское число в римское и обратно?
Ketmar (2006-11-10 02:21:00) [1]>[11] Джо(c) 9-Nov-2006, 22:51
>Хинт. Иногда, для того, чтобы увеличить значение цифры в
>1000 раз, над соответствующим значком писали
>горизонтальную черту, AFAIR. ;)
когда доживу до 100,000 года -- буду править скрипты. и не раньше. %-)
Джо (2006-11-09 22:51:00) [2]Я, собственно, о том, что в коде нету чего-то вроде
else
Result := 'Числа закончились!';
:)
> я даже не знаю, как выразить 100,000. по-моему, это уже
> словами будет.
Хинт. Иногда, для того, чтобы увеличить значение цифры в 1000 раз, над соответствующим значком писали горизонтальную черту, AFAIR. ;)
так себе (2006-11-09 22:47:00) [3]
> Джо © (09.11.06 22:28) [8]
> > [7] так себе
>
> На "1000" числа заканчиваются?
Я привел только пример из книги Озерова и не более. Если надо больше - можно доработать, смысл ясен
Ketmar (2006-11-09 22:41:00) [4]>[8] Джо(c) 9-Nov-2006, 22:28
>На "1000" числа заканчиваются?
реально -- нужны обычно только года, так что заканчиваются. %-)
глянул в свои исходники -- у меня тоже до 1000. я даже не знаю, как выразить 100,000. по-моему, это уже словами будет.
Джо (2006-11-09 22:28:00) [5]> [7] так себе
На "1000" числа заканчиваются?
так себе (2006-11-09 22:22:00) [6]
> так себе (09.11.06 22:01) [6]
> Смотри книгу Озерова "Советы программистов" стр 32 Преобразование
> арабских чисел в римские"
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
SpeedButton1: TSpeedButton;
Label1: TLabel;
Label2: TLabel;
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
function DecToRoman(Decimal: integer): string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.DecToRoman(Decimal: integer): string;
const
Romans: array[1..13] of string = ('I','IV','V','IX','X','XL','L',
'XC','C','CD','D','CM','M');
Arabic: array[1..13] of integer = (1,4,5,9,10,40,50,90,100,400,500,900,1000);
var
i: integer;
begin
result := '';
for i := 13 downto 1 do
while (Decimal >= Arabic[i]) do
begin
Decimal := Decimal - Arabic[i];
result := result + Romans[i];
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Edit2.Text := DecToRoman(StrToInt(Edit1.Text));
end;
end.
так себе (2006-11-09 22:01:00) [7]Смотри книгу Озерова "Советы программистов" стр 32 Преобразование арабских чисел в римские"
TUser (2006-11-09 21:57:00) [8]Есть в местном faq и много где еще. Но учти, что римское число - это непойми что такое. В разные периоды истории Рима сстема записи чисел была разная. Даже в Ёкселе таких функций штуки три, а не одна.
Chort (2006-11-09 21:47:00) [9]Попробуй транслит http://www.delphimaster.ru/cgi-bin/forum.pl?id=1163012810&n=18
строка Chort © (09.11.06 21:31) [65]
Только перепиши под цифры
Джо (2006-11-09 21:46:00) [10]"Не могу молчать!" (c) Толстой Л.Н.
А насчет "испражняться" — это к зеркалу.
*fine* (2006-11-09 21:41:00) [11]Удалено модератором
Джо (2006-11-09 21:34:00) [12]> Как написать прогу которая переводит арабское число в римское
> и обратно?
Традиционно. Пальцами рук.