С клавиатуры вводится натуральное число, не превосходящее 1000. Представить его в виде соответствующей словесной записи в паскале
Var
m, n: integer;
ms: array[1..9] of string;
md: array[1..9] of string;
m1: array[11..19] of string;
me: array[1..9] of string;
flag: boolean;
begin
flag := false; { Пока ничего не выведено }
ms[1] := сто; ms[2] := двести; ms[3] := триста; ms[4] := Четыреста;
ms[5] := пятьсот; ms[5] := пятьсот; ms[6] := шестьсот; ms[7] := семьсот;
ms[8] := восемьсот; ms[9] := девятьсот;
md[1] := десять; md[2] := двадцать; md[3] := тридцать; md[4] := сорок;
md[5] := пятьдесят; md[6] := шестьдесят; md[7] := семьдесят;
md[8] := восемьдесят; md[9] := девяносто;
m1[11] := одиннадцать; m1[12] := двенадцать; m1[13] := тринадцать;
m1[14] := четырнадцать; m1[15] := пятнадцать; m1[16] := шестнадцать;
m1[17] := семнадцать; m1[18] := восемнадцать; m1[19] := девятнадцать;
me[1] := один; me[2] := два; me[3] := три; me[4] := четыре; me[5] := пять;
me[6] := шесть; me[7] := семь; me[8] := восемь; me[9] := девять;
Write(Введите целое число от 1 до 1000: );
Readln(m);
if (m < 1) or (m > 1000) then Writeln(Шутки шутим?)
else
if m = 1000 then Writeln(Одна тысяча )
else
begin
{ сотни }
n := m div 100;
if n > 0 then
begin
Write(ms[n]);
flag := true
end;
{ десятки }
m := m mod 100;
if m = 0 then Writeln( )
else
begin
if (m > 10) and (m < 20) then
begin
if flag then Write( );
Writeln(m1[m])
end
else
if m > 0 then
begin
n := m mod 10;
m := m div 10;
if m > 0 then
begin
if flag then Write( ) else flag := true;
Write(md[m])
end;
if n <> 0 then
begin
{ единицы }
if flag then Write( );
Write(me[n]);
end
end
end
end
end.
Тестовое решение:
Введите целое число от 1 до 1000: 429
Четыреста двадцать девять
