Получить словесную запись числа - 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.
Объяснение кода листинга программы
Список элементов кода:
- Установка начального значения переменной
stравнымМне. - Проверка диапазона введенного значения переменной
k. - Изменение значения переменной
stв зависимости от значения переменнойk. - Использование оператора
divдля деления значения переменнойkна 10 и присвоения результата переменнойk1. - Использование оператора
modдля получения остатка от деления значения переменнойkна 10 и присвоения результата переменнойk2. - Использование оператора
caseдля выбора подходящего значения переменнойstв зависимости от значения переменнойk1иk2. - Использование оператора
caseдля выбора подходящего значения переменнойstв зависимости от значения переменнойk. - Использование оператора
writelnдля вывода значения переменнойstна экран. - Использование оператора
readlnдля чтения значения с экрана. - Завершение программы.