Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2013, 16:41   #1
andrew77753
 
Регистрация: 29.11.2013
Сообщений: 3
Сообщение Паскаль - Пролог

помогите с написанием программы на прологе...
слева должна быть программа на паскале о том, что собака является собакой... а справа на прологе.... как-то так.

Реализации задачи "Dogs"
1. Пролог-описание задачи "Dogs":

domains
name = symbol
predicates
dog ( name )
parent (name, name )
clauses
dog ( rex ). /* 1 */
dog ( X ) :- /* 2 */
parent ( X, Y ),
dog ( Y ).
parent ( larsy, rex ). /* 3 */
parent ( dick, rex ). /* 4 */

2. Паскаль-реализация усеченной задачи "Dogs":

program dogs_Dano;
type
sobaki=(Rex, Larsy, Dick);
izvestno=(dogDano, parentDano);
dogDef=record
case Dano: izvestno of
dogDano: (dog: boolean);
parentDano: (parent: sobaki);
end;
var
data: array[sobaki] of dogDef;
Klichki: array[sobaki] of string;
X: sobaki;
function dog (Y: dogDef): boolean;
begin
if Y.Dano = dogDano then dog := Y.dog
else dog := dog(data[Y.parent]);
end;
begin
Klichki[Rex] := 'Rex';
Klichki[Larsy] := 'Larsy';
Klichki[Dick] := 'Dick';
with data[Rex] do
begin Dano := dogDano; dog := true;
end;
with data[Larsy] do
begin Dano := parentDano; parent := Rex;
end;
data[Dick] := data[Larsy];
for X := Rex to Dick do
if dog (data[X]) then writeln (Klichki[X]);
readln;
END.
andrew77753 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пролог UCSRfyRFtF Фриланс 0 26.11.2012 19:56
ПРОЛОГ! _Таша_ Помощь студентам 0 23.05.2010 19:06
Пролог Dog Помощь студентам 0 29.11.2009 14:58