#include <stdio.h>
#include <SWI-Prolog.h>
int SommeProlog(int argc, char **argv)
{
int liste[3];
int i;
int retour;
int somme;
char **argv2;
int argc2;
predicate_t pred1;
predicate_t pred2;
term_t h0;
term_t h1;
if (!PL_initialise(argc,argv))
{
PL_halt(1);
printf ("ERREUR\n");
}
/*retour = PL_is_initialised(&argc2, &argv2);*/
for (i=0;i<3;i++)
{
printf ("Entrer le numéro d'indice %d : ",i+1);
scanf ("%d",&liste[i]);
printf ("\n");
}
h1 = PL_new_term_refs(1);
PL_put_integer(h1,1);
pred1 = PL_predicate ("initialiser",1,"user");
PL_call_predicate(NULL,PL_Q_NORMAL,pred1,h1);
h0 = PL_new_term_refs(7);
PL_put_integer(h0, liste[0]);
PL_put_integer(h0 + 1, liste[1]);
PL_put_integer(h0 + 2, liste[2]);
pred2 = PL_predicate ("somme",7,"user");
for (i=0;i<10;i++)
{
somme = 0;
PL_call_predicate(NULL,PL_Q_NORMAL,pred2,h0);
PL_get_integer(h0 + 3, &somme);
printf ("somme1 = %d\n",somme);
PL_get_integer(h0 + 4, &somme);
printf ("somme2 = %d\n",somme);
PL_get_integer(h0 + 5, &somme);
printf ("somme3 = %d\n",somme);
PL_get_integer(h0 + 6, &somme);
printf ("somme4 = %d\n",somme);
sleep (1);
}
PL_halt(1);
return (1);
}
Partager