Создать список, элементами которого являются 2^n - Prolog

  1. Создать список, элементами которого являются 2^n,n!, члены последовательности Фибоначчи


textual

Код к задаче: «Создать список, элементами которого являются 2^n - Prolog»

domains
num_train=string /*nomer poezda*/
destination=string /*punkt naznacheniya*/
departure_hour=integer/*vremya otpravleniya_chas*/
departure_min=integer /*vremya otpravlenya_min*/
arrival=string /*vremya pribytiya*/

database
train(num_train,destination,departure_hour,departure_min,arrival)
trainNeed(num_train,destination,departure_hour,departure_min,arrival)

predicates
menu
open_base(string) /*otkritie basy*/
case(char)
print_base /*vivod basy na ekran*/
trainToMoscow(integer,integer) /*poezd do Moscvy po zadaniu*/
checkTime(integer,integer,integer,integer) /*proverka vremeni*/
compare(integer,integer,integer,integer) /*sravnenie vremeni*/
taskTrain

goal
clearwindow,
write("Enter the name of base:"),nl,
readln(FileName),
open_base(FileName),
menu,
save(FileName),
retractall(_).

clauses
open_base(FileName):-
existfile(FileName),
consult(FileName).
open_base(_).

menu:-
clearwindow,
write("1 - Show time table\n2 - Enter new record\n3 - Delete record\n4 - Task\n0 - Exit\n\n"),
readchar(Item),
case(Item).

case('1'):- /*vivod basy na ekran*/
clearwindow,
print_base,
readchar(_),
menu.

case('2'):- /*dobavlenie novoy zapisi*/
clearwindow,
write("Number of train:"),nl,
readln(Numb),
write("Destination:"),nl,
readln(Dest),
write("Departure (hour):"),nl,
readint(DepHour),nl,
write("Departure (min):"),nl,
readint(DepMin),nl,
write("Arrival time (hour:min):"),nl,
readln(Arriv),nl,
assertz(train(Numb,Dest,DepHour,DepMin,Arriv)),
menu.

case('3'):- /*udalenie poezda po nomeru*/
clearwindow,
write("Enter number of train:"),nl,
readln(DelNumb),
retract(train(DelNumb,_,_,_,_)),
menu.

case('4'):- /*zadanieoisk blizhaishego poezda do moskvy*/
clearwindow,
write("Enter hour of departure"),nl,
readint(TimeHour),nl,
write("Enter minute of departure"),nl,
readint(TimeMin),nl,
trainToMoscow(TimeHour,TimeMin),
taskTrain,
retractall(trainNeed(_,_,_,_,_)),
readchar(_),
menu.

case('0').
case(_):-
menu.

print_base:-
train(Numb,Dest,DepHour,DepMin,Arriv),
write(Numb," | ",Dest," | ",DepHour,":",DepMin," | ",Arriv),nl,
fail.
print_base.

trainToMoscow(TimeHour,TimeMin):-
train(Numb,Dest,DepHour,DepMin,Arriv),
Dest="Moscow",
checkTime(DepHour,DepMin,TimeHour,TimeMin),
assertz(trainNeed(Numb,Dest,DepHour,DepMin,Arriv)),
fail.
trainToMoscow(_,_).

checkTime(DepHour,DepMin,TimeHour,TimeMin):-
X=DepHour+6,
compare(DepHour,DepMin,X,TimeMin),
compare(TimeHour,TimeMin,DepHour,DepMin),!.
checkTime(DepHour,DepMin,TimeHour,TimeMin):-
X=TimeHour+6,
Y=DepHour+24,
compare(Y,DepMin,X,TimeMin),
compare(TimeHour,TimeMin,Y,DepMin),!.
compare(T1,_,T2,_):-
T1<T2.
compare(T1,M1,T2,M2):-
T1=T2,M1<=M2.

taskTrain:-
trainNeed(Numb,Dest,DepHour,DepMin,Arriv),
write(Numb," | ",Dest," | ",DepHour,":",DepMin," | ",Arriv),nl,
fail. 
taskTrain.

СДЕЛАЙТЕ РЕПОСТ

9   голосов, оценка 4.333 из 5



Похожие ответы
  1. Добрый день! помогите создать предикат, нахождения множества , которое получается в результате выполнения следующих действий над тремя множествами А - (В∩С)

  1. Помогите, пожалуйста, без перенаправлений на другие темы. Срочно нужен код создания списка из N начальных чисел ряда Фибоначчи

  1. Пожалуйста,помогите решить задачку: Дана строка (до 64 Кбайт) в текстовом файле. Создать динамическую базу предложений данной строки. По номеру предложения выдавать его на экран. Для создания интерфейса использовать стандартные средства. Необходимо написать на turbo prolog

  1. Создать предикат принадлежности элемента множеству разности двух множеств

  1. По исходному списку создать описание мультимножества в виде двух списков, первый - элемент множества, второй - их количество в исходном списке. Я написал уже вроде код,но он выдает программную ошибку. Смысл такой у меня был: отсортировать пузырьком, а затем считать элементы одинаковые и забивать в список пар. У кого есть варианты лучше и свои проги, приму.

  1. VISUAL PROLOG 5.2. Вроде все сделал, только возникает ошибка компиляции, не могу понять в чем проблема:

  1. Оставить те элементы списка, которые не являются числами Фибоначчи. Помогите, в чём может быть ошибка? Заранее спасибо.