Aller au contenu

aide en clips (urgent)


manumanien

Messages recommandés

Quelqu'un peut-il me dire ce qui marche pas,merci d'avance.

(deftemplate forfait

(slot provider)

(slot debit)

(slot tarif)

(slot couverture)

(slot service))

(deffacts liste

(forfait (provider Neuf)(debit 512)(tarif 14.90)(couverture FT)(service aucun))

(forfait (provider Neuf)(debit 512)(tarif 23.90)(couverture FT)(service telephone))

(forfait (provider Neuf)(debit 8000)(tarif 14.90)(couverture DP)(service aucun))

(forfait (provider Neuf)(debit 8000)(tarif 23.90)(couverture DP)(service telephone))

(forfait (provider Alice)(debit 1024)(tarif 15.95)(couverture DP)(service aucun))

(forfait (provider Alice)(debit 3000)(tarif 29.95)(couverture DP)(service aucun))

(forfait (provider Alice)(debit 1024)(tarif 10.95)(couverture DT)(service telephone))

(forfait (provider Alice)(debit 3000)(tarif 46.95)(couverture DT)(service telephone))

(forfait (provider Aol)(debit 128)(tarif 19.90)(couverture FT)(service aucun))

(forfait (provider Aol)(debit 512)(tarif 27.90)(couverture FT)(service aucun))

(forfait (provider Aol)(debit 1024)(tarif 32.90)(couverture FT)(service aucun))

(forfait (provider Aol)(debit 1024)(tarif 16.90)(couverture DP)(service aucun))

(forfait (provider Aol)(debit 2000)(tarif 39.90)(couverture FT)(service aucun))

(forfait (provider Aol)(debit 5000)(tarif 22.90)(couverture DP)(service aucun))

(forfait (provider Cegetel)(debit 512)(tarif 14.90)(couverture FT)(service aucun))

(forfait (provider Cegetel)(debit 8000)(tarif 14.90)(couverture DP)(service aucun))

(forfait (provider Cegetel)(debit 512)(tarif 29.90)(couverture FT)(service telephone))

(forfait (provider Cegetel)(debit 8000)(tarif 24.90)(couverture FT)(service telephone))

(forfait (provider Clubinternet)(debit 1024)(tarif 39.90)(couverture FT)(service aucun))

(forfait (provider Clubinternet)(debit 6000)(tarif 24.90)(couverture DP)(service aucun))

(forfait (provider Free)(debit 2000)(tarif 29.99)(couverture FT)(service telephone))

(forfait (provider Free)(debit 8000)(tarif 29.99)(couverture DP)(service telephone))

(forfait (provider Free)(debit 8000)(tarif 29.99)(couverture DT)(service telephone))

(forfait (provider Tele2)(debit 128)(tarif 24.85)(couverture FT)(service telephone))

(forfait (provider Tele2)(debit 512)(tarif 29.85)(couverture FT)(service telephone))

(forfait (provider Tele2)(debit 1024)(tarif 14.85)(couverture DP)(service aucun))

(forfait (provider Tele2)(debit 1024)(tarif 24.85)(couverture DP)(service telephone))

(forfait (provider Tele2)(debit 2000)(tarif 19.85)(couverture DP)(service aucun))

(forfait (provider Tele2)(debit 2000)(tarif 29.85)(couverture DP)(service telephone))

(forfait (provider Tiscali)(debit 512)(tarif 20.00)(couverture DP)(service aucun))

(forfait (provider Tiscali)(debit 1024)(tarif 30.00)(couverture FT)(service telephone))

(forfait (provider Tiscali)(debit 2000)(tarif 30.00)(couverture DP)(service telephone))

(forfait (provider Wanadoo)(debit 512)(tarif 25.90)(couverture FT)(service aucun))

(forfait (provider Wanadoo)(debit 512)(tarif 45.90)(couverture FT)(service telephone))

(forfait (provider Wanadoo)(debit 1024)(tarif 29.90)(couverture FT)(service aucun))

(forfait (provider Wanadoo)(debit 1024)(tarif 49.90)(couverture FT)(service telephone))

(forfait (provider Wanadoo)(debit 2000)(tarif 29.90)(couverture FT)(service aucun))

(forfait (provider Wanadoo)(debit 2000)(tarif 49.90)(couverture FT)(service telephone))

(forfait (provider Wanadoo)(debit 8000)(tarif 39.90)(couverture FT)(service telephone))

)

