CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourHigh-Tech
    • Actus High-Tech
    • Hardware
    • Smartphones
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • High-Tech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Maple - Algo Euclide

Gouni
Gouni
Niveau 10
18 octobre 2011 à 15:49:17

Bonjour à tous,

Bon j'ai posté mon problème sur le fofo C&D mais visiblement y a pas grand monde de calé sur Maple par là-bas. :noel:

Donc je viens vous demander votre aide ici.

Il s'agit de l'algorithme d'Euclide pour le calcul du PGCD.

Voici mon programme :

PGCD := proc (a, b)
local r, r0, r1;
a := r0;
b := r1;
r := mod(r0, r1);
while 0 < r do
r0 := r1;
r1 := r;
r := mod(r0, r1)
od;
return r
end proc;

Quand je veux exécuter le proc, Maple me retourne le message suivant : "Error, (in PGCD) illegal use of a formal parameter"

Où est mon problème ? :(

P.S : Je ne suis, à la base, pas censé utiliser les fonctions iquo ou irem (même pas la fonction mod)
Il s'agit de détailler la fonction irem enfaite ou mod...
Mais je suis vraiment paumé.

Par avance merci

Gloubichou
Gloubichou
Niveau 42
18 octobre 2011 à 16:38:02

mod c'est le modulo ?

Gloubichou
Gloubichou
Niveau 42
18 octobre 2011 à 16:39:23

Enfin sinon y a un soucis. Tu demandes à l'utilisateur d'entrer a et b et ensuite tu redéfinis a et b. Y a un petit ... truc quoi :-p

Gloubichou
Gloubichou
Niveau 42
18 octobre 2011 à 16:47:21

Je pense que comme ça, ça devrait marcher (pas sûr mais bon :-p ):

PGCD := proc (a, b)
local r, r0, r1;
r0 := a;
r1 := b;
r := mod(r0, r1);
while r <> 0 do
r0 := r1;
r1 := r;
r := mod(r0, r1)
od;
return r
end proc;

Et désolé du triple post :rouge:

Gouni
Gouni
Niveau 10
18 octobre 2011 à 16:52:07

Salut!

Oui mod c'est bien modulo.
Bon j'essaie ça quand je rentre et je te tiens au jus. :)

Merci d'avoir répondu

Gouni
Gouni
Niveau 10
18 octobre 2011 à 19:05:30

Bon le message d'erreur a disparu mais quand je tente un PGCD(24,10) il me dit 0, wtf ? :noel:

Gouni
Gouni
Niveau 10
18 octobre 2011 à 19:10:56

(J'ai dit avec 24,10 mais ça me met 0 pour toutes les tentatives évidemment).

Gouni
Gouni
Niveau 10
18 octobre 2011 à 20:32:29

Punaise, ça fait au moins 5 heures que je suis dessus.
Et j'ai besoin de l'algo pour faire une identité de Bézout par la suite et pour comprendre le reste du TD. :(

Sachant qu'en plus, je suis censé utiliser la commande modulo dans la suite du TD et pas maintenant. :noel:

Gouni
Gouni
Niveau 10
18 octobre 2011 à 21:07:34

re,

J'ai trouvé la solution enfaite :

PGCD:=proc(a,b)
local x1,x2;
x1:=a; x2:=b;
while (x1<>x2) do
if (x1>x2) then x1:=x1-x2 else x2:=x2-x1 end if;
end do;
return x1;
end proc;

Que la modération m'excuse du quintuple post vraiment.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment