Напечатать число русскими словами - Turbo Pascal
Формулировка задачи:
дано натуральное число n(n<=1000). напечатать это число русскими словами.(например: двести сорок один)
Решение задачи: «Напечатать число русскими словами»
textual
Листинг программы
uses TpCrt;
type
nazw = array[0..9] of String[15];
const
ed : nazw = ('ноль','один','два','три','четыре','пять','шесть','семь','восемь','девять');
des: nazw = ('','десять','двадцать','тридцать','сорок','пятьдесят',
'шестьдесят','семьдесят','восемьдесят','девяносто');
sot: nazw = ('','сто','двести','триста','четыреста','пятьсот','шестьсот','семьсот','восемьсот','девятьсот');
dd : nazw = ('','одинадцать','двенадцать','тринадцать','четырнадцать','пятнадцать',
'шестнадцать','семнадцать','восемьнадцать','девятнадцать');
var
s,d,e,x : Integer;
st : String;
Begin
Write('Введите число [0..1000] :'); Readln(x);
if x=1000 then st:='тысяча' else begin
s:= x div 100; x:=x mod 100; st:=sot[s];
d:= x div 10; e:=x mod 10;
if (d=1) and (e<>0) then st:=st+dd[e]
else st:=st+des[d]+ed[e];
end;
writeln(st);
readln;
End.
Объяснение кода листинга программы
- В начале кода объявляются необходимые переменные и типы данных.
- Затем идет использование переменной
xдля чтения числа от пользователя. - Далее происходит проверка, если введенное число равно 1000, то переменной
stприсваивается значениетысяча. В противном случае, происходит деление числа на 100 и его остаток на 100, после чего присваивается значения переменнымsиd. - Затем происходит деление числа на 10 и его остаток на 10, после чего присваивается значения переменным
eиd. - Если остаток от деления на 10 равен 1, а остаток от деления на 100 не равен 0, то к переменной
stдобавляется значение из массиваddс помощью индексаe. - В противном случае, к переменной
stдобавляются значения из массивовsot,desиedс использованием соответствующих индексовs,dиe. - Наконец, выводится значение переменной
st, которая содержит результат преобразования числа в слова на русском языке. - Конец программы.