SWI-Prolog でデータベースを作成するプロジェクトのコードを書こうとしています。プログラムには、ADDING、DELETING、SORTING、および SEARCHING エントリが含まれている必要があります。私の問題は次のとおりです。
- 「ランナー」を大文字で追加したい。
- データベースに何かを追加/削除すると、ファイルが空のままになるか、実際に追加したエントリだけがエントリになります。
1 つのファイルをデータベース エントリとして使用し、2 番目のファイルをすべてのロジックに使用しています。事前に助けてくれてありがとう。
データベースには、次のレコードがあります。
:- dynamic runner/6.
runner(elvis, presley, _, _, _ ,_).
runner(darth, vader, _, _, _, _).
runner(louis, armstrong, _, _, _, _).
runner(wayne, gretzky, _, _, _, _).
「_」コンポーネントは、DATE、HEIGHT、WEIGHT などです。データベース ファイルの名前はdatabase.pl
です。
論理的には、次のようになります。
add :-
write_ln('Name: '),
readln(M),
write_ln('Surname: '),
readln(P),
insert(M, P).
del :-
write_ln('Name: '),
readln(M),
write_ln('Surname: '),
readln(P),
delete(M, P).
insert([M], [P]) :-
tell('database.pl'),
asserta(pretekar(M, P,_,_,_,_)),
told,
write('Added runner: '), write(M), write(' '), write_ln(P).
delete([M], [P]) :-
tell('database.pl'),
retract(runner(M, P, _, _, _, _)),
listing(runner),
told,
write('Deleted runner: '), write(M), write(' '), write_ln(P).
すべてのランナーは自分の名前と姓で書かれている必要があり、他のフィールドは空白にすることができます. 少なくとも名前、姓、最大で名前、姓、身長、日付、体重を追加する方法... 最初の 2 つのフィールドのみが必須であり、他のフィールドは必須ではありません。