π
<-

Problème algo euclide

:32ti89: :32ti892: :32ti89t: :32ti89tn: :32ti92: :32tiv200:

Problème algo euclide

Unread postby bosskay » 20 Jun 2015, 20:48

Salut je fais actuellement un algorithme d'euclide pour résoudre le couple d'entier U et V, j'ai taper un programme, le code me semble bon et pourtant ça ne marche pas !
Calculatrice: TI-89 Titanium
Langue: Fr
Voici le code:
Code: Select all
euclide(a0,b0,c)
Prgm
:Local a,b,c,g,p,k,q,r,s,l,m,nr,ns,u0
:pgcd(a0,b0)→u0
:If u0=1 Then
:  Output 1,1,"Solution particulière de l'équation:"
:  Output 1,2,a0
:  Output 3,2,"u +"
:  Output 6,2,b0
:  Output 8,2,"v ="
:  Output 11,2,u0
:  Output 1,3,"où, PGCD("
:  Output 10,3,a0
:  Output 12,3,";"
:  Output 13,3,b0
:  Output 15,3,")= 1"
:  Output 1,4,"                       "
:  Output 1,5,"====== Calcul ======"
:  a0→a
:  b0→b
:  1→p
:  0→k
:  0→g
:  1→s
:  4→y
:  While b=0
:    mod(a,b)→r
:    intDiv(a,b)→q
:    Output 1,y,a
:    Output 3,y,"="
:    Output 4,y,q
:    Output 6,y,"*"
:    Output 7,y,b
:    Output 9,y,"+"
:    Output 10,y,r
:    y+1→y
:    b→a
:    r→b
:    p-q*g→nr
:    k-q*s→ns
:    If r=0 Then
:      Output 1,y,r
:      Output 3,y,"="
:      Output 4,y,nr
:      Output 6,y,"*"
:      Output 7,y,a0
:      Output 9,y,"+"
:      Output 10,y,ns
:      Output 12,y,"*"
:      Output 13,y,b0
:      y+1→y
:      Output 1,y,"--------------"
:      y+1→y
:    EndIf
:    g→p
:    s→k
:    nr→g
:    ns→s
:  EndWhile
:  y+1→y
:  Output 1,y,"-----------------"
:  y+1→y
:  Output 1,y,"-----------------"
:  ((p*c)/(a))→l
:  ((k*c)/(a))→m
:  y+1→y
:  Output 1,y,"Solution particulière:"
:  y+1→y
:  Output 1,y,"("
:  Output 2,y,p
:  Output 4,y,";"
:  Output 5,y,k
:  Output 7,y,")"
:  y+1→y
:  Output 1,y,"Solution de l'équation:"
:  y+1→y
:  Output 1,y,a0
:  Output 3,y,"u + "
:  Output 7,y,b0
:  Output 9,y,"v ="
:  Output 12,y,c
:  Output 14,y,"; "
:  Output 16,y,"("
:  Output 17,y,";"
:  Output 18,y,m
:  Output 20,y,")"
:Else
:  Output 1,1,"Cette équation n'a pas de solution dans N car,"
:  Output 1,2,c
:  Output 3,2,"n'est pas multiple de pgcd:"
:  Output 1,3,a0
:  Output 3,3,";"
:  Output 4,3,b0
:  Output 6,3,")="
:  Output 8,3,u0
:EndIf
EndPrgm


Merci d'avoir lu, répondez vite le BAC c'est de lundi.
Image
User avatar
bosskay
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 65.2%
 
Posts: 24
Joined: 29 Mar 2015, 22:11
Location: Martinique
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MP

Re: Problème algo euclide

Unread postby Hamza.S » 20 Jun 2015, 21:29

