Введите число от 1 до 999 и назвать его словами - PascalABC.NET
Формулировка задачи:
введите число 0т 1 до 999 и назвать его словами
Решение задачи: «Введите число от 1 до 999 и назвать его словами»
textual
Листинг программы
function Сотни(n : Integer) := arr('','сто ','двести ','триста ','четыреста ','пятьсот ','шестьсот ','семьсот ','восемьсот ','девятьсот ')[n]; function ДесятьПлюс(n : Integer) := arr('', 'одинадцать','двенадцать','тринадцать','четырнадцать','пятнадцать','шестнадцать','семнадцать','восемнадцать','девятнадцать')[n mod 10]; function Десятки(n : Integer) := arr('','десять ','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто ')[n]; function Единицы(n : Integer) := arr('','один ','два ','три ','четыре ','пять ','шесть ','семь ','восемь ','девять ')[n]; function Числительное(n : Integer) : String; begin if n = 0 then Result := 'ноль' else begin Result := Сотни(n div 100); case n mod 100 of 11..19 : Result += ДесятьПлюс(n mod 100); else Result += Десятки(n div 10 mod 10) + Единицы(n mod 10); end; end; end; begin WriteLn(Числительное(ReadInteger)); end.
Объяснение кода листинга программы
- Программа принимает на ввод целое число от 0 до 999.
- Используется функция
Числительное
, которая преобразует число в словесное обозначение. - Если число равно 0, то результатом будет строка
ноль
. - В противном случае, функция
Числительное
сначала определяет сотни (первые две цифры числа), затем десятки (следующие две цифры числа) и единицы (остаток от деления на 100). - Если остаток от деления на 100 находится в диапазоне от 11 до 19, то к слову, обозначающему десятки, добавляется слово
одинадцать
илидвенадцать
и т.д. - В противном случае, к слову, обозначающему десятки, добавляется слово, обозначающее единицы.
- Результат выводится на экран.