(defrule demandeUtilisateurCouverture

?h <- (forfait (couverture indeterminee))

=>

(bind ?allowed-values (create$ 1 2 3 ))

(printout t " " crlf)

(printout t "Quelle est votre zone de couverture?" crlf)

(printout t " (1) Dégroupage total" crlf)

(printout t " (2) Dégroupage partiel" crlf)

(printout t " (3) Aucun dégroupage" crlf)

(bind ?answer (read))

(while (not (eq ?answer ?allowed-values)) do

(printout t "S'il vous plait, faites un des choix qui vous sont proposés." crlf)

(bind ?answer (read)))

(if (eq ?answer 1) then (assert (couverture DT)))

(if (eq ?answer 2) then (assert (couverture DP)))

(if (eq ?answer 3) then (assert (couverture FT)))

)

(defrule demandeUtilisateurDebit

?h <- (forfait (debit indetermine))

=>

(bind ?allowed-values (create$ 1 2 3 ))

(printout t " " crlf)

(printout t "Quelle vitesse de débit désirez-vous?" crlf)

(printout t " (1) Haut débit" crlf)

(printout t " (2) Très haut débit" crlf)

(printout t " (3) Ultra haut débit" crlf)

(bind ?answer (read))

(while (not (eq ?answer ?allowed-values)) do

(printout t "S'il vous plait, faites un des choix qui vous sont proposés" crlf)

(bind ?answer (read)))

(if (eq ?answer 1) then (assert (debit 512)))

(if (eq ?answer 2) then (assert (debit 2000))) /*A Modifier*/

(if (eq ?answer 3) then (assert (debit 6000)))

)

(defrule demandeUtilisateurService

?h <- (forfait (service indetermine))

=>

(bind ?allowed-values (create$ 1 2 ))

(printout t " " crlf)

(printout t "Désirez-vous avoir le téléphone inclus dans le forfait?" crlf)

(printout t " (1) Oui " crlf)

(printout t " (2) Non" crlf)

(bind ?answer (read))

(while (not (eq ?answer ?allowed-values)) do

(printout t "S'il vous plait, faites un des choix qui vous sont proposés" crlf)

(bind ?answer (read)))

(if (eq ?answer 1) then (assert (service telephone)))

(if (eq ?answer 2) then (assert(service aucun)))

)

(defrule elimine

?h<-(forfait(debit ?debit)(couverture ?couverture)(service ?service))

?f<-(forfait(provider ?provider)(debit ?debit)(tarif ?tarif)(couverture ?couverture)(service ?service))

(or(test(not (eq ?debit ?debit)))

(test(not (eq ?couverture ?couverture)))

(test(not (eq ?service ?service)))

)

=>

(retract ?f)

)

(defrule affiche

(forfait(provider ?provider)(debit ?debit)(tarif ?tarif)(couverture ?couverture)(service ?service))

=>

(printout t "le(s) forfait(s) qui vous conviendrai(ent)le mieux est(sont)le(s) suivant(s):"crlf)

(printout t "forfait " )

(printout t ?debit)

(printout t " de ")

(printout t ?provider)

(printout t " au prix de ")

(printout t ?tarif)

(printout t " euros par mois" crlf)

)

Lien vers le commentaire
Partager sur d’autres sites

j'ai simplifié la structure mais certaine ligne bloque encore.

