interface
uses SysUtils;
{ Санмен жазылған сомманы жазбаша жазу функциясы: мысалы, 23.12 -> жиырма үш теңге 12 тиын. 999999999 тенге 99 тиын дейінгі мәндерді аударады. Number параметрінде дұрыс әлде бұрыс мән екенін функция байқамайды. (яғни жүздіктерге дейінгі дәлдікпен дөңгелектелген оң сан) – бұл жөндеуді функцияны шақырғанға дейін жүргізу керек.}
function SumNumToFull(Number:real):string;
implementation
function SumNumToFull(Number:real):string;
var
PartNum, TruncNum, NumTMP, D: integer;
NumStr : string;
i, R : byte;
Flag11 : boolean;
Begin
D:=1000000;
R:=4;
TruncNum:=Trunc(Number); // теңгені белгілейміз
if TruncNum<>0
then
repeat
PartNum:=TruncNum div D;
Dec(R);
D:=D div 1000;
Until PartNum<>0
else
R:=0;
// теңге аударымы
FOR i:=R DOWNTO 1 DO
BEGIN
Flag11:=False;
NumTMP:=PartNum div 100; {сандардың жүздік белгілеуі}
Case NumTMP of
1: NumStr:=NumStr+'СТО ';
2: NumStr:=NumStr+'ДВЕСТИ ';
3: NumStr:=NumStr+'ТРИСТА ';
4: NumStr:=NumStr+'ЧЕТЫРЕСТА ';
5: NumStr:=NumStr+'ПЯТЬСОТ ';
6: NumStr:=NumStr+'ШЕСТЬСОТ ';
7: NumStr:=NumStr+'СЕМЬСОТ ';
8: NumStr:=NumStr+'ВОСЕМЬСОТ ';
9: NumStr:=NumStr+'ДЕВЯТЬСОТ ';
end;
NumTMP:=(PartNum mod 100) div 10; {ондық сандарды белгілеу }
Case NumTMP of
1: begin
NumTMP:=PartNum mod 100;
case NumTMP of
10: NumStr:=NumStr+'ДЕСЯТЬ ';
11: NumStr:=NumStr+'ОДИННАДЦАТЬ ';
12: NumStr:=NumStr+'ДВЕНАДЦАТЬ ';
13: NumStr:=NumStr+'ТРИНАДЦАТЬ ';
14: NumStr:=NumStr+'ЧЕТЫРНАДЦАТЬ ';
15: NumStr:=NumStr+'ПЯТНАДЦАТЬ ';
16: NumStr:=NumStr+'ШЕСТНАДЦАТЬ ';
17: NumStr:=NumStr+'СЕМНАДЦАТЬ ';
18: NumStr:=NumStr+'ВОСЕМНАДЦАТЬ ';
19: NumStr:=NumStr+'ДЕВЯТНАДЦАТЬ ';
end;
case i of
3: NumStr:=NumStr+'МИЛЛИОНОВ ';
2: NumStr:=NumStr+'ТЫСЯЧ ';
1: NumStr:=NumStr+'ТЕНГЕ ';
end;
Flag11:=True;
end;
2: NumStr:=NumStr+'ДВАДЦАТЬ ';
3: NumStr:=NumStr+'ТРИДЦАТЬ ';
4: NumStr:=NumStr+'СОРОК ';
5: NumStr:=NumStr+'ПЯТЬДЕСЯТ ';
6: NumStr:=NumStr+'ШЕСТЬДЕСЯТ ';
7: NumStr:=NumStr+'СЕМЬДЕСЯТ ';
8: NumStr:=NumStr+'ВОСЕМЬДЕСЯТ ';
9: NumStr:=NumStr+'ДЕВЯНОСТО ';
end;
NumTMP:=PartNum mod 10; {бірлік сандарды белгілеу}
if not Flag11 then
begin
case NumTMP of
1: if i=2 then NumStr:=NumStr+'одна ' else NumStr:=NumStr+'ОДИН ';
2: if i=2 then NumStr:=NumStr+'две ' else NumStr:=NumStr+'ДВА ';
3: NumStr:=NumStr+'ТРИ ';
4: NumStr:=NumStr+'ЧЕТЫРЕ ';
5: NumStr:=NumStr+'ПЯТЬ ';
6: NumStr:=NumStr+'ШЕСТЬ ';
7: NumStr:=NumStr+'СЕМЬ ';
8: NumStr:=NumStr+'ВОСЕМЬ ';
9: NumStr:=NumStr+'ДЕВЯТЬ ';
end;
case i of
3: case NumTMP of
1 : NumStr:=NumStr+'МИЛЛИОН ';
2,3,4: NumStr:=NumStr+'МИЛЛИОНА ';
else NumStr:=NumStr+'МИЛЛИОНОВ ';
end;
2: case NumTMP of
1 : NumStr:=NumStr+'ТЫСЯЧА ';
2,3,4: NumStr:=NumStr+'ТЫСЯЧИ ';
else if PartNum<>0 then NumStr:=NumStr+'ТЫСЯЧ ';
end;
1: case NumTMP of
1 : NumStr:=NumStr+'ТЕНГЕ ';
2,3,4: NumStr:=NumStr+'ТЕНГЕ ';
else NumStr:=NumStr+'ТЕНГЕ ';
end;
end;
end;
if i>1 then begin