Programme de conversion à compléter Hitskin_logo Hitskin.com

Ceci est une prévisualisation d'un thème de Hitskin.com
Installer le thèmeRetourner sur la fiche du thème

Tout 82
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Tout 82

Ven 6 Déc 2024 - Bienvenue,

Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Connexion

Récupérer mon mot de passe



Chatbox externe


Derniers sujets
» [JEU] Mon voisin du dessous
Programme de conversion à compléter EmptyDim 16 Oct 2022 - 21:11 par Wistaro

» Bonne année 2018!
Programme de conversion à compléter EmptyVen 2 Nov 2018 - 19:42 par Ti64CLi++

» Lancement du TI-Concours 2017 !
Programme de conversion à compléter EmptySam 20 Mai 2017 - 0:27 par Paulo1026

» Chaînes Youtube des membres
Programme de conversion à compléter EmptyVen 19 Mai 2017 - 22:41 par Wistaro

» cacul du taux d'intêret
Programme de conversion à compléter EmptyVen 24 Mar 2017 - 21:50 par m@thieu41

» [Projet] Un mario by tout82
Programme de conversion à compléter EmptyDim 29 Jan 2017 - 14:09 par Wistaro

» Cherche documentation assembleur TI82stat
Programme de conversion à compléter EmptyMer 25 Jan 2017 - 12:29 par Ti64CLi++

» Probleme Ti-82 Stats fr
Programme de conversion à compléter EmptyJeu 12 Jan 2017 - 13:56 par Ti64CLi++

» ROM 82 stats.fr
Programme de conversion à compléter EmptyJeu 15 Déc 2016 - 10:24 par Ti64CLi++

Partenaires
TI-Planet Espace-TI : Forum

Faire un don à Tout-82...
Où va cet argent ?
Membres donateurs:- Persalteas (10€)
- Wistaro (5€)
- jo2geek (22€)

Les posteurs les plus actifs du mois
Aucun utilisateur

Le Deal du moment : -43%
VTECH Mon Super Etabli interactif + 2ème ...
Voir le deal
39.99 €

Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Programme de conversion à compléter

3 participants

Aller à la page : 1, 2  Suivant

Aller en bas  Message [Page 1 sur 2]

1Programme de conversion à compléter Empty Programme de conversion à compléter Mer 4 Sep 2013 - 16:27

pito2901

pito2901
Passioné
Passioné

Bonjour à tous !

