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