Написать программу в паскале - вводится латинское число (любое) выдать его в текстовой форме, например вводится( mdclx\/i ), вадать (тысяча шестьсот шесдисят шесть).
Dpi - количество точек на дюйм 1200dpi - в 1 погонном дюйме 1200 точек (пикселей). 1 дюйм = 2,54 см Узнаем сколько точек по горизонтали и по вертикали изображения: 21÷2,54=8,26771653543 дюйма ×1200=9921,25984251 пикселей по вертикали 29,7÷2,54=11,6929133858 дюйма ×1200=14031,4960629 пикселей по горизонтали 14031,4960629×9921,25984251=139210118,419 пикселей всего в изображении
Линия Векторное изображение Если в растровой графике минимальным элементом изображения является точка, то в векторной графике – линия. Линия описывается математически как единый объект, и потому объем данных для отображения объекта средствами векторной графики существенно меньше, чем в растровой графике. Линия – элементарный объект векторной графики. Как и любой объект, линия обладает свойствами: формой (прямая, кривая) , толщиной, цветом, начертанием (сплошная, пунктирная) . Замкнутые линии приобретают свойство заполнения. Охватываемое ими пространство может быть заполнено другими объектами (текстуры, карты) или выбранным цветом. Простейшая незамкнутая линия ограничена двумя точками, именуемыми узлами. Узлы также имеют свойства, параметры которых влияют на форму конца линии и характер сопряжения с другими объектами. Все прочие объекты векторной графики составляются из линий.
Не стал писать проверку на правильность введения римского числа. Так что вводить нужно аккуратно, без ошибок, в верхнем регистре.
var a, stroka:string;
i,n,t,s,d,e,x : Integer;
b:array[1..20] of integer;
type slova = array[0..9] of String[15];
const
edinit : slova = ('',' один',' два',' три',' четыре',' пять',' шесть',' семь', ' восемь',' девять');
desyat : slova = ('',' десять',' двадцать',' тридцать',' сорок',' пятьдесят', ' шестьдесят',' семьдесят',' восемьдесят ',' девяносто');
sotnya : slova = ('',' сто',' двести',' триста',' четыреста',' пятьсот',' шестьсот',' семьсот',' восемьсот',' девятьсот');
tn : slova = ('',' одинадцать',' двенадцать',' тринадцать',' четырнадцать', ' пятнадцать',' шестнадцать',' семнадцать',' восемьнадцать', ' девятнадцать');
tyscha : slova = ('','одна тысяча','две тысячи','три тысячи','четыре тысячи','пять тысяч','шесть тысяч','семь тысяч', 'восемь тысяч','девять тысяч');
begin
writeln('Введите римское число: ');
readln(a);
{записываем число как сумму арабских эквивалентов в массив}
for i:=1 to length(a) do
case a[i] of
'I': b[i]:=1;
'V': b[i]:=5;
'X': b[i]:=10;
'L': b[i]:=50;
'C': b[i]:=100;
'D': b[i]:=500;
'M': b[i]:=1000;
end;
{суммируя элементы массива, находим число в 10-м виде}
n:=0;
for i:=1 to length(a) do
begin
n:=n+b[i];
if(i>1)and( b[i-1]<b[i]) then n:=n-2*b[i-1]; //если меньшая римская цифра идёт перед большей, то она вычитается
end;
{преобразовываем число в текст}
stroka:='';
t:=n div 1000;
if t>0 then stroka:=stroka+tyscha[t];
s:=n div 100 mod 10;
stroka:=stroka+sotnya[s];
x:=n mod 100;
d:=X div 10;
e:=X mod 10;
if (d=1) and (e<>0) then stroka:=stroka+tn[e]
else stroka:=stroka+desyat[d]+edinit[e];
writeln(stroka);
end.