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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 18:48   #1
Dentin
Новичок
Джуниор
 
Аватар для Dentin
 
Регистрация: 28.05.2009
Сообщений: 2
По умолчанию Подскажите пожалуйста. "турбо-Пролог"

Я недавно изучаю турбо-Пролог поэтому возникла такая загвоздка.
Есть задание "Заданы отношения: "город находится в области", "область находится в республике". Написать программу, определяющую в какой республике находится город. Улучшить программу таким образом, чтобы название города запрашивалось программой; в случае отсутствия такого города в БД выводилось соответствующее сообщение."

Вот что у меня вышло

domains
sit,obl,res,St,L=string
N,S,P=integer
predicates
window
process
sound1
siti(sit,obl,res) zapr(N,St)
goal
window.
clauses
siti("Moskva","Moskovskaia obl.","Rossiia").
siti("Stavropol","Stavropol'skiy kr.","Rossiia").
siti("Groznyy","Groznenskiy rn.","Chechnia").
siti("Derbent","Derbentskiy rn.","Dagestan").
siti("Ahty","Ahtynskiy rn.","Dagestan").
siti("Cherkessk","Prikubanskiy rn.","Karachaevo-Cherkesiia").
siti("Karachakvsk","Karachaevskiy rn.","Karachaevo-Cherkesiia").

window:-makewindow(1,121,7,"OKNO ZAPROSA",0,0,25,80),cursor(1,0),pro cess.
process:-write("VVEDITE NAZVANIE GORODA: "),
readln(St),St<>"",nl,zapr(2,St),fai l,zapr(0,St).
zapr(2,St):-siti(X,_,_)or X=St,zapr(1,St).
zapr(1,St):-siti(X,_,Y)and X=St,write(X," nahoditsia v ",Y),nl,nl,nl,process.
zapr(0,_):-write("Etogo goroda net v baze"),nl,nl,nl,process.

если ввести несуществующий город программа прерывается, а нужно чтобы она перешла на zapr(0,St), может кто поможет.
Я понимаю что в коде есть явные ошибки но опыта не хватает.
"Опыт, это такая штука которая появляется сразу после того как была нужна"
Dentin вне форума Ответить с цитированием
Старый 30.05.2009, 15:34   #2
Dentin
Новичок
Джуниор
 
Аватар для Dentin
 
Регистрация: 28.05.2009
Сообщений: 2
По умолчанию

Спасибо за ВНИМАНИЕ но я уже сам кое-как

domains
sit,obl,res,St=string
N=integer
predicates
window
process
sound1
siti(N,sit,obl,res) zapr(N,St)
goal
window.
clauses
siti(1,"Moskva","Moskovskaia obl.","Rossiia").
siti(2,"Stavropol","Stavropol'skiy kr.","Rossiia").
siti(3,"Groznyy","Groznenskiy rn.","Chechnia").
siti(4,"Derbent","Derbentskiy rn.","Dagestan").
siti(5,"a","Derbentskiy rn.","Dagestan").
siti(6,"Ahty","Ahtynskiy rn.","Dagestan").
siti(7,"Cherkessk","Prikubanskiy rn.","Karachaevo-Cherkesiia").
siti(8,"Karachakvsk","Karachaevskiy rn.","Karachaevo-Cherkesiia").
siti(9,"b","Moskovskaia obl.","Rossiia").

window:-makewindow(1,121,7,"OKNO ZAPROSA",0,0,25,80),cursor(1,0),sou nd1,process.

process:-write("VVEDITE NAZVANIE GORODA: "),readln(St),St<>"",nl, zapr(0,St).

zapr(0,St):-siti(X,Y,_,_) and Y=St, !,sound(10,1000),zapr(X,St).

zapr(0,St):-sound(10,100),St<>"",write(" Etogo goroda net v baze"),nl,nl,nl,process.

zapr(N,St):-ST<>"",siti(N,Y,_,Z),write(Y," nahoditsia v ",Z),nl,nl,nl,process.

sound1:-sound(15,1000),sound(15,1500),sound (15,2000).
"Опыт, это такая штука которая появляется сразу после того как была нужна"
Dentin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Модель молекулы в газе" подскажите почему не работает? Тёма(C@$pEr) Помощь студентам 4 03.02.2009 20:28
"Поиск оптимального пути движения снегоочистительных машин с учетом приоритета дорог" Пролог Kvax Помощь студентам 4 21.12.2008 22:18
Подскажите ссылку на примеры к книге Архангельского "Программирование в Делфи7". SkAndrew Свободное общение 0 24.11.2008 12:17
Задача на Турбо Паскаль "Лабиринт" H[o][o]K Помощь студентам 1 17.12.2007 18:46
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49