Poster un nouveau sujet Poster une réponse
Un souci
Auteur Message
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Ven 03 Mai 2013, 15:01   Citer 

Bonjour à tous !
Voilà j'ai le programme suivant, mais il n'y a que la première partie qui fonctionne, lorsque j'appuie sur entrée après que la calculatrice m'est affiché que le triangle ABC est rectangle ou non, la calculatrice m'affiche "Fait", et je n'ai pas de dessin alors qu'il y a la ligne de commande Pause à la fin.
Et il y a sûrement des optimisations à faire.



Code
EffEcr

Input "XA:",A:A->J
Input "YA:",B:B->k
Input "XB:",c:C->L
Input "YB:",D:D->M
Input "XC:",E:E->N
Input "YC:",F:F->O

EffEcr

If A=B=C=D=E=F
Then
Disp "LE TRIANGLE EST","UN POINT"

   Else

racine carrée(((D-B)²+(C-A)²)->G
racine carrée(((F-B)²+(E-A)²)->H
racine carrée(((F-D)²+(E-C)²)->I

If G²+H²=I² et G+H>=I ou H²+I²=G² et H+I>=G ou G²+I²=H² et G+I>=H
Then
Disp"LE TRIANGLE ABC","EST RECTANGLE"

   Else
Disp"LE TRIANGLE ABC","N EST PAS","RECTANGLE"

Pause

EffEcr:EffDessin:AxesAff:FonctOff

If A<C et A<E:Then:A-1->Xmin:Else:A+1->Xmax
If C<A et C<E:Then:C-1->Xmin:Else:C+1->Xmax
If E<A et E<C:Then:E-1->Xmin:Else:E+1->Xmax

If B<D et B<F:Then:B-1->Ymin:Else:B+1->Ymax
If D<B et D<F:Then:D-1->Ymin:Else:D+1->Ymax
If F<B et F<D:Then:F-1->Ymin:Else:F+1->Ymax

Texte(J,K,"A
Texte(L,M,"B
Texte(N,O,"C

Ligne(J,K,L,M
Ligne(J,K,N,O
Ligne(L,M,N,O

Pause

EffDessin:FonctOn



----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 03 Mai 2013, 17:43   Citer 

C'est parce que tu n'as utilisé aucun End pour fermer les Else.
Si j'ai bien compris, il en faut deux avant le premier Pause.

Edit : message corrigé

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Ven 03 Mai 2013, 17:50   Citer 


Citer : linkakro
C'est parce que tu n'as utilisé aucun End pour fermer les Else.
Si j'ai bien compris, il en faut deux deux avant le dernier EffDessin.



Heu ??? tu entends quoi par là ?

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 03 Mai 2013, 17:52   Citer 

J'ai fait des copier coller et des fautes. J'ai déjà fini d'éditer.

La notation unique ligne du language C n'existe pas en TI-Basic pour les Else.
Donc les End sont indispensables.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Ven 03 Mai 2013, 17:55   Citer 

J'ai mis les end, ça me fait un trait et non trois et les trois points sont les uns sur les autres.

Le End je l'ai mis après pause (et 1 seul)

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 03 Mai 2013, 18:26   Citer 

Si tu lis bien le message définitif, tu verras que j'ai bien conseillé deux End. On peut seulement placer la pause juste avant ou juste après.
Ou alors je n'ai pas compris ce que signifie ta parenthèse "et un seul".

La structure est
Code
If point
Then
     //point
Else
     //calcul
     If rectangle
     Then
          //rectangle
     Else
          //pas rectangle
     End
End
//graphique

Si tu veux éviter le graphique quand on a un point, tu peux déplacer le second End à la fin du programme.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Ven 03 Mai 2013, 18:29   Citer 

d'accord merci, mais malheureusement le graphique ne représente qu'un seul trait et les trois points A,B,C sont les uns sur les autres. cry.gif

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 03 Mai 2013, 18:44   Citer 

Tu as pris quoi comme échelle ? Je vois que tu écartes la fenêtre des point de 1 mais cela est sujet à défaut pour des point proches de moins de 1 d'écart.
Pour que la fenêtre colle pour toute échelle, il faudrait le calculer avec une fraction de l'étendue.

Tu as erronné les coordonnées.
- texte(Y,X) VS ligne(X,Y,X,Y)
- Le texte dépend de l'écran en pixels depuis en haut à gauche et les lignes dépendent du graphique
- pas besoin de JKLMNO sauf si tu veux calculer à l'avance.

Je corrigerai tout ça au prochain message avec d'autres remarques.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Ven 03 Mai 2013, 19:01   Citer 

d'accord merci, j'attends ton message... happy.gif

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 04 Mai 2013, 0:54   Citer 

Je viens de m'apercevoir que ton test d'égalité est impossible. On ne peut écrire de conditions qu'entre des paires de termes.

Le test de suppériorité ou égalité G+H>=I est innutile. C'est toujours vrai. (c'est un théorème dont j'ai oublié le nom, et qui décrit la notion selon laquelle la ligne droite d'un espace euclidien est le plus court chemin entre deux points)
En revanche un test strict G+H>I permet de détecter l'alignement des points qui en font un segment.

Code
EffEcr

Input "XA:",A
Input "YA:",B
Input "XB:",c
Input "YB:",D
Input "XC:",E
Input "YC:",F

EffEcr

If A=C et C=E et B=D et D=F
Then
Disp "LE TRIANGLE EST","UN POINT"
Else

racine carrée(((D-B)²+(C-A)²)->G
racine carrée(((F-B)²+(E-A)²)->H
racine carrée(((F-D)²+(E-C)²)->I
Disp "LE TRIANGLE ABC"
If G²+H²=I² ou H²+I²=G² ou G²+I²=H²
Then
Disp "EST RECTANGLE"
Else
If G+H=I ou G+I=H ou H+I=G
Then
Disp "EST UN SEGMENT
Else
Disp "N EST PAS","RECTANGLE"
End
End
Pause

// je ne préoccupe pas de l'échelle du décalage, je décale de 1
1+max({A,C,E->Xmax
-1+min({A,C,E->Xmin
1+max({B,D,F->Ymax
-1+min({B,D,F->Ymin

Ligne(A,B,C,D
Ligne(A,B,E,F
Ligne(C,D,E,F

// EDIT : fin ci-dessous maintes fois éditée et finalement validée après test.

Ymin-Ymax->S
Xmax-Xmin
Text(int((B-Ymax)*62/S),int((A-Xmin)*94/Rép),"A
Text(int((D-Ymax)*62/S),int((C-Xmin)*94/Rép),"B
Text(int((F-Ymax)*62/S),int((E-Xmin)*94/Rép),"C


EDIT : explications de la formule d'affichage de type pixel/texte à partir de coordonnées graphiques :
Code
Ci dessous un tableau
lieu  : gauche point droite
pxl   : 0      x1    94
graph : Xmin   x2    Xmax

Relation de proportionnalité :
x1-0=(x2-Xmin)*(94-0)/(Xmax-Xmin)

L'abscisse graphique va de Xmin à Xmax.
Celle de pixel va de 0 à 94.

tableau
lieu  : bas   point  haut
pxl   : 62    y1     0
graph : Ymin  y2     Ymax

Le sens est opposé donc le coefficient de proportion est négatif.
Il suffit algébriquement de choisir une extrémité et de s'y tenir dans l'ordre des termes des différences
Proportionnalité :
y1-0=(y2-Ymax)*(62-0)/(Ymin-Ymax)



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 04 Mai 2013, 11:35   Citer 

Bien la première partie marche, mais au moment du graphique, il me met une erreur domaine après le "A de la ligne de commande :


Code
Texte((Ymax-B)Rép/62,A,"A



J'imagine que ça fera la même chose avec les lignes suivantes pour le "B et le "C

(précisément le curseur se met juste après le A)

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 04 Mai 2013, 12:12   Citer 

J'ai oublié de convertir les abscisses.
J'édite et améliore la formule.

Remarque qu'on peut placer un arrondi ou une troncature pour ajuster sur un pixel entier, et que l'arrondi est plus proche du raisonnement de la machine, mais que nous affichons du texte et par conséquent qu'on se fiche de la cohérence exacte avec les points puisqu'on trace déjà les segments.
Une de ces actions est nécessaire puisque les pixels ont des coordonnées entières.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 04 Mai 2013, 13:37   Citer 


Citer : linkakro


Code
lexique des formule ci-après :
orig# décrit les coordonnées de l'origine du repère # dans l'autre repère.
max# et min# représentent les coordonées des extrémités du repère # dans ce même repère, avec l'odre min/max fixé d'après le sens du repère (si les repères sont opposés, min et max sont intervertits et oppose le signe)
x# représente les coordonnées du point dans le repère #

x1=orig1+x2(max1-min1)/(max2-min2)
x2=orig2+x1(max2-min2)/(max1-min1)
Pour passer du graphique aux pixels TI, cela donne :
y2=Ymax-y1*62/(Ymax-Ymin)
x2=Xmin+x1*94/(Xmax-Xmin)




Je n'y comprends absolument rien et il y a toujours l'erreur domaine au même endroit...

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 04 Mai 2013, 14:30   Citer 

Si c'est le fait qu'on change de repère qui te gène, tape ZStandard:pt-On(3,7):pxl-On(7,3) et tu verras ce qui se passe.
Consulte ce tutoriel si ça peut t'aider.

Moi je me casse les dents sur cette fichue conversion de repère.
Si tu indiques les valeurs de chaque variable ça permet de savoir ce qui cause l'erreur domaine.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 04 Mai 2013, 15:42   Citer 

Non c'est juste que ni le graphique ni le repère s'affichent...

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 04 Mai 2013, 16:09   Citer 

oui d'accord mais je ne comprends pas ton charabia, peut tu mettre, stp, ce qu'il faut mettre à la fin du programme ?

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 04 Mai 2013, 16:11   Citer 

J'ai déjà édité le programme. Mais je vais tester plus encore la formule, j'ai sûrement fait d'autre erreurs d'étourderie ou pire.
Et puis j'ai illustré par l'exemple.
Tout-à-l'heure c'était horrible mais maintenant c'est correct.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 04 Mai 2013, 16:17   Citer 

oui, certes... mais j'aimerais que tu me mettes la fin du programme.

Je sais bien que la calculatrice à un écran de 94x62 pixels mais cela ne m'avance à rien, et l'histoire des tableaux, je ne comprends pas...

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 04 Mai 2013, 16:27   Citer 

C'est pas grâve la seconde balise code trop absconse, c'est comme un aide mémoire au final.
Depuis tout-à-l'heur je passe mon temps à éditer la fin du programme, seulement je commet régulièrement des erreurs de raisonnements et de recopie et des étourderies que je corrige les unes-après les autres.
J'ai le forum et lémulateur en même temps et je ne suis pas foutu de recopier sans erreur.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 04 Mai 2013, 16:36   Citer 

bon, s'il te plaît, copie le programme et mets les modifications dedans et colle dans le forum, car je ne sais pas quoi mettre ???

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 04 Mai 2013, 17:13   Citer 

Maintenant la formule d'affichage des noms des points est valide.
Seul un calibrage à un pixel pourrait rester à faire.

J'ai cru qu'elle était fausse pendant un moment à cause d'un bug de chiote qui foirait mes tests sans que je me souvienne de son existence. https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=2068
(s'cusez pour la grossièreté, mais je décompresse)


Citer : linkakro
EffEcr

Input "XA:",A
Input "YA:",B
Input "XB:",c
Input "YB:",D
Input "XC:",E
Input "YC:",F

EffEcr

If A=C et C=E et B=D et D=F
Then
Disp "LE TRIANGLE EST","UN POINT"
Else

racine carrée(((D-B)²+(C-A)²)->G
racine carrée(((F-B)²+(E-A)²)->H
racine carrée(((F-D)²+(E-C)²)->I
Disp "LE TRIANGLE ABC"
If G²+H²=I² ou H²+I²=G² ou G²+I²=H²
Then
Disp "EST RECTANGLE"
Else
If G+H=I ou G+I=H ou H+I=G
Then
Disp "EST UN SEGMENT
Else
Disp "N EST PAS","RECTANGLE"
End
End
Pause

// je ne préoccupe pas de l'échelle du décalage, je décale de 1
1+max({A,C,E->Xmax
-1+min({A,C,E->Xmin
1+max({B,D,F->Ymax
-1+min({B,D,F->Ymin

Ligne(A,B,C,D
Ligne(A,B,E,F
Ligne(C,D,E,F

// EDIT : fin ci-dessous maintes fois éditée et finalement validée après test.

Ymin-Ymax->S
Xmax-Xmin
Text(int((B-Ymax)*62/S),int((A-Xmin)*94/Rép),"A
Text(int((D-Ymax)*62/S),int((C-Xmin)*94/Rép),"B
Text(int((F-Ymax)*62/S),int((E-Xmin)*94/Rép),"C



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 04 Mai 2013, 18:17   Citer 

ça marche !!! merci beaucoup ! je le poste dans les programmes des internautes.

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes