0

SWI-Prolog でデータベースを作成するプロジェクトのコードを書こうとしています。プログラムには、ADDING、DELETING、SORTING、および SEARCHING エントリが含まれている必要があります。私の問題は次のとおりです。

  1. 「ランナー」を大文字で追加したい。
  2. データベースに何かを追加/削除すると、ファイルが空のままになるか、実際に追加したエントリだけがエントリになります。

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 つのフィールドのみが必須であり、他のフィールドは必須ではありません。

4

0 に答える 0