le but est de créer un système sans prétention (exo basique) permettant de déterminer le forfait internet le mieux adapté à un utilisateur à qui on pose des questions:

1)sa zone de couverture

2)le débit désiré

3)son intérêt pour la téléphonie

Voici la nouvelle structure j'ai précisé l'endroit ou il y avait un problème:

***********

*TEMPLATES*

***********

(deftemplate forfait

(slot provider)

(slot debit)

(slot tarif)

(slot couverture)

(slot service)

)

***************

*BASE DE FAITS*

***************

(deffacts liste

(forfait (provider Neuf)(debit 512)(tarif 14.90)(couverture FT)(service aucun))

(forfait (provider Neuf)(debit 512)(tarif 23.90)(couverture FT)(service telephone))

(forfait (provider Neuf)(debit 8000)(tarif 14.90)(couverture DP)(service aucun))

(forfait (provider Neuf)(debit 8000)(tarif 23.90)(couverture DP)(service telephone))

(forfait (provider Alice)(debit 1024)(tarif 15.95)(couverture DP)(service aucun))

(forfait (provider Alice)(debit 3000)(tarif 29.95)(couverture DP)(service aucun))

(forfait (provider Alice)(debit 1024)(tarif 10.95)(couverture DT)(service telephone))

(forfait (provider Alice)(debit 3000)(tarif 46.95)(couverture DT)(service telephone))

(forfait (provider Aol)(debit 128)(tarif 19.90)(couverture FT)(service aucun))

(forfait (provider Aol)(debit 512)(tarif 27.90)(couverture FT)(service aucun))

(forfait (provider Aol)(debit 1024)(tarif 32.90)(couverture FT)(service aucun))

(forfait (provider Aol)(debit 1024)(tarif 16.90)(couverture DP)(service aucun))

(forfait (provider Aol)(debit 2000)(tarif 39.90)(couverture FT)(service aucun))

(forfait (provider Aol)(debit 5000)(tarif 22.90)(couverture DP)(service aucun))

(forfait (provider Cegetel)(debit 512)(tarif 14.90)(couverture FT)(service aucun))

(forfait (provider Cegetel)(debit 8000)(tarif 14.90)(couverture DP)(service aucun))

(forfait (provider Cegetel)(debit 512)(tarif 29.90)(couverture FT)(service telephone))

(forfait (provider Cegetel)(debit 8000)(tarif 24.90)(couverture FT)(service telephone))

(forfait (provider Clubinternet)(debit 1024)(tarif 39.90)(couverture FT)(service aucun))

(forfait (provider Clubinternet)(debit 6000)(tarif 24.90)(couverture DP)(service aucun))

(forfait (provider Free)(debit 2000)(tarif 29.99)(couverture FT)(service telephone))

(forfait (provider Free)(debit 8000)(tarif 29.99)(couverture DP)(service telephone))

(forfait (provider Free)(debit 8000)(tarif 29.99)(couverture DT)(service telephone))

(forfait (provider Tele2)(debit 128)(tarif 24.85)(couverture FT)(service telephone))

(forfait (provider Tele2)(debit 512)(tarif 29.85)(couverture FT)(service telephone))

(forfait (provider Tele2)(debit 1024)(tarif 14.85)(couverture DP)(service aucun))

(forfait (provider Tele2)(debit 1024)(tarif 24.85)(couverture DP)(service telephone))

(forfait (provider Tele2)(debit 2000)(tarif 19.85)(couverture DP)(service aucun))

(forfait (provider Tele2)(debit 2000)(tarif 29.85)(couverture DP)(service telephone))

(forfait (provider Tiscali)(debit 512)(tarif 20.00)(couverture DP)(service aucun))

(forfait (provider Tiscali)(debit 1024)(tarif 30.00)(couverture FT)(service telephone))

(forfait (provider Tiscali)(debit 2000)(tarif 30.00)(couverture DP)(service telephone))

(forfait (provider Wanadoo)(debit 512)(tarif 25.90)(couverture FT)(service aucun))

(forfait (provider Wanadoo)(debit 512)(tarif 45.90)(couverture FT)(service telephone))

(forfait (provider Wanadoo)(debit 1024)(tarif 29.90)(couverture FT)(service aucun))

(forfait (provider Wanadoo)(debit 1024)(tarif 49.90)(couverture FT)(service telephone))

(forfait (provider Wanadoo)(debit 2000)(tarif 29.90)(couverture FT)(service aucun))

(forfait (provider Wanadoo)(debit 2000)(tarif 49.90)(couverture FT)(service telephone))

(forfait (provider Wanadoo)(debit 8000)(tarif 39.90)(couverture FT)(service telephone))

)