je te laisse voir les erreurs
Code: Select all
eucl(a₀,b₀,c)
Func
Local a,b,c,g,p,k,q,r,s,l,m,nr,ns,u₀
:gcd(a₀,b₀)→u₀
:If u₀=1 Then
:Disp "Solution particulière de l'équation:"
:Disp string(a₀)&"u +"&string(b₀)&"v ="&string(u₀)
:Disp "où, PGCD("&string(a₀)&";"&string(b₀)&")= 1"
:Disp ""
:Pause "====== Calcul ======"
:a₀→a
:b₀→b
:1→p
:0→k
:0→g
:1→s
:While b≠0
:  mod(a,b)→r
:  intDiv(a,b)→q
:  Disp string(a)&"="&string(q)&"*"&string(b)&"+"&string(r)
:  b→a
:  r→b
:  p-q*g→nr
:  k-q*s→ns
:  If r≠0 Then
:    Pause string(r)&"="&string(nr)&"*"&string(a₀)&"+"&string(ns)&"*"&string(b₀)
:    Disp "--------------"
:  EndIf
:  g→p
:  s→k
:  nr→g
:  ns→s
:EndWhile
:Disp "-----------------"
:Disp "-----------------"
:((p*c)/(a))→l
:((k*c)/(a))→m
:Pause "Solution particulière("&string(p)&";"&string(k)&")"
:Disp "Solution de l'équation:"
:Pause string(a₀)&"u + "&string(b₀)&"v ="&string(c)&"; ("&string(l)&";"&string(m)&")"
:Return {l,m}
:Else
:Disp "Cette équation n'a pas"," de solution dans ℕ car,"
:Disp string(c)&" n'est pas multiple"
:Pause "de pgcd("&string(a₀)&";"&string(b₀)&")="&string(u₀)
:EndIf
EndFunc
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 29%
 
Posts: 4501
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: Problème algo euclide

Unread postby bosskay » 21 Jun 2015, 17:39

Ca ne marche pas sa affiche le message suivant:
"invalide dans une fonction ou expression courante"

Je suppose que le mode FUNCTION n'accepte pas le DISP :) !


On a testé avec programme(PRGM). Et il mettent erreur de type de donnée. le curseur d'erreur se place juste avant disp string (a0).
Image
User avatar
bosskay
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 65.2%
 
Posts: 24
Joined: 29 Mar 2015, 22:11
Location: Martinique
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MP

Re: Problème algo euclide

Unread postby Bisam » 21 Jun 2015, 17:43

