Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача. Паскаль разветвляющиеся алгоритмы.

Личный Кабинет Удалён Мыслитель (9996), закрыт 14 лет назад
Написать программу, дописывающую после натурального N (возраст человека в годах, N<=100) слова "год", "года", "лет" в зависимости от значения N.
Помогите пожалуйста, кто-нибудь....
Лучший ответ
Gennady Гений (60850) 14 лет назад
const Ending : array[1..3] of String[4] = ('год','года','лет');

N01 := N mod 10;
N10 := N mod 100 div 10;

{ установка индекса окончания }
if (N01 = 0) or (N01 > 4) or (N10 = 1) then idx := 3 else
if (N01 > 1) and (N01 < 5) then idx := 2 else idx := 1;

WriteLn(N, ' ' + Ending[idx]);

И все! Остальное самостоятельно.

Личный Кабинет УдалёнМыслитель (9996) 14 лет назад
спасибо.. теперь ясно как эту задачу можно решить по-другому))))
условия очень сложные... целую минуту голову ломал(((
Gennady Гений (60850) Все здесь просто. И годится это для любых чисел.
Остальные ответы
Krab Bark Искусственный Интеллект (191708) 14 лет назад
var s:string[5]; n:integer;
begin
readln(n); case n mod 10 of 1: s:=' год'; 2..4:s:=' года'; else s:=' лет' end;
if (n > 10)and(n<20) then s:=' лет';
writeln(n,s), readln end.
Личный Кабинет УдалёнМыслитель (9996) 14 лет назад
быстро исправились))) условие перед кейсом поставить лучше... грамотней както... а остальное в else. Я тоже так сделал... Вот ищу альтернативные версии....
Krab Bark Искусственный Интеллект (191708) Угу :)
Похожие вопросы