****************

*INITIALISATION*

****************

(defrule debut

=>

(assert (service I))

(assert (debit I))

(assert (couverture I))

)

******************

*QUESTIONS POSEES*

******************

(defrule demandeCouverture

?h <- (couverture I)

=>

(printout t " " crlf)

(printout t "Quelle est votre zone de couverture?" crlf)

(printout t " (1) Dégroupage total" crlf)

(printout t " (2) Dégroupage partiel" crlf)

(printout t " (3) Aucun dégroupage" crlf)

(bind ?rep1 (read)))

(while ((not (eq ?couverture 1))&(not (eq ?couverture 2))&(not (eq ?couverture 3))) do

(printout t "S'il vous plait, faites un des choix qui vous sont proposés." crlf)

(assert (couverture ?rep1)))

(if (eq ?couverture 1) then (assert (couverture DT)))

(if (eq ?couverture 2) then (assert (couverture DP)))

(if (eq ?couverture 3) then (assert (couverture FT)))

)

(defrule demandeDebit

?h <- (debit I)

=>

(printout t " " crlf)

(printout t "Quelle vitesse de débit désirez-vous?" crlf)

(printout t " (1) Haut débit" crlf)

(printout t " (2) Très haut débit" crlf)

(printout t " (3) Ultra haut débit" crlf)

(bind ?rep2 (read)))

(while ((not (eq ?debit 1))&(not (eq ?debit 2))&(not (eq ?debit 3))) do

(printout t "S'il vous plait, faites un des choix qui vous sont proposés" crlf)

(assert (debit ?rep2)))

(if (eq ?debit 1) then (assert (debit (512|128))))

(if (eq ?debit 2) then (assert (debit (1028|2000)))) :devil: *probleme (multislot)*

(if (eq ?debit 3) then (assert (debit (3000|6000|8000))))

)

(defrule demandeService

?h <- (service I)

=>

(printout t " " crlf)

(printout t "Désirez-vous avoir le téléphone inclus dans le forfait?" crlf)

(printout t " (1) Oui " crlf)

(printout t " (2) Non" crlf)

(bind ?rep1 (read)))

(while ((not (eq ?service 1))&(not (eq ?service 2))) do

(printout t "S'il vous plait, faites un des choix qui vous sont proposés" crlf)

(assert (service ?rep3)))

(if (eq ?service 1) then (assert (service telephone)))

(if (eq ?service 2) then (assert(service aucun)))

)

******************

*TRI ET AFFICHAGE*

******************

(defrule affichage

?f<-(forfait(provider ?p)(debit ?d)(tarif ?t)(couverture ?c)(service ?s))

(test(not ((eq ?d debit) and (eq ?c couverture) and (eq ?s service)))) :francais: *problème de syntaxe je suppose*

=>

(retract ?f)

(printout t "le(s) forfait(s) qui vous conviendrai(ent)le mieux est(sont)le(s) suivant(s):"crlf)

(printout t "forfait " )

(printout t ?d)

(printout t " de ")

(printout t ?p)

(printout t " au prix de ")

(printout t ?t)

(printout t " euros par mois" crlf)

)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...