Souvent, c'est l'utilisation d'une variable qui n'est pas déclarée comme locale (derrière le mot-clé Local) qui provoque cette erreur. Mais ici, tu as raison, on ne peut pas utiliser de Disp dans une fonction en Basic 68k (alors que c'est désormais possible en Basic Nspire).
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Problème algo euclide

Unread postby bosskay » 21 Jun 2015, 20:06

OK, et en regardant mon code, vous avez pu voir ce qui n'allait pas ?
Image
User avatar
bosskay
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 65.2%
 
Posts: 24
Joined: 29 Mar 2015, 22:11
Location: Martinique
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MP

Re: Problème algo euclide

Unread postby Bisam » 21 Jun 2015, 20:39

J'ai rendu le code plus lisible et j'ai corrigé quelques fautes de frappe.
Notamment, il y avait un l7 à la place d'un 17 dans l'un des trop nombreux Output.
Par ailleurs, je ne pense pas que ton code fonctionne avec des Output car la commande Output y,x, "Texte" écrira le texte "Texte" à la ligne de pixels numéro y et à la colonne de pixels numéro x.
La commande Disp est bien plus adaptée pour ce genre de situations.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Problème algo euclide

Unread postby bosskay » 21 Jun 2015, 21:46

Après avoir testé le code ci-dessous, voici les problème apparent:
- Ca affiche 3 ligne avec solution particulière
- Rien ne défile, on ne peut pas remonter dans les historique du programme
Le mieux c'est que vous le testiez pour voir ce que ça donne
Voici el code que j'ai testé:
Code: Select all
(a0,b0,c)
Prgm
:Local a,b,c,g,p,k,q,r,s,l,m,nr,ns,u0
:pgcd(a0,b0)»u0
:If u0=1 Then
:  Output 1,1,"Solution particulière de l'équation:"
:  Output 1,2,a0
:  Output 3,2,"u +"
:  Output 6,2,b0
:  Output 8,2,"v ="
:  Output 11,2,u0
:  Output 1,3,"où, PGCD("
:  Output 10,3,a0
:  Output 12,3,";"
:  Output 13,3,b0
:  Output 15,3,")= 1"
:  Output 1,4,"                       "
:  Output 1,5,"====== Calcul ======"
:  a0»a
:  b0»b
:  1»p
:  0»k
:  0»g
:  1»s
:  4»y
:  While b=0
:    mod(a,b)»r
:    intDiv(a,b)»q
:    Output 1,y,a
:    Output 3,y,"="
:    Output 4,y,q
:    Output 6,y,"*"
:    Output 7,y,b
:    Output 9,y,"+"
:    Output 10,y,r
:    y+1»y
:    b»a
:    r»b
:    p-q*g»nr
:    k-q*s»ns
:    If r=0 Then
:      Output 1,y,r
:      Output 3,y,"="
:      Output 4,y,nr
:      Output 6,y,"*"
:      Output 7,y,a0
:      Output 9,y,"+"
:      Output 10,y,ns
:      Output 12,y,"*"
:      Output 13,y,b0
:      y+1»y
:      Output 1,y,"--------------"
:      y+1»y
:    EndIf
:    g»p
:    s»k
:    nr»g
:    ns»s
:  EndWhile
:  y+1»y
:  Output 1,y,"-----------------"
:  y+1»y
:  Output 1,y,"-----------------"
:  ((p*c)/(a))»l
:  ((k*c)/(a))»m
:  y+1»y
:  Output 1,y,"Solution particulière:"
:  y+1»y
:  Output 1,y,"("
:  Output 2,y,p
:  Output 4,y,";"
:  Output 5,y,k
:  Output 7,y,")"
:  y+1»y
:  Output 1,y,"Solution de l'équation:"
:  y+1»y
:  Output 1,y,a0
:  Output 3,y,"u + "
:  Output 7,y,b0
:  Output 9,y,"v ="
:  Output 12,y,c
:  Output 14,y,"; "
:  Output 16,y,"("
:  Output 17,y,";"
:  Output 18,y,m
:  Output 20,y,")"
:Else
:  Output 1,1,"Cette équation n'a pas de solution dans N car,"
:  Output 1,2,c
:  Output 3,2,"n'est pas multiple de pgcd:"
:  Output 1,3,a0
:  Output 3,3,";"
:  Output 4,3,b0
:  Output 6,3,")="
:  Output 8,3,u0
:EndIf
EndPrgm
Image
User avatar
bosskay
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 65.2%
 
Posts: 24
Joined: 29 Mar 2015, 22:11
Location: Martinique
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MP

Re: Problème algo euclide

Unread postby Bisam » 21 Jun 2015, 21:51

Comme je te l'ai dit, Output écrit à un endroit précis de l'écran.
Si tu décales seulement de quelques pixels comme tu le fais, les différentes lignes écrites se superposent.

Par ailleurs, que tu utilises Disp ou bien Output, tu ne peux de toute façon pas remonter dans ce que tu as affiché.
Il faut faire des Pause dans ton programme si tu veux noter les étapes.

Enfin, le code d'Hamza fonctionne très bien si tu remplaces Func et EndFunc par Prgm et EndPrgm.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Problème algo euclide

Unread postby bosskay » 21 Jun 2015, 21:59

malheureusement le code de Hamza fonctionne pas pour moi j'ai déjà testé et je présume que le dans la 89 comme dans la 82 on est obliger de faire un scroll pour éviter que tout s'empile ! Pfiou c'est chiant bon pas grave
Image
User avatar
bosskay
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 65.2%
 
Posts: 24
Joined: 29 Mar 2015, 22:11
Location: Martinique
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MP

Re: Problème algo euclide

Unread postby Bisam » 21 Jun 2015, 22:07

As-tu lu ce que j'ai dit ?
Les seules choses qu'il faut modifier au code d'Hamza sont :
- remplacer Func par Prgm
- remplacer EndFunc par EndPrgm
- supprimer la ligne Return {l,m}
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile


Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: ClaudeBot [spider] and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
789 utilisateurs:
>778 invités
>4 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)