
Yersinia pestis
   
Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი
Репутация: 11 Всего: 130
|
Вот рабочая функция из ДРКБ: | Код | const a: array[0..8, 0..9] of string = ( ('', 'один ', 'два ', 'три ', 'четыре ', 'пять ', 'шесть ', 'семь ', 'восемь ', 'девять '), ('', '', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ', 'семьдесят ', 'восемьдесят ', 'девяносто '), ('', 'сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ', 'шестьсот ', 'семьсот ', 'восемьсот ', 'девятьсот '), ('тысяч ', 'одна тысяча ', 'две тысячи ', 'три тысячи ', 'четыре тысячи ', 'пять тысяч ', 'шесть тысяч ', 'семь тысяч ', 'восемь тысяч ', 'девять тысяч '), ('', '', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ', 'семьдесят ', 'восемьдесят ', 'девяносто '), ('', 'сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ', 'шестьсот ', 'семьсот ', 'восемьсот ', 'девятьсот '), ('миллионов ', 'один миллион ', 'два миллиона ', 'три миллиона ', 'четыре миллиона ', 'пять миллионов ', 'шесть миллионов ', 'семь миллионов ', 'восемь миллионов ', 'девять миллионов '), ('', '', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ', 'семьдесят ', 'восемьдесят ', 'девяносто '), ('', 'сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ', 'шестьсот ', 'семьсот ', 'восемьсот ', 'девятьсот ')); c: array[0..8, 0..9] of string = ( ('', 'одна ', 'две ', 'три ', 'четыре ', 'пять ', 'шесть ', 'семь ', 'восемь ', 'девять '), ('', '', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ', 'семьдесят ', 'восемьдесят ', 'девяносто '), ('', 'сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ', 'шестьсот ', 'семьсот ', 'восемьсот ', 'девятьсот '), ('тысяч ', 'одна тысяча ', 'две тысячи ', 'три тысячи ', 'четыре тысячи ', 'пять тысяч ', 'шесть тысяч ', 'семь тысяч ', 'восемь тысяч ', 'девять тысяч '), ('', '', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ', 'семьдесят ', 'восемьдесят ', 'девяносто '), ('', 'сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ', 'шестьсот ', 'семьсот ', 'восемьсот ', 'девятьсот '), ('миллионов ', 'один миллион ', 'два миллиона ', 'три миллиона ', 'четыре миллиона ', 'пять миллионов ', 'шесть миллионов ', 'семь миллионов ', 'восемь миллионов ', 'девять миллионов '), ('', '', 'двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ', 'шестьдесят ', 'семьдесят ', 'восемьдесят ', 'девяносто '), ('', 'сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ', 'шестьсот ', 'семьсот ', 'восемьсот ', 'девятьсот ')); b: array[0..9] of string = ('десять ', 'одиннадцать ', 'двенадцать ', 'тринадцать ', 'четырнадцать ', 'пятнадцать ', 'шестнадцать ', 'семнадцать ', 'восемнадцать ', 'девятнадцать ');
function SumToStrin(Value: string): string; var s, t: string; p, pp, i, k: integer; begin s := value; if s = '0' then t := 'Ноль ' else begin p := length(s); pp := p; if p > 1 then if (s[p - 1] = '1') and (s[p] >= '0') then begin t := b[strtoint(s[p])]; pp := pp - 2; end; i := pp; while i > 0 do begin if (i = p - 3) and (p > 4) then if s[p - 4] = '1' then begin t := b[strtoint(s[p - 3])] + 'тысяч ' + t; i := i - 2; end; if (i = p - 6) and (p > 7) then if s[p - 7] = '1' then begin t := b[strtoint(s[p - 6])] + 'миллионов ' + t; i := i - 2; end; if i > 0 then begin k := strtoint(s[i]); t := a[p - i, k] + t; i := i - 1; end; end; end; result := t; end;
|
--------------------
There's nothing left but silent epitaphs.
|