Voilà, je cherche à faire un programme de conversion pour convertir par exemple des nano en centi ou des kilo en micro, etc...
Bref, dans le programme, il y a 12 préfixe (tera, giga, ..., pico, femto). J'ai déjà formé le menu mais voici mes soucis:
D'abord la partie du code:
Code:
Lbl 1
EffEcr
Output(1,1,"_TE
RA___DECI_____GI
GA___CENTI____ME
GA___MILI_____KI
LO___MICRO____HE
CTO__NANO_____PI
CO___FEMTO

1->A
1->B
Repeat K=105
codeTouche->K
Output(4,1,">
A+(K=34)-(K=25)->A
B+(K=26)-(K=24)->B
If A=7:1->A
If A=0:6->A
If B=3:1->B
If B=0:2->B
End
Voilà:
1° lorsque je déplace le ">" celui ne s'efface pas de sa position initiale...
2° je n'ai aucune idée de savoir la position du ">" pour ensuite faire la conversion.

Je demande donc votre aide et merci d'avance. (j'ajoute que ce sujet a été posé sur l'ancien forum mais le projet n'a pas été abouti No )

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

bonjour,

Tu l'affiches toujours au même endroit Shocked
Output(4,1,">

Dans la boucle met:
Code:
CodeTouche->K
A+(K=34)-(K=25->C
B+(K=26)-(K=24->D
If C=7
1->C
If non(C
6->C
If D=2
0->D
abs(D->D
If A!=C ou B!= D
Then
Output(A,7B+1," //Un espace
C->A
D->B
Output(A,7B+1,">
End
Et après les initialisations de A et B:
Code:
Output(A,7B+1,">
La position est ensuite dans A et B (A ligne, B colonne).

pito2901

pito2901
Passioné
Passioné

Mais pourquoi rajouter deux variables ? Et je ne sais absolument pas comment mettre ce code dans mon programme... Shocked

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

Le rajout de 2 variables sert à éviter d'obtenir un rafraichissement du curseur s'il n'a pas changé de place (tu ne voudrais pas qu'il clignote si on appuie sur [7] par exemple)

Comment ça tu ne sais pas comment le mettre dans le programme? tu l'édite et tu remplace...

Code:
Lbl 1
EffEcr
Output(1,1,"_TE
RA___DECI_____GI
GA___CENTI____ME
GA___MILI_____KI
LO___MICRO____HE
CTO__NANO_____PI
CO___FEMTO
1->A
0->B //Edit: petite erreur de ma part, j'avais laissé 1->B
Output(A,7B+1,">
Repeat K=105
CodeTouche->K
A+(K=34)-(K=25->C
B+(K=26)-(K=24->D
If C=7
1->C
If non(C
6->C
If D=2
0->D
abs(D->D
If A!=C ou B!= D
Then
Output(A,7B+1," //Un espace
C->A
D->B
Output(A,7B+1,">
End
End



Dernière édition par m@thieu41 le Sam 7 Sep 2013 - 19:15, édité 1 fois

pito2901

pito2901
Passioné
Passioné

Bien, je vais voir...

http://www.clictune.com/id=179469

Linkakro

Linkakro
----------------------
----------------------

** Il aurait suffit pour satisfaire la première demande de prendre le second code de m@thieu41 (Output(A,7B+1,">) pour remplacer la ligne qu'il cite au début (Output(4,1,">)

EDIT : non en fait, il aurait fallu en placer une avant le calcul de déplacement et une après, celle d'avant qui aurait un espace à la place du chevron, celle d'avant qui effacerait et celle d'après qui écrirait.
Désolé j'avais écrit trop vite et pas testé.
Output(A,7B+1," "
A+(K=34)-(K=25)->A
B+(K=26)-(K=24)->B
Output(A,7B+1,">

**Mais C et D servent à détecter le déplacement (en comparant à A et B) pour n'effectuer d'effacement du curseur qu'à ce moment là, afin de ne pas clignoter.

Quitte à séparer les coordonnées anciennes et nouvelles, j'aurais stocké à la fin de la boucle A et B dans C et D systématiquement plutôt que de stocker temporairement et mettre à jour si différent. On aurait pu préférer demeurer comme m@thieu41 afin de permettre un gain de vitesse au repos, mais cela n'a pas d'importance ici. Ne pas effectuer d'affectation systématique déséquilibre le rythme entre repos et actif, mais encore une fois ce contexte ne donne pas d'importance. Donc l'un ou l'autre sont subjectifs.

**Il a aussi optimisé les conditions de la gestion des extrémités.

**Tu as une seule boucle Repeat : remplace tout son contenu par le code de m@thieu41. Il a dit Dans la boucle.
Insère le second code juste avant le Repeat. (mais après l'initialisation)

EDIT : il a posté entre temps le résultat final de ses suggestions.

*************************
Déjà posté sur tout82original dis-tu ? Le sujet que je retrouve était très proche mais pas identique :
Ton programme Pythagore basé sur mon menu
Mon programme UNITE avec un tel menu. J'ai profité de cette remontée pour éditer un code lisible et ajouter des commentaires sur place.
Quand tu copies d'aussi prêt, mentionne la référence.

Moi j'avais juste utilisé une boucle autour de codeTouche pour intrecepter l'execution comme une pause, plutôt que de détecter une variation comme m@thieu41.

Il manque encore l'exploitation du choix :
associer une identité ou une valeur à chaque mot.
Associer une valeur directement est casse-cou. Je conseille une liste de valeurs (ou d'exposants comme moi) dans laquelle on lit les valeurs associées à chaque choix. Je conseille de générer une identité de choix avec A+7B à une constante près car c'est dans l'ordre.

Si le but est d'effectuer deux choix d'unité à la suite (départ,arrivée), place une boucle For. Pour stocker le premier choix, soit un test sur la variable du For soit une simple liste.

Sinon mon prog mentionné est déjà complet avec ma méthode.

pito2901

pito2901
Passioné
Passioné

Merci linkakro et mathieu mais je ne comprends rien, j'ai rentrer ce code et je peux me déplacer mais pas partout...

Code:
Lbl 1
EffEcr
Output(1,1,"_TE
RA___DECI_____GI
GA___CENTI____ME
GA___MILI_____KI
LO___MICRO____HE
CTO__NANO_____PI
CO___FEMTO

1->A
0->B
Output(A,7B+1,">
Repeat K=105
CodeTouche->K
A+(K=34)-(K=25->C
B+(K=26)-(K=24->D
If C=7
1->C
If non(C
6->C
If D=2
0->D
abs(D->D
If A≠C ou B≠D      Edit: != par ≠
Then
Output(A,7B+1," //Un espace
C->A
D->B
Output(A,7B+1,">
End
End



Dernière édition par pito2901 le Dim 8 Sep 2013 - 19:31, édité 2 fois

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

Comment ça tu ne peux pas te déplacer partout?
J'avais testé le code, mais peut être que j'ai fais une erreur en recopiant, peut tu préciser ce que tu ne peux pas faire?

pito2901

pito2901
Passioné
Passioné

à certains endroits je ne peux pas aller à gauche ou en bas ou en haut ou à droite, cela dépend de la position

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

Oups, j'avais oublié de modifier l'initialisation de B dans mon code.

Remplace 1->B par 0->B (j'ai édité).

pito2901

pito2901
Passioné
Passioné

C'est pire... No 

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

Comment ça?
Si ça ne marche pas c'est que tu as fais une erreur en recopiant, tu t'es relu? (il marche très bien chez moi)
Et qu'est ce qui est pire parce que je ne sais toujours pas qu'est ce qui ne va pas en fait (explique clairement où est le problème...).

Tant que tu ne m'auras pas dis vraiment où est ton problème je ne pourrais pas t'aider: ce n'est pas que je ne veuilles pas, mais juste me dire que ça ne marche pas ne va pas m'aider à trouver où est le problème...

Linkakro

Linkakro
----------------------
----------------------

pito :
As-tu saisis "!=" avec le symbole d'inégalité (égal barré) comme il faut ? Je suppose que tu as confondu avec le symbole de factorielle "!" suivi de "=".

pito2901

pito2901
Passioné
Passioné

Exact ! C'était donc ça... J'ai éditer le code...
Et donc comment connaître la position du >, genre s'il se trouve a Output(1,1 et que je fais [entrer], cela mène vers le menu de conversion pour les "TERA"... càd De TERA en Giga, Mega ,..., Femto.

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

En fait la position est dans 2 variable: B = 0 c'est la première colonne, et B = 1 la seconde.
Après tu as A = 1, 1ere ligne, A=2, 2eme ligne, etc.
Le problème c'est que tu n'as pas d'échelonage régulier (10^6, 10^3, 10^2, 10^-12 sur la fin de la colonne de gauche par exemple).
Donc sinon tu peux faire:
6B+A->A (EDIT: je précise que c'est à mettre après le code que j'ai donné précédemment, et pas en plein milieu, sinon c'est peut être pour ça que tu as eut une erreur domaine)
Et tu as si A = 1 = TERA, 2 = GIGA, 3 = MEGA..., 6 = PICO, 7 = DECI, 8 = CENTI..., 12 = FEMTO.

Après tu en fais ce que tu en veux Wink

EDIT: On a l'habitude de mettre != pour différent de, je ne savais pas qu'on pouvait mettre le symbole sur le nouveau fofo... Comment on fait en fait? Et est ce que les autres symboles (->, <=, >=) sont aussi transcriptibles?



Dernière édition par m@thieu41 le Mar 10 Sep 2013 - 20:39, édité 1 fois

pito2901

pito2901
Passioné
Passioné

le > ne s'affiche plus et il me met erreur:domaine là où il y a le ♥️ :

:Then
:Output(A,7B+1,"
: "♥️
:C->A

EDIT: je cherche pour les alt code, mais j'ai fais un copier coller via ce site... Wink

alt + 26    →


http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

Ok bah je vais continuer à utiliser != j'ai pas envie de me casser la tête à chercher pendant 3 ans le raccourcis à utiliser Razz

Code:
:Then
:Output(A,7B+1,"
: "♥️
:C->A
Qu'est ce que c'est que ça!?!
Il y a un espace après le retour à la ligne avant le guillemet?
Et d'où tu sors un coeur toi?

pito2901

pito2901
Passioné
Passioné

alt + 3 → ♥, mdr...

Non il n'y a pas d'espace, et si j'enlève le deuxième ", le curseur se met à son emplacement...

http://www.clictune.com/id=179469

Linkakro

Linkakro
----------------------
----------------------

Commence par consulter A et B puisque c'est une erreur domaine.

Ce retour à la ligne entre output(A,7B+1," et l'espace et son guillemet est stupide. Ecrit en une ligne. Je place un guillemet fermant pour montrer la présence de l'espace.
Output(A,7B+1," " //Un espace

alts:



Dernière édition par Linkakro le Lun 9 Sep 2013 - 19:41, édité 1 fois

m@thieu41

m@thieu41
----------------------
----------------------

pito2901 a écrit:alt + 3 → ♥️, mdr...
Oui je veux bien, mais qu'est ce que ça viens faire dans un prgm ti basic? Shocked 

Et:
Code:
Output(A,7B+1,"
Tu n'affiches rien... (ERR:Invalide pour moi)

Linkakro

Linkakro
----------------------
----------------------

J'imagine que le coeur sert de curseur... utilisons plutôt alt 178 ▓ Wink

pito2901

pito2901
Passioné
Passioné

Linkakro a raison, le prgm me met bien une erreur domaine...

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

Code:
Then
Output(A,7B+1," //Un espace (ton curseur est au niveau de cette commande si j'ai compris)
C->A
Je suppose que c'est au niveau de ce code que ça ne marche pas (je ne comprends toujours pas ton : "♥️ après un retour à la ligne, ça ne fait qu'embrouiller les choses mais bon passons). Il faut bien mettre un espace après le " de l'Output sinon tu auras une erreur invalide. En fait c'est que je testais depuis la saisie standard, et non un prgm... Rolling Eyes 
L'erreur dimension dimension (EDIT: je les accumule Razz )provient du fait que A < 1 ou A > 8 ou B < 1 ou B > 16 (tu sors des limites de l'écran). Donc revoit tout ton code là où tu utilises A ou B, tu as du modifier quelque chose.

Exécutes le code, quittes à l'erreur, et donnes nous la valeur de A et B.



Dernière édition par m@thieu41 le Mar 10 Sep 2013 - 20:29, édité 1 fois

Linkakro

Linkakro
----------------------
----------------------

C'est une erreur domaine, pas dimension.
Quoi qu'il en soit la première chose à faire, m@thieu41 et moi nous nous confirmons, c'est de consulter les valeurs de A et B, et de nous les donner pour qu'on cherche d'où ça vient.

Je ne comprend toujours pas pourquoi il y a un retour à la ligne. Que fiches-tu pito ? C'est ce retour à la ligne qui nous préoccupait le plus.

Maintenant je me demande si tu as modifié des choses sans nous le dire, puisque tu cherchais comment récupérer le résultat de l'execution du menu.
Il suffit de copier le code de m@thieu41 et d'ajouter à la fin, après les boucles, quelque chose qui interprète A et B.

pito2901

pito2901
Passioné
Passioné

le retour à la ligne était la limite de l'écran de la calculatrice... (Mais juste sur le forum), j'ai retapé le code et tjrs rien...

http://www.clictune.com/id=179469

pito2901

pito2901
Passioné
Passioné

Bon avec CE code =, ça marche et je ne peux plus relever la position du A...

Code:
Lbl 1
EffEcr
Output(1,1,"_TE
RA___DECI_____GI
GA___CENTI____ME
GA___MILI_____KI
LO___MICRO____HE
CTO__NANO_____PI
CO___FEMTO

1->A
0->B
Output(A,7B+1,">
Repeat K=105
CodeTouche->K
A+(K=34)-(K=25->C
B+(K=26)-(K=24->D
If C=7
1->C
If non(C
6->C
If D=2
0->D
abs(D->D
If A =/= C ou B =/= D
Then
Output(A,7B+1," //Un espace
C->A
D->B
Output(A,7B+1,">
End
End
Est ce que je peux relever la position du A et du B pour ensuite mener vers un autre menu...

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

Heu... Compare le code que tu donnes avec celui ci (le mien), et tu verras que la seule chose qui change ce sont les =/= et !=, qui représentent tous deux le symbole différent de... Autant dire tu me dis que mon code ne marche pas, mais tu m'en redonnées un qui est le mien, alors je ne comprends pas...
Spoiler:

pito a écrit:je ne peux plus relever la position du A
pito a écrit:Est ce que je peux relever la position du A et du B
Depuis quand on "relève la position d'une variable"? Ca ne veux rien dire...

Tu veux peut être dire comment savoir quel est le chois de l'utilisateur?
Bah je t'avais dis comment faire non?

m@thieu41 a écrit:En fait la position est dans 2 variable: B = 0 c'est la première colonne, et B = 1 la seconde.
Après tu as A = 1, 1ere ligne, A=2, 2eme ligne, etc.
Le problème c'est que tu n'as pas d'échelonage régulier (10^6, 10^3, 10^2, 10^-12 sur la fin de la colonne de gauche par exemple).
Donc sinon tu peux faire:
6B+A->A (EDIT: je précise que c'est à mettre après le code que j'ai donné précédemment, et pas en plein milieu, sinon c'est peut être pour ça que tu as eut une erreur domaine)
Et tu as si A = 1 = TERA, 2 = GIGA, 3 = MEGA..., 6 = PICO, 7 = DECI, 8 = CENTI..., 12 = FEMTO.

Edit: Comment as tu appris à programmer en ti basic? Tu as lu quels tutos?

pito2901

pito2901
Passioné
Passioné

Oui cette erreur domaine vient de là merci mon brave. Le programme n'est pas complet mais lorsque j'appuie sur entrée il m'affiche la position 10 si je suis sur là:

TERA DECI
GIGA CENTI
MEGA MILI
KILO > MICRO

10
GIGA CENTI
MEGA MILI
KILO > MICRO

http://www.clictune.com/id=179469

pito2901

pito2901
Passioné
Passioné

Ceci était un détail et j'avoues que je me retrouve dans un cul de sac.
Quand je parlai de relever la position du A, genre A=1 (correspond à TERA), on fait entrer et le menu se raffiche (ou pas) et ensuite A=5 (correspond à HECTO), comment ne pas recopier le texte 50 000 X, et que la conversion se fasse ???

http://www.clictune.com/id=179469

m@thieu41

m@thieu41
----------------------
----------------------

Edites pour éviter le double poste

Bah oui c'est ce que je t'ai dis, A = 10 si le curseur est sur MICRO
Code:
TERA (1) DECI (7)
GIGA (2) CENTI (8)
MEGA (3) MILI (9)
KILO (4) MICRO (10)
HECTO (5) NANO (11)
PICO (6) FEMTO (12)
Pour relever la position des curseurs 2 fois, tu peux faire:
Code:
For(I,1,2 //On veut 2 réponses

A->C //On sauvegarde A dans C (inutile si on est au premier tour, mais pour le second ça revient à stocker la position du curseur, et à écraser l'ancienne valeur d'on on ne se préoccupe pas)

//Le code que je t'ai passé

6B+A->A

End

//Et maintenant tu as dans C la position du premier curseur, et dans A celle du second chois...

Contenu sponsorisé



Revenir en haut  Message [Page 1 sur 2]

Aller à la page : 1, 2  Suivant

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum