Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
2 / 2 / 1
Регистрация: 07.12.2010
Сообщений: 61
1

Римские цифры

22.12.2010, 22:31. Показов 4029. Ответов 1
Метки нет (Все метки)

Напишите программу, которая преобразовывает римские числа в натуральные числа.
Примечание. Римские числа могут состоять только из символов "X", "V" и "I". Наибольшее число которое может воспринять программа, -это XXXIX, т.е. 39.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2010, 22:31
Ответы с готовыми решениями:

Перевести арабские цифры в римские
с клавиатуры вводится строка,представляющая собой правильную запись натурального числа в римской...

В текстовом файле заменить все цифры на римские
Привет. Вот задача к сессии... не хватает меня что-то на нее.. Дан файл C:\1.txt, заменить в...

Перевод арабских в римские
Задача №1 Для записи римскими цифрами используются символы I, V, X, L, C, D, M, обозначающие...

Программа перевода арабских чисел в римские!
Составить программу перевода любого значения N(n<3999) в запись римскими цифрами.

1
19 / 19 / 9
Регистрация: 15.12.2010
Сообщений: 120
23.12.2010, 08:08 2
Лучший ответ Сообщение было отмечено Yalovick как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Program rim;
uses CRT;
Const
R: Array[1..13] of String[2] =
('I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M');
A: Array[1..13] of Integer=
(1,4,5,9,10,40,50,90,100,400,500,900,1000);
Function Roman(N : Integer) : String;
Var Result:String;
i:Integer;
begin
Result := '';
i:= 13;
While N >0 do
begin
While A[i]>N do Dec(i);
Result:=Result+R[i];
Dec(N,A[i]);
end;
Roman:=Result;
end;
Function Arabic(S:String):Integer;
Var Result:Integer;
i, p:Integer;
begin
Arabic := -1;
Result := 0;
i:=13;
p:=1;
While p <=Length(S) do
begin
While Copy(S, p, Length(R[i])) <>R[i] do
begin
Dec(i);
If i = 0 then Exit;
end;
Result := Result + A[i];
p := p + Length(R[i]);
end;
If Roman(Result) = S then Arabic := Result
end;
Var N, Err : Integer;
S : String;
BEGIN
repeat
ReadLn(S);
If S = '' then Break;
Val(S, N, Err);
If Err = 0 then
WriteLn(Roman(N))
else
WriteLn(Arabic(S));
until false;
END.
эта программа переводит с рим в нат и с нат в рим
такчто будешь сдавать не пались что наоборот переводит тоже, а то не поверят что это ты написал)
Ограничения ифами поставь, а вообже для этого есть Google

Добавлено через 15 минут
Вот по-проще
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
program Roman;
uses CRT;
const
  TransTable: array[1..13] of record
    AN: word;
    RN: string[2];
  end = ((AN: 1000; RN:'M'),  (AN: 900; RN: 'CM'), (AN: 500; RN: 'D'),
         (AN: 400; RN: 'CD'), (AN: 100; RN: 'C'),  (AN: 90; RN: 'XC'),
         (AN: 50; RN: 'L'),   (AN: 40; RN: 'XL'),  (AN: 10; RN: 'X'),
         (AN: 9; RN: 'IX'),   (AN: 5; RN: 'V'),    (AN: 4; RN: 'IV'),
         (AN: 1; RN: 'I'));
var
RomanNumber: string;
ArabianNumber: longint;
CurNum: byte;
CurSymb: string[2];
CurVal: word;
begin
  Write('Натуральное число:');
  ReadLn(RomanNumber);
  ArabianNumber := 0;
  CurNum := 1;
repeat
CurSymb := TransTable[CurNum].RN;
CurVal := TransTable[CurNum].AN;
while Copy(RomanNumber, 1, Length(CurSymb)) = CurSymb do
begin
Inc(ArabianNumber, CurVal);
Delete(RomanNumber, 1, Length(CurSymb));
end;
Inc(CurNum);
until RomanNumber = '';
WriteLn(': ', ArabianNumber);
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2010, 08:08

Не работает программа перевода арабских чисел в римские
Не выводит ответ в чем может быть причина? procedure Form1.button1_Click(sender: Object; e:...

Число-перевертыш, три одинаковые цифры, все цифры различны
Дано натуральное четырехзначное число n. Определить: 1. является ли это число палиндромом...

Определить порядковый номер его максимальной цифры, считая цифры от начала числа
дано натуральное число N, в котором все цифры различны. Определить порядковый номер его...

Составьте программу проверки умения складывать двузначные цифры.Программа сама вводит цифры
Помогите исправить программу. Составьте программу проверки умения складывать двузначные...

Строка: Напишите функцию, которая заменяет во всей строке все римские числа на соответствующие десятичные числа
Помогите пожалуйста Напишите функцию, которая заменяет во всей строке все римские числа на...

Вводится число с клавиатуры. Вывести на экран все цифры, которые повторяются более одного раза, при выводе цифры не должны повторятся
Вводится число с клавиатуры. Вывести на экран все цифры, которые повторяются более одного раза, при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.