Для введенного целого числа в диапазоне от 0 до 100 вывести заключение о возрасте вводившего с использованием правильной словоформы слова «год» — Pascal(Паскаль)

Пример1: Введите Ваш возраст:
17
Вам 17 лет
Пример2: Введите Ваш возраст:
21
Вам 21 год
Указание: ни в коем случае не перечислять все 100 возможных значений, унифицировать значения с помощью вычисления остатка.
uses crt;
var st:string;
     n:byte;
begin
clrscr;
repeat
write('Введите число от 0 до 100 n = ');
readln(n);
until n in [0..100];
st:='';
case n of
100:st:='сто';
  0:st:='ноль';
  1:st:='один';
  2:st:='два';
  3:st:='три';
  4:st:='четыре';
  5:st:='пять';
  6:st:='шесть';
  7:st:='семь';
  8:st:='восемь';
  9:st:='девять';
10..19: case n of
        10:st:='десять';
        11:st:='одиннадцать';
        12:st:='двенадцать';
        13:st:='тринадцать';
        14:st:='четырнадцать';
        15:st:='пятндцать';
        16:st:='шестнадцать';
        17:st:='семнадцать';
        18:st:='восемнадцать';
        19:st:='девятнадцать';
        end;
20..99: begin
        case n div 10 of
        2:st:='двадцать';
        3:st:='тридцать';
        4:st:='сорок';
        5:st:='пятьдесят';
        6:st:='шестьдесят';
        7:st:='семьдесят';
        8:st:='восемьдесят';
        9:st:='девяносто';
        end;
        case n 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 n of
11..19:st:=st+' лет';
else
 case n mod 10 of
 0,5..9:st:=st+' лет';
 1:st:=st+' год';
 2..4:st:=st+' года';
 end;
end;
writeln(st);
readln;
end.

Следующий вариант

case n of
11..19:st:=st+' лет';
else
 case n mod 10 of
 0,5..9:st:=st+' лет';
 1:st:=st+' год';
 2..4:st:=st+' года';
 end;
end;

Leave a Comment

− 2 = 8