ЕМ
Екатерина Мирошниченко

Уважаемые, помогите решить задачу по программированию 9 класс

Условие: Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом "год", "года" или "лет".
Загвоздка в том, что прошли мы только сложные условия, знаем только такие операторы как "not", "and', "or", "xor" ну и, конечно, if, else и самые основные.
Возможно ли эту программу как-то покороче записать с помощью только этих операторов. На изображении программа, которую написал я, она работает, но по-моему слишком большая.

program azaza;
var x: integer;
begin
writeln ('Введите возраст');
read (x);
if (x=1) or (x=21) or (x=31) or (x=41) or (x=51) or (x=61) or (x=71) or (x=81) or (x=91) or (x=101) or (x=101) or (x=121) or (x=131) or (x=141) then
writeln ('год');
if (x>=2) and (x<=4) or (x>=22) and (x<=24) or (x>=32) and (x<=34) or (x>=42) and (x<=44) or (x>=52) and (x<=54) or (x>=62) and (x<=64) or (x>=72) and (x<=74) or (x>=82) and (x<=84) or (x>=92) and (x<=94) or (x>=102) and (x<=104) or (x>=122) and (x<=124) or (x>=132) and (x<=134) or (x>=142) and (x<=144) then
writeln ('года');
if (x>=5) and (x<=20) or (x>=25) and (x<=30) or (x>=35) and (x<=40) or (x>=45) and (x<=50) or (x>=55) and (x<=60) or (x>=65) and (x<=70) or (x>=75) and (x<=80) or (x>=85) and (x<=90) or (x>=95) and (x<=100) or (x>=105) and (x<=120) or (x>=125) and (x<=130) or (x>=135) and (x<=140) or (x>=145) and (x<=150)then
writeln ('лет')
end.

МП
Михаил Прянишников

!!!!
Делай IntToStr(возраст)
Выдергивай последнюю цифру как букву [строка. len - 1]
и сравнивай 1, 2-3-4, 5-6-7-8-9-0
всего три условия.
Есть наверное другие более правильные способы вытащить единицу из числа.

Илья
Илья

Маловато условий в предпредыдущем ответе. Ну, во-первых, стольник никак не влияет на окончание. Значит, если больше ста, то вычесть сто и дальше анализировать остаток. Сначала нужно проверить на интервал от 11 до 20. Если "да", то вывести "лет". А уже потом последнюю цифру. 1 - "год", 2-3-4 - "года", 5--0 - "лет".
А в предыдущем ответе: как это mod 10 может быть больше 10?

Анютка
Анютка

program p;
uses crt;
var
d, age:integer;
begin
write('Введите свой возраст: ');
read(age);
d:= (age mod 10);
if (d = 1) then
write('год')
else if (d >= 2) and (d <= 4) then
write('года')
else if (d >= 5) and (d <= 19) then
write('лет')
else
write('лет');

readkey;
end.

Похожие вопросы
Помогите решить задачу по программированию
Помогите решить задачу по программированию!
Уважаемые, помогите в программировании, кто чем может (задача внутри)
помогите решить задачи по программированию!
помогите решить задачу по программированию, паскаль
Помоги решить задачу по программированию, пожалуйста.
Помогите пожалуйста решить задачу на программирование
Помогите решить задачи по программированию, пожалуйста.
Помогите решить задачу из олимпиады (Информатика 9 класс)!!!
Помогите решить задачу по программированию. Пожалуйста.