Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Mer 15 Mai 2013, 13:54
Bonjour, je souhaite avoir de l'aide sur la réalisation d'un programme:
Je souhaite avoir le Th de Pythagore amélioré, c'est à dire qu'on rentre:
1° Les trois poins du triangle avec la commande input
2° le pgrm affiche "dans le triangle _ _ _ rectangle en _"
3° un espèce de menu que j'ai recopié et adapté: "je cherche" les longueurs de "l'hypothénuse", un des côté qui sera nommé par les lettres rentrées et l'autre côté nommé de la même façon.
Voici mon début de code:
Code
Input "POINT RECTANGLE",N // malheureusement ces trois input servent à rentrer
Input "POINT 2",O des chiffres et non des lettres, il affichera des
Input "POINT 3",P chiffres
Autorisation : Membre
Nb de messages : 36
Inscrit le : Lun 01 Avr 2013, 18:48
Posté le : Mer 15 Mai 2013, 16:30
Code
:Input "cotés non rect",Chaine 1
:Input "coté rect",Chaine 2 //tu peux aussi demander de rentrer le nom dans une seule liste et con naitre la position du coté à 90 degré, ça sera plus simple
EffEcr
Disp "DANS LE TRIANGLE"
Output(2,1,Chaine 1
Output(2,3,Chaine 2
Output(2,5,"RECTANGLE"
Output(3,1,"EN "
Output(3,4,Chaine 2
Pause
2->dim(L1
{1,0,-1}
Normal
Flottant
EffEcr
Output(1,1," HYPOTHENUSE"
Output(2,2,O):Output(2,3,N // je ne vois pas pk tu fais cela x) , , mais si tu y tient: remplace O par Souschaine(Chaine 1(1,1, P par Souschaine(Chaine 1(2,1 et N par Chaine 2
Output(3,2,P):Output(3,3,N
2->A
1->B
Output(2,1,"1 // j'aimerais bien changé ce 1 par > <=> le ">" se trouve dans "second" puis "maths"
For(W,1,2
Repeat K=105
Output(A,8B-7," "
A+(K=34)-(K=25)->A
B+(K=26)-(K=24)->B
If A=0
3->A
If A=4
1->A
If B=0
1->B
If B=2
1->B // remplaces ces 8 lignes là par
:3*(A=0)+(A=4)->A
:(B=0)+(B=2)->B
[L1(A,7B-7->C // ici j'ai une erreur:dim invalide et le curseur est sur ->] -> tu dois rajoter le "petit" L dont je t'ai deja parlé, de plus je ne comprends pas exactement ce que tu veux faire à C ?
ps: la prochaine fois entre ton pgrm sous forme de "code", comme moi ^, c'est plus bo non ?
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 15 Mai 2013, 19:33
Non il n'ya aucun "petit L" à ajouter.
Ce petit L suivi de texte permettrai de désigner une liste personnalisée portant de texte comme nom.
C'est la virgule qui cause l'erreur : la liste L1 n'a qu'une seule dimension contrairement aux matrices donc donner deux arguments n'a pas de sens.
Corrige cette virgule avec un "+".
Rappel : "L," est la liste L2 mais on met ce qu'on veut.
Héhé je suis fier de mon menu. Cette méthode est massivement employée graphiquement (encore plus de calcul juste pour placer les caractères) par certains programme de programath si je me souviens et par Persalteas. Sauf que persalteas l'a probablement fait tout seul.
La substitution de Kelk'1 est défectueuse car les variables ne valent pas toujours les extrémités.
Remplacez par
Code
:A+3(A=0)-3(A=4)->A
:B+(B=0)-(B=2)->B
D'autre part B est bloqué à 1 donc on peut maintenant enlever les tests de B ou bien il faut élargir les bornes.
Autre variante si on conserve le modulo de l'un et limite l'autre.
Code
A+(K=34)-(K=25)->A
B+(K=26)-(K=24)->B
If A=0
3->A
If A=4
1->A
If B=0
1->B
If B=2
1->B
/////////////////
A+(K=34)-(K=25
Rép-3partEnt((Rép-1)/3->A // modulo [1,2,3] // autres solutions viables
max(1,min(2,B+(K=26)-(K=24)->B // limité entre 1 et 2
---------------------- 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)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 16 Mai 2013, 19:03
Tu n'affectes pas L1 et dimensionnes à deux termes donc cela plante forcément pour le choix trois.
Tu devrais utiliser des chaînes de caractères, soit une pour chaque point soit une seule découpée pour les affichages.
Tu n'as pas besoin de boucle For.
Malgré mon exemple de gestion de curseur, tu pouvais simplement supprimmer B.
// {1,0,-1->L1 // éventuellement innutile
EffEcr
Output(1,1," HYPOTHENUSE "+sous-Chaine(Chaîne1,2,1)+sous-Chaîne(Chaîne1,3,1
Output(2,2,sous-chaîne(Chaîne1,2,1)):Output(2,3,sous-chaîne(Chaîne1,1,1
Output(3,2,sous-chaîne(Chaîne1,3,1)):Output(3,3,sous-chaîne(Chaîne1,1,1
2->A
Repeat K=105
codeTouche->K
If K
Output(A,1," "
A+(K=34)-(K=25)->A
A+3(A=0)-3(A=4)->A
Output(A,1,">
// L1(A->C // éventuellement innutile
End
// valeur du choix de L1 dans C // éventuellement innutile
// indice du choix dans A
If A=1
Then
//hypoténuse23
End
If A=2
Then
//12
End
If A=3
Then
//13
End
Disp L // longueur calculée
---------------------- 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)
Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 18 Mai 2013, 10:04
qu'est ce que str 1 ? je pense que c'est chaîne 1
Sinon j'ai recopié le programme et dans cet espèce de menu, je ne peux pas déplacer le curseur, de plus le ">" clignote...
Et évidemment ce que je souhaite ensuite c'est que lorsque que le curseur est sur l'élément choisi, on appuie sur entrer et il nous calcule cet élément, pour les calculs je saurais faire...
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 18 Mai 2013, 10:53
str1 = chaine1 >> exactement, j'ai fait un lapsus scriptae, maintenant corrigé.
Voyons... j'ai simplement oublié le codeTouche.
Test que K est non-nul avant d'effacer et tada, plus de clignotement. (ajouté par rapport à mon post original, maintenant édité)
Dis moi à quoi sert ton L1 et je pourrai en tenir compte.
Pour l'instant L1 contient 3 valeurs qui identifient les points, et C est affecté par la valeur de L1 correspondante au point choisi.
Si L1 ne sert à rien, A pourra suffir à définir le choix.
Je place désormais L1 en commentaire.
J'ajoute une structure de fin exploitant A.
Sâche que la fonction Texte de l'écran graphique permet de concaténer tout type d'affichage contrairement aux autres fonctions et aux chaînes. Par exemple mélanger nombres et chaînes
Ensuite je posterai ci-dessous l'équivalent en Menu TI, ce sera plus simple que tout ce détournement de mon menu 2D. En effet on n'a qu'une seule Dimension et seulement 3 choix.
---------------------- 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)