Старояпонский календарь - Pascal
Формулировка задачи:
старояпонском календаре был принят 60-летний цикл, состоявший из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: зелёный, красный, жёлтый, белый и чёрный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, кота, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Например, 1984 – год зелёной крысы. Напишите программу, которая по некоторому номеру года выводит его название по старояпонскому стилю(используя перечесляемый тип и вложенный цикл).Как это реализовать ?
Решение задачи: «Старояпонский календарь»
textual
Листинг программы
type animal=(krs,krv,tgr,cat,drk,zmj,lsh,ovc,obz,pth,sbk,svn); color=(grn,red,yel,wht,blk); const zoo:array[0..11] of string=('й крысы','й коровы','го тигра','го кота', 'го дракона','й змеи','й лошади','й овцы', 'й обезьяны','го петуха','й собаки','й свиньи'); col:array[0..4] of string=('зелено','красно','желто','бело','черно'); var g,i,ia,ic:integer; a:animal; c:color; begin repeat write('Введите номер года g>0 g='); readln(g); until g>0; g:=g mod 60-4; if g<0 then g:=g+60; writeln('g=',g); i:=-1; for c:=grn to blk do for a:=krs to svn do begin inc(i); if i=g then begin ia:=ord(a); ic:=ord(c); end ; end; writeln('Это год ', col[ic],zoo[ia]); end.
Объяснение кода листинга программы
- Объявляются типы перечислений:
animal
с возможными значениямиkrs, krv, tgr, cat, drk, zmj, lsh, ovc, obz, pth, sbk, svn
color
с возможными значениямиgrn, red, yel, wht, blk
- Объявляются константы:
zoo
, массив строк, содержащий названия животных на русском языкеcol
, массив строк, содержащий названия цветов на русском языке
- Объявляются переменные:
g
,i
,ia
,ic
типаinteger
a
типаanimal
c
типаcolor
- Запрашивается ввод числа
g
, пока оно не будет больше 0. - Значение
g
преобразуется по формулеg:=g mod 60-4
и, если результат меньше 0, прибавляется 60. - В цикле перебираются все возможные комбинации цветов и животных, и для каждой комбинации выполняется следующее:
- Увеличивается значения
i
- Если
i
равноg
, значения переменныхia
иic
присваиваются соответствующим значениямa
иc
- Увеличивается значения
- Выводится сообщение о том, что это за год, используя найденные значения
ia
иic
Как язык кода не указан, предположим, что это Pascal.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д