Содержание материала

Автор Александр

 

Code:

{------------------------ Деньги прописью ---------------------}

function TextSum(S: double): string;

 

function Conv999(M: longint; fm: integer): string;

const

 

c1to9m: array[1..9] ofstring[6] =

('один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять');

c1to9f: array[1..9] ofstring[6] =

('одна', 'две', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять');

c11to19: array[1..9] ofstring[12] =

('одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать',

'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');

c10to90: array[1..9] ofstring[11] =

('десять', 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят',

'семьдесят', 'восемьдесят', 'девяносто');

c100to900: array[1..9] ofstring[9] =

('сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот',

'восемьсот', 'девятьсот');

var

 

s: string;

i: longint;

begin

 

s := '';

i := M div100;

if i <> 0then s := c100to900[i] + ' ';

M := M mod100;

i := M div10;

if (M > 10) and (M < 20) then

s := s + c11to19[M - 10] + ' '

else

begin

if i <> 0then s := s + c10to90[i] + ' ';

M := M mod10;

if M <> 0then

if fm = 0then

s := s + c1to9f[M] + ' '

else

s := s + c1to9m[M] + ' ';

end;

Conv999 := s;

end;

 

{--------------------------------------------------------------}

var

 

i: longint;

j: longint;

r: real;

t: string;

 

begin

 

t := '';

 

j := Trunc(S / 1000000000.0);

r := j;

r := S - r * 1000000000.0;

i := Trunc(r);

if j <> 0then

begin

t := t + Conv999(j, 1) + 'миллиард';

j := j mod100;

if (j > 10) and (j < 20) then

t := t + 'ов '

else

case j mod10of

0: t := t + 'ов ';

1: t := t + ' ';

2..4: t := t + 'а ';

5..9: t := t + 'ов ';

end;

end;

 

j := i div1000000;

if j <> 0then

begin

t := t + Conv999(j, 1) + 'миллион';

j := j mod100;

if (j > 10) and (j < 20) then

t := t + 'ов '

else

case j mod10of

0: t := t + 'ов ';

1: t := t + ' ';

2..4: t := t + 'а ';

5..9: t := t + 'ов ';

end;

end;

 

i := i mod1000000;

j := i div1000;

if j <> 0then

begin

t := t + Conv999(j, 0) + 'тысяч';

j := j mod100;

if (j > 10) and (j < 20) then

t := t + ' '

else

case j mod10of

0: t := t + ' ';

1: t := t + 'а ';

2..4: t := t + 'и ';

5..9: t := t + ' ';

end;

end;

 

i := i mod1000;

j := i;

if j <> 0then t := t + Conv999(j, 1);

t := t + 'руб. ';

 

i := Round(Frac(S) * 100.0);

t := t + Long2Str(i) + ' коп.';

TextSum := t;

end;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить