Недавно добавленные исходники

•  TDictionary Custom Sort  3 224

•  Fast Watermark Sources  2 990

•  3D Designer  4 750

•  Sik Screen Capture  3 259

•  Patch Maker  3 467

•  Айболит (remote control)  3 527

•  ListBox Drag & Drop  2 903

•  Доска для игры Реверси  80 764

•  Графические эффекты  3 842

•  Рисование по маске  3 171

•  Перетаскивание изображений  2 544

•  Canvas Drawing  2 672

•  Рисование Луны  2 500

•  Поворот изображения  2 091

•  Рисование стержней  2 119

•  Paint on Shape  1 523

•  Генератор кроссвордов  2 182

•  Головоломка Paletto  1 730

•  Теорема Монжа об окружностях  2 158

•  Пазл Numbrix  1 649

•  Заборы и коммивояжеры  2 016

•  Игра HIP  1 262

•  Игра Go (Го)  1 200

•  Симулятор лифта  1 421

•  Программа укладки плитки  1 177

•  Генератор лабиринта  1 512

•  Проверка числового ввода  1 297

•  HEX View  1 466

•  Физический маятник  1 322

•  Задача коммивояжера  1 357

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Сумма прописью - Способ 2




{ Преобразует трехзначное число в строку }
function ConvertToWord(N: word): string;
const
  Sot : array[1..9] of string[13] =
  ('сто','двести','триста','четыреста','пятьсот',
  'шестьсот','семьсот','восемьсот','девятьсот');

  Des : array[2..9] of string[13] =
  ('двадцать','тридцать','сорок','пятьдесят',
  'шестьдесят','семьдесят','восемьдесят','девяносто');

  Edin : array[0..19] of string[13] =
  ('','один','два','три','четыре','пять','шесть','семь',
  'восемь','девять','десять','одиннадцать','двенадцать',
  'тринадцать','четырнадцать','пятнадцать',
  'шестнадцать','семнадцать','восемнадцать','девятнадцать');

var
  S: string;
begin
  S:='';
  N:=N mod 1000;
  if N>99 then
  begin
    S:=Sot[N div 100]+' ';
    N:=N mod 100;
  end;
  if N>19 then
  begin
    S:=S+Des[N div 10]+' ';
    N:=N mod 10;
  end;
  Result:=S+Edin[N];
end;

{ Возвращает сумму прописью }
function CenaToStr(r: Currency): string;
var
  N, k: longint;
  S: string;
begin
  N:=trunc(R); S:='';
  if N<>0 then
  begin
    if N>999999 then
    begin
      k:=N div 1000000;
      S:=ConvertToWord(k);
      if ((k-(k div 100)*100)>10) and ((k-(k div 100)*100)<20) then
        S:=S+' миллионов'
      else
      if (k mod 10)=1 then
        S:=S+' миллион'
      else
      if ((k mod 10)>=2)and((k mod 10)<=4) then
        S:=S+' миллиона'
      else
        S:=S+' миллионов';
      N:=N mod 1000000;
    end;
    if N>999 then
    begin
      k:=N div 1000;
      S:=S+' '+ConvertToWord(k);
      if ((k-(k div 100)*100)>10)and((k-(k div 100)*100)<20) then
        S:=S+' тысяч'
      else
      if (k mod 10)=1 then
      begin
        SetLength(S, Length(S)-2);
        S:=S+'на тысяча';
      end
      else
      if (k mod 10)=2 then
      begin
        SetLength(S, length(S)-1);
        S:=S+'е тысячи';
      end
      else
      if ((k mod 10)>=3)and((k mod 10)<=4) then
        S:=S+' тысячи'
      else
        S:=S+' тысяч';
      N:=N mod 1000;
    end;
    k:=N;
    S:=S+' '+ConvertToWord(k);
    if ((k-(k div 100)*100)>10)and((k-(k div 100)*100)<20) then
      S:=S+' рублей'
    else
    if (k mod 10)=1 then
      S:=S+' рубль'
    else
    if (k mod 10)=2 then
      S:=S+' рубля'
    else
    if ((k mod 10)>=3)and((k mod 10)<=4) then
      S:=S+' рубля'
    else
      S:=S+' рублей';
  end;
  if trunc(R)<>R then
  begin
    k:=round(frac(R)*100);
    S:=S+' '+IntToStr(K);
    if ((k-(k div 100)*100)>10)and((k-(k div 100)*100)<20) then
      S:=S+' копеек'
    else
    if (k mod 10)=1 then
    begin
      S:=S+' копейка';
    end
    else
    if (k mod 10)=2 then
    begin
      S:=S+' копейки';
    end
    else
    if ((k mod 10)>=3)and((k mod 10)<=4) then
      S:=S+' копейки'
    else
      S:=S+' копеек';
  end
  else
    S:=S+' 00 копеек';
  S:=Trim(S);
  if S<>'' then
    S[1]:=AnsiUpperCase(S[1])[1];
  result:=S;
end;





Похожие по теме исходники

Сумма прописью




Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте