В русском языке, когда говорят о количестве лет, то после числа используют слова "год", "года" и "лет". Например, 1 год, но 10 лет или 3 года.
Требуется написать программу, которая в зависимости от числа добавляет правильное окончание.
Слово "год" добавляется ко всем числам, последняя (или единственная) цифра которых равна 1.
"Года" для оканчивающихся на 2, 3, 4. Во всех остальных случаях используется слово "лет".
Числа 11, 12, 13, 14 (или имеющие такой остаток от деления на 100) имеют "окончание" лет.
Для того, чтобы определить, на какую цифру заканчивается число, надо найти остаток от его деления на 10.
Для решения этой задачи удобно использовать множества.
var let, let11, god, goda: set of byte; age, n: byte; begin let := [0,5,6,7,8,9]; let11 := [11,12,13,14]; god := [1]; //goda := [2,3,4]; write('Введите количество лет: '); readln(age); if (age in let11) or (age mod 100 in let11) then writeln(age, ' лет') else begin n := age mod 10; if n in let then writeln(age, ' лет') else if n in god then writeln(age, ' год') else writeln(age, ' года ') end; readln; end.
Комментарии
Var a:integer;beginreadln
Тоже самое без множеств.
а можно так?
Врядли
Если пользователь введет, скажем, 21, то ваша программа выведет на экран "21 let", что не есть правильно.
вот так
Var a:integer;
begin
readln (a);
if (a mod 10=1) and (a11) then writeln(a,' год') else begin
if (a>1) and (a if a>5 then writeln (a,' лет');
end;
end.
правильнее и короче не может быть
Var a:integer;
begin
readln (a);
if (a mod 10=1) and (a11) then writeln(a,' год') else begin
if (a>1) and (a if a>5 then writeln (a,' лет'); end;
end.
что такое let11?
что такое let11?
let11 - переменная, больше
let11 - переменная, больше 11, при которой правильно говорить ".. лет"
а куда девать 24 года или это
а куда девать 24 года или это тоже 24 лет