Ошибки в БД - Prolog
Формулировка задачи:
Здравствуйте, что то запутался, помогите пожайлуйста.
косяк в разделе меню
но все равно ругается на https://image.darkteam.net/image.php?di=JYON
Листинг программы
- Domains
- int=integer
- str=string
- list=int*
- name = string.
- mark = integer.
- file=f.
- Database
- worker(name,mark)
- Predicates
- menu
- start
- sum(list,int)
- avg(list,int)
- summ
- Clauses
- summ:-
- sum([], 0).
- sum([H|T], S) :-sum(T, S_T),S = S_T + H.
- avg(L,S):-sum(L,S).
- menu:-
- findall(X,worker(_,X),L),
- avg(L,K),write("sredn",K, " : ").
- start:-
- existfile("student.ddb"),!,
- consult("student.ddb"),
- menu.
- start:-
- openwrite(f,"student.ddb"),
- closefile(f),
- menu.
- GOAL
- Start
Суть задания в том что бы взять из базы 2 переменную, сложить и вывести.
вот поправил
Листинг программы
- Domains
- int=integer
- str=string
- list=int*
- name = string
- mark = integer
- file=f.
- Database
- worker(name,mark)
- Predicates
- menu
- summ
- start
- sum(list,int)
- avg(list,int)
- Clauses
- summ:-
- sum([], 0).
- sum([H|T], S) :-sum(T, S_T),S = S_T + H.
- avg(L,S):-sum(L,S).
- menu:-
- findall(X,worker(_,X),L),
- avg(L,K),write("sredn",K),
- summ.
- start:-
- existfile("student.ddb"),!,
- consult("student.ddb"),
- menu.
- start:-
- openwrite(f,"student.ddb"),
- closefile(f),
- menu.
- GOAL
- Start
Решение задачи: «Ошибки в БД»
textual
Листинг программы
- domains
- mark = integer
- listint = integer*
- listmark = mark*
- predicates
- sum(listmark, mark)
- sum(listint, integer)
- clauses
- sum([], 0).
- sum([H|T], S) :-
- sum(T, S_T),
- S = S_T + H.
Объяснение кода листинга программы
- В коде используется язык программирования Prolog.
- Код содержит три домена: mark (целое число), listint (целое число) и listmark (mark).
- Также в коде определены три предиката: sum(listmark, mark), sum(listint, integer) и sum(listmark, S) где S - это переменная.
- Существует три утверждения (клаузы) для предиката sum:
- sum([], 0). - если список пустой, то сумма равна 0.
- sum([H|T], S) :- sum(T, S_T), S = S_T + H. - если в списке есть элементы, то сумма равна сумме элементов списка, начиная с последнего, плюс первый элемент.
- Значения переменных:
- H - переменная, обозначающая текущий элемент списка.
- T - переменная, обозначающая список без текущего элемента.
- S - переменная, обозначающая сумму элементов списка.
- S_T - переменная, обозначающая сумму элементов списка T.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д