Algorithme
tulipe96
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Smiley32 Messages postés 155 Date d'inscription Statut Membre Dernière intervention -
Smiley32 Messages postés 155 Date d'inscription Statut Membre Dernière intervention -
Bonsoir
J'ai fait un algorithme d'Euclide (PGCD) svp, pourriez-vous me le corriger ?
J'ai fait un algorithme d'Euclide (PGCD) svp, pourriez-vous me le corriger ?
Algorithme PGCD; Var A, B : réel; m, r : entier; Debut Ecrire("Introduisez deux nombres: "); Lire(A, B); Si (B=0) alors debut Ecrire ("Erreur de saisie"); fin; Sinon debut Si (A=B) alors debut Ecrire("PGCD(", A, ";", B, ")=", A); fin; Sinon debut si (A mod B) alors debut Ecrire("PGCD(",A, ";", B , ")=", B); fin; Sinon debut Repeter debut r <--- (A mod B); A <--- B; B <--- r; m <--- (A mod B); fin; jusqu'à (m=0) Ecrire ("PGCD(", A, ";", B, ")=", B); fin; fin; fin; FIN.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Algorithme
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
2 réponses
Tout d'abord, ta question n'a rien à voir avec du C, non ?
Ensuite, tu pourais indenter un peu ton algo :
Ensuite, quand tu met "si (A mod B) alors ", tu cherches à tester quand A modulo B vaut 0 ? car je ne vois aucun test (ou alors avec 1 en programmation)
De plus, tu pourquoi A et B sont réels ? Tu fais le PGCD de deux nombres réels avec un reste entier ?
Ensuite, tu pourais indenter un peu ton algo :
Algorithme PGCD; Var A, B : réel; m, r : entier; Debut Ecrire("Introduisez deux nombres: "); Lire(A, B); Si (B=0) alors debut Ecrire ("Erreur de saisie"); fin; Sinon debut Si (A=B) alors debut Ecrire("PGCD(", A, ";", B, ")=", A); fin; Sinon debut si (A mod B) alors debut Ecrire("PGCD(",A, ";", B , ")=", B); fin; Sinon debut Repeter debut r <--- (A mod B); A <--- B; B <--- r; m <--- (A mod B); fin; jusqu'à (m=0) Ecrire ("PGCD(", A, ";", B, ")=", B); fin; fin; fin; FIN.
Ensuite, quand tu met "si (A mod B) alors ", tu cherches à tester quand A modulo B vaut 0 ? car je ne vois aucun test (ou alors avec 1 en programmation)
De plus, tu pourquoi A et B sont réels ? Tu fais le PGCD de deux nombres réels avec un reste entier ?
Salut,
voici le code en C : rien n'est compliqué, c'est juste le langage qui change :
Ensuite, j'ai repéré une petite erreur d'affichage : lors de ton affichage de a et b, il faut vérifier que a et b sont encore ceux du départ
voici le code en C : rien n'est compliqué, c'est juste le langage qui change :
#include <stdio.h> #include <stdlib.h> int main() { int a, b; int m, r; printf("Introduisez deux nombres :\n"); scanf("%d", &a); scanf("%d", &b); if(b == 0) { printf("Erreur de saisie\n"); } else { if(a == b) { printf("PGCD(%d;%d)=%d", a, b, a); } else { if(a % b == 0) { printf("PGCD(%d;%d)=%d", a, b, b); } else { do { r = a % b; a = b; b = r; m = a % b; } while(m != 0); printf("PGCD(%d;%d)=%d", a, b, b); // Erreur dans l'affichage : a et b ne sont plus ceux du départ } } } return 0; }
Ensuite, j'ai repéré une petite erreur d'affichage : lors de ton affichage de a et b, il faut vérifier que a et b sont encore ceux du départ
je ne savais pas comment rendre l'algorithme plus clair comme vous l'avez fait, autrement je l'aurai modifié, merci pour votre aide
oui j'ai oublié le zero dans ma condition (A mod B=0) sinon, j'ai essayé de le programmer en c et de l'exécuter avec le logiciel devc++, malgré qu'il n'y a pas d'erreurs son exécution ne donne aucun résultat à part celui de l'affichage du message "erreur de saisie" Je ne vois pas où est le problème, pourriez vous m'aider à retrouver mon erreur svp ...
Et n'oublie pas d'utiliser la balise <code c>.
Exemple :
<code c>
ici tu mets ton code
</code>