Bonsoir,
je poste après 4 heures de recherches sans succes, si quelqu'un peut me donner la réponse à la Question 2.1, vérifier(L), je serai trés reconnaissant et me permettra d'avancer sur le reste.
voilà mon sujet :
Un drone peut voler si son lanceur lui donne un code de démarrage. Le code est donné par un utilisateur et par un automate. Le code est soumis à des contraintes. Vous devez créer un programme Prolog pour fournir des codes valides à 5 chiffres. Les codes se présentent sous la forme d’une séquence de 5 valeurs.
Voici les caractéristiques imposées sur la séquence
1. 5 chiffres.
2. Les 3 premiers chiffres ont une valeur entre 1 et 5, soit [1..5].
3. Le 4ième chiffre a une valeur entre 1 et 6, soit [1..6].
4. Le 5ième chiffre a une valeur entre 1 et 7, soit [1..7].
5. La somme des chiffres de la séquence est 16.
Question 2.1 : Ecrire 1 prédicat Prolog nommé Vérifier d’arité 1, qui demande à un utilisateur de rentrer les deux premiers chiffres compris entre 1 et 5 et qui produit les 3 autres chiffres en respectant les contraintes nommées.
Exemple :
Votre programme évolue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 1 ?- verifier(L). Le premier chiffre |: 2. Le deuxième chiffre |: 3. L = [2, 3, 1, 3, 7]
1. La somme des 5 chiffres est toujours 16.
2. Les 2 premiers chiffres donnés par l’utilisateur sont obligatoirement différents (les valeurs sont toujours comprises entre 1 et 5).
3. Les 3 chiffres donnés par votre programme sont différents eux aussi entre eux et différents de ceux de l’utilisateur.
4. Les 3 autres chiffres donnés par votre programme suivent toujours les contraintes initiales :
a. Le choix du premier chiffre de la machine se fait entre les valeurs : 1 et 5,
b. Le choix du deuxième chiffre de la machine se fait entre les valeurs : 1 et 6,
c. Le choix du troisième chiffre de la machine se fait entre les valeurs : 1 et 7.
Question 2.2 : Écrire 1 prédicat Prolog nommé Combinaisons d’arité 1, qui donne toutes les combinaisons en une seule demande et qui redemande à l’utilisateur de rentrer ses chiffres si ils ne sont pas différents.
Question 2.3 : Donnez toutes les combinaisons avec votre prédicat Combinaisons d’arité 1, pour les couples de chiffres de l’utilisateur (1,2), (2,3), (3,4), et (4,5).
Question 2.4 (3 points): Écrire 1 prédicat Prolog nommé Combinaisons2 d’arité 2, qui donne toutes les combinaisons en une seule demande et qui redemande à l’utilisateur de rentrer ses chiffres si ils ne sont pas différents et qui permet de donner une valeur pour la somme.
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1 ?- combinaisons2(L, 23). Le premier chiffre |: 4. Le deuxième chiffre |: 5. [4, 5, 1, 6, 7]
Partager