Старояпонский календарь - 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.

Объяснение кода листинга программы

  1. Объявляются типы перечислений:
    • animal с возможными значениями krs, krv, tgr, cat, drk, zmj, lsh, ovc, obz, pth, sbk, svn
    • color с возможными значениями grn, red, yel, wht, blk
  2. Объявляются константы:
    • zoo, массив строк, содержащий названия животных на русском языке
    • col, массив строк, содержащий названия цветов на русском языке
  3. Объявляются переменные:
    • g, i, ia, ic типа integer
    • a типа animal
    • c типа color
  4. Запрашивается ввод числа g, пока оно не будет больше 0.
  5. Значение g преобразуется по формуле g:=g mod 60-4 и, если результат меньше 0, прибавляется 60.
  6. В цикле перебираются все возможные комбинации цветов и животных, и для каждой комбинации выполняется следующее:
    • Увеличивается значения i
    • Если i равно g, значения переменных ia и ic присваиваются соответствующим значениям a и c
  7. Выводится сообщение о том, что это за год, используя найденные значения ia и ic Как язык кода не указан, предположим, что это Pascal.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы