Вопрос № 88685: Помогите, пожалуйста:
"В старояпонском календаре был принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы назывались названием цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подциклагоды носили название жив...Вопрос № 88690: помагите решит задачу
http://diploboy.ifolder.ru/2140971...
Вопрос № 88.685
Помогите, пожалуйста:
"В старояпонском календаре был принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы назывались названием цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подциклагоды носили название животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. 1984 год -год зеленой крысы был началом очередного цикла. Напишите программу, которая запрашивает номер некоторого года нашей эры и печатает его название по старояпонскому календарю."
Отправлен: 26.05.2007, 17:46
Вопрос задал: Leeryhomer (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Ерёмин Андрей
Здравствуйте, Leeryhomer!
Фактически, задача сводится к математическим операциям над числами. Главное - не запутаться, где какой остаток взять. Алгоритм довольно прост: поделив разность лет на 12 и взяв остаток, получим номер года и соответственно название животного; поделив опять-таки разность лет на 12, но взяв целую часть от деления, получим разность номеров подциклов, а поделив это число на 5 и взяв остаток, получим как раз сам номер подцикла.
program Q88685; uses Crt;
const
Colors: array[1..5] of string = ('Зелёный','Красный','Жёлтый','Белый','Чёрный');
Animals: array[1..12] of string = ('Крыса','Корова','Тигр','Заяц','Дракон','Змея',
'Лошадь','Овца','Обезьяна','Курица','Собака','Свинья'); var year: word; d1,d2,d3,d4: integer; begin
clrscr;
write('Введите номер года нашей эры: ');
readln(year);
d1:=abs(year-1984);
d2:=d1-trunc(d1/12)*12+1; if d2 = 0 then d2:=12;
d3:=trunc(d1/12);
d4:=(d3 mod 5) + 1;
write('Год ',year,': [',Colors[d4],'] - [',Animals[d2],']');
readln; end.
Приложение:
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Я конечно извиняюсь, хотел было свой вариант ответа прислать, но он оказался немного хуже. И поэтому, просто хотелось бы тогда немного подправить ответ эксперта Ерёмина Андрея. Вот что я исправил:
Ответ отправил: Louken (статус: 3-ий класс)
Ответ отправлен: 26.05.2007, 23:22 Оценка за ответ: 5
Отвечает: Устинов С.Е.
Здравствуйте, Leeryhomer!
Да... задачка вроде бы не сложная, а вот верно ее не решили.
Учился я как-то на втором курсе и дали нам решить эту задачку, так решили почти все, а вот сдать не получилось почти ни у кого. А проблемы две (как раз на них и не обратил внимания Ерёмин Андрей):
1. 1984 год не является самым первым годом, когда была введена эта система, он является НАЧАЛОМ НОВОГО ЦИКЛА, т.е. 1983 год - последний год цикла - т.е. год ЧЕРНОЙ СВИНЬИ (в решении, которое Вам дали - это зеленая корова - т.е. второй год цикла)!!!
2. Проблема с цветами:
Вам показали в программе, что идет подряд цикл 12 лет одного цвета, 12 лет другого и т.д.
На самом деле для цветов есть закономерность - ДВА ГОДА ПОДРЯД идет один цвет.
Вы можете проверить (воспользуйтесь поиском яндекса), что:
2000 год - БЕЛОГО дракона,
2001 год - БЕЛОЙ змеи,
2002 год - ЧЕРНОЙ лошади,
2003 год - ЧЕРНОЙ овцы,
2004 год - ЗЕЛЕНОЙ обезьяны,
2005 год - ЗЕЛЕНОГО петуха,
2006 год - КРАСНОЙ собаки,
2007 год - КРАСНОГО кабана (свиньи).
В программе же, полученной Вами ранее все эти года имеют один цвет - красный!!!
Программа, правильно реализующая решение этой задачи (включая года до 1984 и правильные цвета) написана в приложении.
Отвечает: Coupler
Здравствуйте, Muhammedov Abdurohman!
Решение задачи в приложении. В отмеченных комментариями строках вместо '' напишите полный путь к файлам input.txt и output.txt соответственно, например:
'c:input.txt' и 'c:output.txt'
Приложение:
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 27.05.2007, 06:05 Оценка за ответ: 5 Комментарий оценки: Супер, мне толко тепер разобрятся