IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Help!строки!
сообщение
Сообщение #1


Гость






Текст адания:
Дан текст из заглавных латинских букв, за которыми следует пробел. Определите, является ли этот текст правильной записью римскими цифрами числа от 1 до 999, и если является, то записать его арабскими(в десятичной системе)...вот и все. Уменя есть программа для преобразования римских цифр в арабские, но она работает не корректно, т.е число 4 записывает в виде IIII а не IV. Вот она:


Код
program TranslateRomanToArab;
USES CRT;
const
Trans: array[1..13] of record
Arab: word;
Roman: string;
end = ((Arab: 1000; Roman:'M'), (Arab: 900; Roman: 'CM'),
(Arab: 500; Roman: 'D'), (Arab: 400; Roman: 'CD'),
(Arab: 100; Roman: 'C'), (Arab: 90; Roman: 'XC'),
(Arab: 50; Roman: 'L'), (Arab: 40; Roman: 'XL'),
(Arab: 10; Roman: 'X'), (Arab: 9; Roman: 'IX'),
(Arab: 5; Roman: 'V'), (Arab: 4; Roman: 'IV'),
(Arab: 1; Roman: 'I'));

var
Rchislo: string;
Achislo: longint;
CurNumber: byte;
CurSymbol: string;
CurVal: word;
begin
clrscr;
Write('Input Roman Number: ');
ReadLn(Rchislo);

{ If value in RomanNumber is incorrect, then value of ArabianNumber is }
{ incorrect too }

{--- Translate ---------}
Achislo := 0;
CurNumber := 1;
repeat
CurSymbol := Trans[CurNumber].Roman;
CurVal := Trans[CurNumber].Arab;

while Copy(Rchislo, 1, Length(CurSymbol)) = CurSymbol do
begin
Inc(Achislo, CurVal);
Delete(Rchislo, 1, Length(CurSymbol));
end;

Inc(CurNumber); {smeshenie poryadka na 1}
until Rchislo = '';
{--- End of translate ---------}

WriteLn('Arabian Number: ', Achislo);
READLN;
end.


Как мне сюда вставить условие на проверку является ли введеная строка римским числом или нет!!!

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 16.05.2024 10:37
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name