Bonjour,
J’espère avoir poster dans la bonne section. Je suis étudiant en cours du soir en dut informatique.
J'ai un problème sur un TD ; je vois mon prof vendredi prochain je souhaiterai pouvoir avancer d'ici la !
En gros mon TAD doit afficher les entiers sous cette forme : le peano 3 = ***! ; ou le peano 6 = ******! etc ...
J'ai ensuite plusieurs fonctions pour manipuler le TAD (voir commentaire dans code peano.c).
J'ai une fonction inf qui vérifie que p < q et qui dois me renvoyer un booléen, sup qui vérifie que p > q et qui renvoie aussi 0 pour faux et 1 pour vrai.
Jusque la, tout va bien. Lors du lancement de l'exe via la console, j'ai bien les bons résultats. Mais lorsque j'intègre la fonction égal (p == q) les résultats des fonctions inf et sup passe à 33 (lorsque p = ***! et q = ***!).
J'ai donc rechangé et maintenant je me retrouve avec mes 3 fonctions (inf, sup et egal) à 0 (qui signifie dans mon code qu'il trouve autre chose que vrai(ce qui peut être juste dans certains cas mais pas fiable)).
Je vous poste en dessous les différents code ( le client, déclaration et les corps), j’espère avoir donné assez d'informations n'hésitez pas à me demander si besoin. PS : Lors du passage en balise des décalages d'indentations ce sont produites, désolé pour la lecture.
Je débute donc désolé si je comprend pas tout du premier coup !
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 //clientPeano.c #include <stdio.h> #include <stdlib.h> #include "peano.h" int main(void) { peano p ; peano n ; peano q ; peano m ; int k ; int a ; int e; p = zero() ; q = zero() ; n = zero(); m = zero(); p = succ(succ(p)); q = succ(succ(succ(q))); n = add(p,q); m = mult(p,q); //affiche le successeur du successeur du peano p printf("Le successeur du successeur du peano p est : "); affiche(p); //affiche le successeur du peano q printf("Le successeur du peano q est : "); affiche(q); //affiche l'addition de p et q printf("Le résultat de l'addition du peano p et q est : "); affiche(n); //affiche la mutliplication de p et q printf("Le résultat de la mutliplication du peano p et q est : "); affiche(m); //affiche le resultat du booleen pour savoir si p < q printf ("Resulat fonction inférieur (p<q |Faux : 0, Vrai : 1): %d\n", k = inf(p,q)); // p > q printf("Resultat fonction supérieur (p>q |Faux : 0 , Vrai : 1) : %d\n", a = sup(p,q)); //verifie p == q printf("Resultat fonction egal (p=q |Faux : 0 , Vrai : 1) : %d\n", e = egal(p,q)); }
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 //peano.c // fonction problematique // //affiche le resultat du booleen pour savoir si p < q int inf( peano p, peano q) { int i= 0 ; while ((p.p[i] != '!') || (q.p[i] != '!')) { if ((p.p[i] == '!') && (q.p[i] == '*')) { return 1; } else { return 0; } i++ ; } } // p > q int sup (peano p, peano q) { int i = 0 ; while ((p.p[i] != '!') || (q.p[i] != '!')) { if ((p.p[i] == '*') && (q.p[i] == '!')) { return 1 ; } else { return 0 ; } i++; } } //verifie p == q int egal (peano p, peano q) { int i = 0 ; while ((p.p[i] != '!') || (q.p[i] != '!')) { if ((p.p[i] == '!') && (q.p[i] == '!')) { return 1 ; } else { return 0 ; } i++; } }
Avec ce code j'obtiens ceci lors dans la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 //peano.h #define max_p 99 typedef struct peano { char p[max_p+1]; } peano ; peano const zero(); peano succ( peano p); peano add( peano p , peano q); peano mult( peano p, peano q); int inf( peano p, peano q); int sup( peano p, peano q); int egal( peano p, peano q); void affiche( peano p );
Des idées pour m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Le successeur du successeur du peano p est : **! Le successeur du peano q est : ***! Le résultat de l'addition du peano p et q est : *****! Le résultat de la mutliplication du peano p et q est : ******! Resulat fonction inférieur (p<q |Faux : 0, Vrai : 1): 0 Resultat fonction supérieur (p>q |Faux : 0 , Vrai : 1) : 0 Resultat fonction egal (p=q |Faux : 0 , Vrai : 1) : 0
Merci d'avance !
Partager