procedure p(x:integer; var st:string); type name = array[0..9] of String[50]; const s1 : name = (' ноль ',' один ',' два ',' три ',' четыре ',' пять ',' шесть ',' семь ',' восемь ',' девять '); s2: name = (' ',' десять ',' двадцать ',' тридцать ',' сорок ',' пятьдесят ',' шестьдесят ',' семьдесят ',' восемьдесят ',' девяносто '); s3: name = (' ',' сто ',' двести ',' триста ',' четыреста ',' пятьсот ',' шестьсот ',' семьсот ',' восемьсот ',' девятьсот '); s4 : name = (' ',' одиннадцать ',' двенадцать ',' тринадцать ',' четырнадцать ',' пятнадцать ',' шестнадцать ',' семнадцать ',' восемнадцать ',' девятнадцать '); var s,d,e : Integer; begin s:= x div 100; x:=x mod 100; st:=s3[s]; d:= x div 10; e:=x mod 10; if (d=1) and (e<>0) then st:=st+s4[e] else st:=st+s2[d]+s1[e]; end; var x:integer; st:string; Begin Write('Введите число [0..999] :'); Readln(x); p(x,st); writeln(st); End.
Пример: Введите число [0..999] : 714 семьсот четырнадцать
Procedure P(A:integer); Var B:byte; S,Z:string; Begin if A = 0 then Write('Ноль') else Begin if A < 0 then Begin Z:='минус '; A:=-A; End; B:=A mod 100; if B div 10 = 1 then Case B mod 10 of 0:S:='десять'; 1:S:='одиннадцать'; 2:S:='двенадцать'; 3:S:='тринадцать'; 4:S:='четырнадцать'; 5:S:='пятнадцать'; 6:S:='шестнадцать'; 7:S:='семнадцать'; 8:S:='восемнадцать'; 9:S:='девятнадцать'; End else Begin Case B mod 10 of 1:S:='один'; 2:S:='два'; 3:S:='три'; 4:S:='четыре'; 5:S:='пять'; 6:S:='шесть'; 7:S:='семь'; 8:S:='восемь'; 9:S:='девять'; End; Case B div 10 of 2:S:='двадцать '+S; 3:S:='тридцать '+S; 4:S:='сорок '+S; 5:S:='пятьдесят '+S; 6:S:='шестьдесят '+S; 7:S:='семьдесят '+S; 8:S:='восемьдесят '+S; 9:S:='девяносто '+S; End; End; Case (A div 100) mod 10 of 1:S:='сто '+S; 2:S:='двести '+S; 3:S:='триста '+S; 4:S:='четыреста '+S; 5:S:='пятьсот '+S; 6:S:='шестьсот '+S; 7:S:='семьсот '+S; 8:S:='восеьсот '+S; 9:S:='девятьсот '+S; End; WriteLn(Z+S); End; End; Var A:longint; Begin Write('Введите целое число: ');ReadLn(A); P(A); End.
type
name = array[0..9] of String[50];
const
s1 : name = (' ноль ',' один ',' два ',' три ',' четыре ',' пять ',' шесть ',' семь ',' восемь ',' девять ');
s2: name = (' ',' десять ',' двадцать ',' тридцать ',' сорок ',' пятьдесят ',' шестьдесят ',' семьдесят ',' восемьдесят ',' девяносто ');
s3: name = (' ',' сто ',' двести ',' триста ',' четыреста ',' пятьсот ',' шестьсот ',' семьсот ',' восемьсот ',' девятьсот ');
s4 : name = (' ',' одиннадцать ',' двенадцать ',' тринадцать ',' четырнадцать ',' пятнадцать ',' шестнадцать ',' семнадцать ',' восемнадцать ',' девятнадцать ');
var
s,d,e : Integer;
begin
s:= x div 100; x:=x mod 100;
st:=s3[s];
d:= x div 10; e:=x mod 10;
if (d=1) and (e<>0) then st:=st+s4[e]
else st:=st+s2[d]+s1[e];
end;
var x:integer; st:string;
Begin
Write('Введите число [0..999] :');
Readln(x);
p(x,st);
writeln(st);
End.
Пример:
Введите число [0..999] : 714
семьсот четырнадцать
Var
B:byte;
S,Z:string;
Begin
if A = 0 then Write('Ноль')
else
Begin
if A < 0 then
Begin
Z:='минус ';
A:=-A;
End;
B:=A mod 100;
if B div 10 = 1 then
Case B mod 10 of
0:S:='десять';
1:S:='одиннадцать';
2:S:='двенадцать';
3:S:='тринадцать';
4:S:='четырнадцать';
5:S:='пятнадцать';
6:S:='шестнадцать';
7:S:='семнадцать';
8:S:='восемнадцать';
9:S:='девятнадцать';
End
else
Begin
Case B mod 10 of
1:S:='один';
2:S:='два';
3:S:='три';
4:S:='четыре';
5:S:='пять';
6:S:='шесть';
7:S:='семь';
8:S:='восемь';
9:S:='девять';
End;
Case B div 10 of
2:S:='двадцать '+S;
3:S:='тридцать '+S;
4:S:='сорок '+S;
5:S:='пятьдесят '+S;
6:S:='шестьдесят '+S;
7:S:='семьдесят '+S;
8:S:='восемьдесят '+S;
9:S:='девяносто '+S;
End;
End;
Case (A div 100) mod 10 of
1:S:='сто '+S;
2:S:='двести '+S;
3:S:='триста '+S;
4:S:='четыреста '+S;
5:S:='пятьсот '+S;
6:S:='шестьсот '+S;
7:S:='семьсот '+S;
8:S:='восеьсот '+S;
9:S:='девятьсот '+S;
End;
WriteLn(Z+S);
End;
End;
Var
A:longint;
Begin
Write('Введите целое число: ');ReadLn(A);
P(A);
End.