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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2006, 13:54   #1
n0x
 
Регистрация: 27.11.2006
Сообщений: 5
По умолчанию Задача: перевод целых чисел в римские

Задача на Паскале:
Заданное целое число от 1 до 1999 напечатать римскими цифрами.

Помогите решить пожалуйста! =

Последний раз редактировалось n0x; 12.12.2006 в 09:01.
n0x вне форума Ответить с цитированием
Старый 11.12.2006, 17:14   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

а как ты пробовал это сделать ?
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 11.12.2006, 21:49   #3
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Ответ на твой вопрос можно найти почти в любом FAQ.
Он есть и в DRKB 2.3 from Vit.
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Старый 12.12.2006, 08:55   #4
n0x
 
Регистрация: 27.11.2006
Сообщений: 5
По умолчанию

Спасибо! Пытался сначала сделать наоборот, из римских в целые, но не получилось. Вот программа:
Код:
var s: string;
  n, c, c1, i, a: integer;
begin writeln('введи число : ');
  readln(s);
  c := 0; n := 0;
  for i := 1 to length(s) do
  begin
    c1 := c;
    if s[i] = 'I' then c := 1;
    if s[i] = 'V' then c := 5;
    if s[i] = 'X' then c := 10;
    if s[i] = 'L' then c := 50;
    if s[i] = 'C' then c := 100;
    if s[i] = 'D' then c := 500;
    if s[i] = 'M' then c := 1000;
    if c > c1 then a := -2 * c1
    else a := 0;
    n := n + a + c
  end;
  writeln('ваше число = ', n)
end.

Последний раз редактировалось n0x; 12.12.2006 в 09:04.
n0x вне форума Ответить с цитированием
Старый 12.12.2006, 19:52   #5
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Вот полностью рабочее решение:
Код:
var s,n,x:integer;
    t:string;

procedure Rim(a,b:string;z:integer);
begin
while pos(a,t) <> 0 do
 begin
 delete(t,pos(a,t),1);
 n:=n+1;
 if n=z then
  begin
  t:=b+t;
  n:=0;
  end;
 end;
for s:=1 to n do
t:=t+a;
n:=0;
end;

procedure Por(sym:string);
begin
while pos(sym,t) > 0 do
begin
n:=n+1;
delete(t,pos(sym,t),1);
end;
for s:=1 to n do
t:=t+sym;
n:=0;
end;

begin
ReadLn(s);
while s > 0 do
begin
s:=s-1;
t:=t+'I';
end;
Rim('I','V',5);
Rim('V','X',2);
Rim('X','L',5);
Rim('L','C',2);
Rim('C','D',5);
Rim('D','M',2);
Por('M');
Por('D');
Por('C');
Por('L');
Por('X');
Por('V');
Por('I');
writeln(t);
readln;
end.
Только в таком случае накладывается ограничение. Максимальное число - 256. Как обойти решать тебе.
ICQ: 5311314
[SIGPIC][/SIGPIC]

Последний раз редактировалось AVer; 12.12.2006 в 22:03.
AVer вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод целых чисел из одной системы счисления в другую =LeonZone= Помощь студентам 19 12.12.2010 16:18
Умножение длинных целых чисел Rifler Паскаль, Turbo Pascal, PascalABC.NET 1 04.06.2008 21:12
Перемещение из массива целых чисел... Си Sota Помощь студентам 1 01.06.2008 19:51
Вывод целых и десятичных чисел Maycal Общие вопросы C/C++ 2 24.10.2007 12:34