Получить словесную запись числа - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Задано некоторое натуральное число k. Требуется вывести весь текст словами (например, при k=5 вывод имеет вид 'пять', при k=125 нужно вывести 'сто двадцать пять' и т.д.) в виде фразы 'мне k лет' (k<=100)

Решение задачи: «Получить словесную запись числа»

textual
Листинг программы
uses crt;
var st:string;
    k:byte;
begin
clrscr;
repeat
write('Введите возраст от 1 до 100 k=');
readln(k);
until k in [1..100];
st:='Мне';
case k of
10:st:=st+' десять';
11:st:=st+' одиннадцать';
12:st:=st+' двенадцать';
13:st:=st+' тринадцать';
14:st:=st+' четырнадцать';
15:st:=st+' пятндцать';
16:st:=st+' шестнадцать';
17:st:=st+' семнадцать';
18:st:=st+' восемнадцать';
19:st:=st+' девятнадцать';
100:st:=st+' сто';
else
 begin
 case k div 10 of
  2:st:=st+' двадцать';
  3:st:=st+' тридцать';
  4:st:=st+' сорок';
  5:st:=st+' пятьдесят';
  6:st:=st+' шестьдесят';
  7:st:=st+' семьдесят';
  8:st:=st+' восемьдесят';
  9:st:=st+' девяносто';
  end;
  case k mod 10 of
  1:st:=st+' один';
  2:st:=st+' два';
  3:st:=st+' три';
  4:st:=st+' четыре';
  5:st:=st+' пять';
  6:st:=st+' шесть';
  7:st:=st+' семь';
  8:st:=st+' восемь';
  9:st:=st+' девять';
  end;
  end;
 end;
case k of
10,20,30,40,50,60:st:=st+' лет';
else
 case k mod 10 of
 1:st:=st+' год';
 2..4:st:=st+' года';
 else st:=st+' лет';
 end;
end;
writeln(st);
readln
end.

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

Список элементов кода:

  1. Установка начального значения переменной st равным Мне.
  2. Проверка диапазона введенного значения переменной k.
  3. Изменение значения переменной st в зависимости от значения переменной k.
  4. Использование оператора div для деления значения переменной k на 10 и присвоения результата переменной k1.
  5. Использование оператора mod для получения остатка от деления значения переменной k на 10 и присвоения результата переменной k2.
  6. Использование оператора case для выбора подходящего значения переменной st в зависимости от значения переменной k1 и k2.
  7. Использование оператора case для выбора подходящего значения переменной st в зависимости от значения переменной k.
  8. Использование оператора writeln для вывода значения переменной st на экран.
  9. Использование оператора readln для чтения значения с экрана.
  10. Завершение программы.

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

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