Пятница, 28.04.2017, 01:34
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » Помогите с нахождением алгоритма))
Помогите с нахождением алгоритма))
Chup_sДата: Воскресенье, 14.11.2010, 14:50 | Сообщение # 1
Рядовой
Группа: Новичок
Сообщений: 3
[ 0 ]
Статус: Offline
Прошу помочь с составлением алгоритма для преобразования натурального числа в римское в Turbo Pascal.
Задание такое: Введенное с клавиатуры натуральное число программа должна преобразовать в римскую цифру и вставить в предложение.
Спасибо)
 
XTenДата: Воскресенье, 14.11.2010, 15:09 | Сообщение # 2
Полковник
Группа: Заблокированные
Сообщений: 31
[ 1 ]
Статус: Offline
Пиши решу Дёшево
ICQ: 410691984
 
flash1989Дата: Воскресенье, 14.11.2010, 16:18 | Сообщение # 3
Генералиссимус
Группа: Заблокированные
Сообщений: 177
[ 3 ]
Статус: Offline
Пиши, сделаю
icq: 588002847
email: flash_1989@ukr.net
 
ВахаДата: Понедельник, 15.11.2010, 01:38 | Сообщение # 4
Подполковник
Группа: Новичок
Сообщений: 28
[ 6 ]
Статус: Offline
uses CRT;
const
c1:array [1..19] of string[5]=('I', 'II', 'III', 'IV', 'V', 'VI','VII',
'VIII', 'IX', 'X', 'XI', 'XII', 'XIII',
'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX');
c2: array [2..9] of string[4]=('XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX',
'CX');
c3: array [1..9] of string[4]=('C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC',
'DCCC', 'MC');
c4: array [1..3] of string[4]=('M', 'MM', 'MMM');
Var
a: integer;
c: array [1..20] of word;
i: byte;
res: string;
BEGIN
clrscr;
WriteLn ('Input number:');
ReadLn (a);
if (a>3999) or (a<1) then
begin
WriteLn ('Error: Number beyond of current range [1..3999]');
WriteLn ('Program terminated.');
Halt
end;
i:=1;
While a div 10<>0 do
begin
c[i]:=a mod 10;
a:=a div 10;
inc (i);
end;
c[i]:=a;
res:='';
if i=4 then
begin
res:=c4[c[i]];
dec (i);
end;
if i=3 then
begin
res:=res+c3[c[i]];
dec(i)
end;
if i=2 then
if c[i]>=2 then
begin
res:=res+c2[c[i]];
dec(i);
end else
begin
res:=res+c1[c[i]*10+c[i-1]];
dec (i, 2);
end;
if i=1 then res:=res+c1[c[i]];
WriteLn (res);
readkey;
END.

Программа работает в диапазоне чисел от 1 до 3999. Как пишутся римские числа дальше я не знаю.


Гвардия умирает но не сдается
 
Chup_sДата: Вторник, 07.12.2010, 12:57 | Сообщение # 5
Рядовой
Группа: Новичок
Сообщений: 3
[ 0 ]
Статус: Offline
спасибо огромное)
только не совсем понятно....буду разбираться....

Добавлено (07.12.2010, 12:57)
---------------------------------------------
Прошу помочь...))Как разработать код для 3х строковых функций??И как реализовать вызов этих строковых функций с помощью меню??

 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » Помогите с нахождением алгоритма))
Страница 1 из 11
Поиск:

Copyright MyCorp © 2017