| DVD |
| Auteur |
Message |
MoonWalk
Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 11 Mar 2011, 20:55
|
Posté le : Mer 01 Jui 2011, 14:13
|
|
|
Voici un petit programme tout simple que j'ai fais alors que je m'ennuyais pendant un cours de maths...
| Code | :EffEcr
:1->E
:1->F
:2->L
:4->C
:Lbl 0
:Output(L,C," " [3 espaces]
:E+L->L
:F+C->C
:Output(L,C,"DVD
:If L=8 et (F=1 ou F=-1
:Then
:E-1->E
:End
:If C=14 et (E=1 ou E=-1
:Then
:F-1->F
:End
:If L=1 et (F=1 ou F=-1
:Then
:E-1->E
:End
:If C=1 et (E=1 ou E=-1
:Then
:F-1->F
:End
:Goto 0 |
Voilà voilà ! Amusez-vous !
|
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Mer 01 Jui 2011, 15:15
|
|
|
Bonjour/bonsoir
L'écran de veille m'a l'ai pas mal sauf que dès que le mot DVD arrive en haut, j'obtient une erreur domaine ( L=-1 ) alors que j'ai bien vérifié le code. Pourrais-tu s'il te plaît vérrifier ton code (je pense que l'erreur est au niveau des conditions mais je ne suis pas sur)
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 01 Jui 2011, 20:01
|
|
|
Teste ça.
| Code | ClrHome
1->E
1->F
2->L
4->C
Lbl 0
Output(L,C," "
E+L->L
F+C->C
Output(L,C,"DVD
If L=8 or L=1
-E->E
If C=14 or C=1
-F->F
Goto 0 |
Je n'ai pas compris pourquoi il y avait E-1->E
Les Then et les End sont inutiles quand une seule ligne suit les If.
---------------------- 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 |
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Mer 01 Jui 2011, 21:14
|
|
|
merci beaucoup, je comtait attendre une modification de l'auteur avant de me lancer dans l'optimisation, il n'y a presque plus rien à faire :
| Code | ClrHome
1->E
1->F
2->L
4->C
While 1 //ici
Output(L,C," //3espace //ici
E+L->L
F+C->C
Output(L,C,"DVD
If L=8 or L=1
-E->E
If C=14 or C=1
-F->F
End //ici |
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |
MoonWalk
Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 11 Mar 2011, 20:55
|
Posté le : Mer 01 Jui 2011, 21:20
|
|
|
A fait, j'ai quelques questions...
Ca veut dire quoi programmer en ASM ??
Et quel câble faut-il acheter ? Coûte-t-il cher ? Où le ttouve-t-on ?
Merci 
|
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Mer 01 Jui 2011, 21:29
|
|
|
Je crois que n'importe quel cable fait l'affaire (le moins cher des officiels est je crois TI-Graph Link USB (40€), que j'ai commandé chez JARRETY, un distributeur de Texas instument) ; pour à quoi ça correspond, c'est programmer directement sur l'ordi dans un langage de bas niveau (proche du langage du processeur : tu as des choses du type charger le registre a dans le registre b ; si le bit de la retenu est nul, sauter des 180 octés vers l'avant ,... . En gros tu dis ce que le processeur doit faire. Par contre, une fois que tu as finit d'écrire sur fichier texte, il faut utiliser des logiciels qui te convertissent ça en code héxadécimal que tu envoie ensuite sur la TI (si tu programme pour un shell, ce n'est pas de l'héxa mais un bric à brac de fonctions.
En ASM, on peut tout faire (dans les limites du matériel) mais les bug sont souvant effaceurs de RAM.
En espérant t'avoir un peu aidé
Sandro
PS : je pourrait propablement t'en dire plus d'ici 2 mois, je compte essayer d'apprendre ce langage cet été
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 01 Jui 2011, 21:39
|
|
|
Oui, c'est bien résumé.
Mais précise que ASM=assembleur
-----
Ce while ne change pas grand chose mais est légèrement plus léger.
J'ai pour principe de ne pas enlever les guillemets quand il y a des espaces.
Il n'y a rien de tel pour se planter et compliquer la saisie avec des commentaires.
J'enlève les guillemets dans tous les autres cas.
---------------------- 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 |
 |
|
| |
MoonWalk
Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 11 Mar 2011, 20:55
|
Posté le : Mer 01 Jui 2011, 21:46
|
|
|
J'ai tout compris ! Sauf pour les ASM
C'est quoi exactement ? là, je peux en faire un comme ça ou 'est un programme necessitant quelque chose ?
|
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Mer 01 Jui 2011, 22:02
|
|
|
ça te néccessite des programmes, un cable pour l'ordi et des connaissances.
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 01 Jui 2011, 22:12
|
|
|
L'assembleur est un code qui ne peut pas être conçu dans la calculatrice. Mais une fois traduit en hexadécimal (0à9+AàF) par un logiciel de ton ordinateur, on peut le recopier à la main.
Les shells sont des logiciels en assembleur qui permettent de lire d'autres codes complètement impossibles à saisir. (il faut nécessairement le câble)
La moindre erreur dans un de ces codes efface la mémoire.
---------------------- 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 |
 |
|
| |
snap
Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
|
Posté le : Jeu 02 Jui 2011, 15:34
|
|
|
J'ai des améliorations pour ton programme. Pour que tu puisses marquer le mot que tu veux, tu mettre sa :
| Code |
:Input "",Chaine1
:EffEcr
:1 -> E
:1 -> F
:2 -> L
:4 -> C
:While 1
:codetouche -> K
:If K=45:Stop
:For(A,C,C+longueur(Chaine1)-1
:Output(L,A," <- 3 espaces
:End
:E+L -> L
:F+C -> C
:Output(L,C,Chaine1
:f L=8 ou L=1:-E -> E
:f C=17-longueur(Chaine1) ou C=1:-F -> F
:End
|
Voila. Si vous avez d'autres amélioration...
---------------------- Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes 
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr |
 |
|
| |
Cocodidou
Autorisation : Membre
Nb de messages : 79
Inscrit le : Dim 15 Mai 2011, 11:33
|
Posté le : Jeu 02 Jui 2011, 15:49
|
|
|
Voilà une petite amélioration: Mettre longueur(Chaîne1) espaces au lieu de 3 espaces, modulo la longueur de la chaîne 
|
 |
|
| |
MoonWalk
Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 11 Mar 2011, 20:55
|
Posté le : Jeu 02 Jui 2011, 20:45
|
|
|
Merci beaucoup ! 
|
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 02 Jui 2011, 22:20
|
|
|
Oui mais celà obligerais à modifier le programme à chaque fois que l'on veut changer le texte. Je proposerais plutôt :
| Code | :Input "",Chaine1
:longueur(Chaîne1 -> A
:1 -> E
:1 -> F
:2 -> L
:4 -> C
:While 1
:codetouche -> K
:If K=45:Stop
:EffEcran
:E+L -> L
:F+C -> C
:Output(L,C,Chaine1
:f L=8 ou L=1:-E -> E
:f C=17-A ou C=1:-F -> F
:End
|
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |
snap
Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
|
Posté le : Jeu 02 Jui 2011, 22:59
|
|
|
Pour le programme que j'ai écrit je ne changeai jamais le programme. Relis le tu verra
---------------------- Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes 
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr |
 |
|
| |
snap
Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
|
Posté le : Jeu 02 Jui 2011, 23:04
|
|
|
De plus tu as fait une faute je pense à ton programme. Tu marques longueur(chaine 1 -> A
et ensuite tu met
For(B,2,L
Ce ne serai pas pluto
For(B,2,A
??
---------------------- Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes 
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr |
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Ven 03 Jui 2011, 10:56
|
|
|
Si pardon, ça vieut de mon abitude à toujour nommer L la longueur d'une chaîne (comme X et Y les coordonnées, G ou K un code touche, [théta] un angle, ...).
J'édite mon programme, qui est maintenant, d'après mes tests sur émultateurs, plus rapide que le tient
Sandro
PS:évite les double posts
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |