Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 8

Объясните код

07.12.2020, 11:05. Показов 647. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Задание такое.
В старояпонском календаре был принят 60-летний цикл, состоящий из пяти 12-летних подциклов Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый и черный Внутри каждого подцикла года носили названия животных: крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, курица, собака и свинья. Например, 1984 год— год начала очередного цикла— назывался годом зеленой крысы.
Составить программу, которая по заданному номеру года нашей эры п печатает его название по старояпонскому календарю. Рассмотреть два случая:
а) значение n > 1984;
б) значение n может быть любым натуральным числом
Код вот такой:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
domains
    sl=string*
 
predicates
    color(integer,string) 
    animal(integer,string)
    nam(integer,string,string)
    nth0(integer,sl,string)
    nm(integer,integer)
 
clauses
    color(N,X):-N1=((N-1984) mod 60) div 12,  
    nth0(N1,
        ["green","red","yellow","white","black"],
        X).
    animal(N,X):- N1=(N-1984) mod 12, 
    nth0(N1,
        ["rat","cow","tiger","rabbit","dragon","snake","horse","ship","monkey","chiken","dog","pig"],
        X).
 
    nth0(0,[A|_],A):-!.
    nth0(I,[_|L],A):-J=I-1,nth0(J,L,A).
 
    nm(N,N):- N>1983,!.
    nm(N,N0):- N<1984,N1=N+60,nm(N1,N0).
    
    nam(N,X,Y):- nm(N,N1),color(N1,X),animal(N1,Y).
 
goal 
    nam(2016,Color,Animal).
Объясните, пожалуйста, что делают эти строчки, желательно построчно
Prolog
1
2
3
4
5
6
7
        nth0(0,[A|_],A):-!.
    nth0(I,[_|L],A):-J=I-1,nth0(J,L,A).
 
    nm(N,N):- N>1983,!.
    nm(N,N0):- N<1984,N1=N+60,nm(N1,N0).
    
    nam(N,X,Y):- nm(N,N1),color(N1,X),animal(N1,Y).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2020, 11:05
Ответы с готовыми решениями:

Объясните код
Подскажите,пожалуйста,точнее расскажите,что означает чать кода программы,я выделил красным цветом что делает предикат exp_2,желательно бы...

Объясните код
Добрый день. Пожалуйста помогите разобраться в коде, не понимаю. Задача:Определите предикат center(+X,+N,?R) – истинный тогда и только...

Объясните код пожалуйста
Здравствуйте, очень нужна помощь. Декларативные языки программирования даються с трудом, но в универе задали задание по Prolog. Нашел код,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2020, 11:05
Помогаю со студенческими работами здесь

Объясните код
Помогите пожалуйста разобрать код, желательно комментарии к каждой строчке. module BinSearchTree ( BinSearchTree ,...

Нашел код, он рабочий но я его не понимаю. Объясните код пожалуйста
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Объясните код, что здесь происходит.алгоритм и код
allreducee.cpp // Copyright 2019 #include &quot;../../../modules/task_2/.../allreducee.h&quot; #include &lt;cmath&gt; #include &lt;cstring&gt; ...

Объясните код
Здравствуте. Собственно я считываю числа из файла в массив. Объясните как как работает данный фрагмент кода. Точнее как работает...

Объясните код
Код от цифровых часов,расскажите подробно что делает каждый код,пожалуйста. uses GraphABC,System; begin Font.Size := 80; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru