Введите число от 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.

Объяснение кода листинга программы

  1. Программа принимает на ввод целое число от 0 до 999.
  2. Используется функция Числительное, которая преобразует число в словесное обозначение.
  3. Если число равно 0, то результатом будет строка ноль.
  4. В противном случае, функция Числительное сначала определяет сотни (первые две цифры числа), затем десятки (следующие две цифры числа) и единицы (остаток от деления на 100).
  5. Если остаток от деления на 100 находится в диапазоне от 11 до 19, то к слову, обозначающему десятки, добавляется слово одинадцать или двенадцать и т.д.
  6. В противном случае, к слову, обозначающему десятки, добавляется слово, обозначающее единицы.
  7. Результат выводится на экран.

Оцени полезность:

7   голосов , оценка 3.429 из 5
Похожие ответы