π
<-
Chat plein-écran
[^]

[Axe/Basic] Laser en fonction de l'angle

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude Wistaro » 11 Mai 2013, 16:41

Dommage...
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude mdr1 » 11 Mai 2013, 17:15

Euh, désolé de te contredire, Persalteas, mais il y a un moyen de faire un code bien plus rapide. Le premier point tout à fait aberrant est de calculer sin(A) et cos(A) deux fois de suite alors que la valeur ne change pas ; il suffit de stocker ces valeurs dans des variables. Déjà, tu vas gagner pas mal de vitesse.

Mais surtout, tu devrais utiliser le pré-calculé pour ne pas sans cesse refaire des calculs inutiles. Normalement, c'est exactement ce qui se passe en Axe, en tout cas, en assembleur, on fait généralement comme ceci : inclure directement du pré-calculé. Le code devient (avec d'autres optimisations au passage) :

Code: Tout sélectionner
ClrDraw
AxesOff
Degree
.2->Xmax
Ans->Ymax
-Ans->Xmin
Ans->Ymin
361->B
seq(sin(X),X,1,B->L1
seq(cos(X),X,1,B->L2
0
While 1
Ans+1-B(Ans=B
Line(0,0,L1(Ans),L2(Ans
Text(0,0,Ans
Line(0,0,L1(Ans),L1(Ans),0
End


Mon programme fait 139 octets et voici le résultat :

Image

Bien évidemment, ça reste plus lent qu'en Axe. Mais le fait d'afficher 3 lignes au lieu d'une ne triple absolument pas le temps demandé, hein. Quand à faire cela en Asm ne permettrait que de gagner très peu de vitesse, mais surtout quelques dizaines d'octets (soit pas beaucoup), car pour ce programme, ce sont les routines toutes faites Asm utilisées par l'Axe qui sont le facteur limitant. Mais notez que ce programme n'est pas du tout plus difficile à faire en Asm qu'en Axe.

Persalteas, tu nous le fais en Grammer ?
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude Persalteas » 11 Mai 2013, 17:18

Ah ! Je savais bien que c'était possible !

L'idée était en effet le pré-calculé, dans le temps j'avais fait un jeu du pisseur avec des valeurs enregistrées, et ça allait beaucoup plus vite que ce que je viens de trouver !

Merci beaucoup :bj:

*Persalteas s'incline encore plus bas
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude mdr1 » 12 Mai 2013, 12:54

Je n'ai rien dit, j'ai regardé le code Axe, ce serait nettement plus optimisé en Asm en taille comme en vitesse.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude Persalteas » 12 Mai 2013, 19:45

Sans vouloir être un troll, voici comment Xeda l'a fait en Grammer:

Code: Tout sélectionner
:.0:Return
:0→A→E
:Repeat 0
:ClrDraw
:GetInc(A
:Text('ºA and 255
:62+sin(A
:/ 2→B
:94+cos(A
:/ 2→C
:Rect('47,31,C,B
:Rect('48,31,C+1,B
:Rect('47,32,C,B+1
:DispGraph
:End


112 octets :P

Image
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude Hayleia » 12 Mai 2013, 20:04

112 octets parce que toutes les routines sont dans l'application. Matref sait le faire aussi en peu d'octets, il a juste à tout mettre dans une app et utiliser son Axiome PageSwap, et bim.
Ça sert à rien de comparer la taille d'un programme en Basic et celle d'un programme en Axe, et pareil pour la comparaison Grammer/Axe.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude mdr1 » 12 Mai 2013, 20:07

Hayleia a écrit:112 octets parce que toutes les routines sont dans l'application. Matref sait le faire aussi en peu d'octets, il a juste à tout mettre dans une app et utiliser son Axiome PageSwap, et bim.
Ça sert à rien de comparer la taille d'un programme en Basic et celle d'un programme en Axe, et pareil pour la comparaison Grammer/Axe.

Bien sûr que si que ça sert de comparer, on présente souvent la page d'application Grammer nécessaire pour exécuter des programmes Grammer comme un inconvénient, il est donc juste de montrer que les programmes sont d'un autre côté bien plus légers et qu'avec pas mal de programmes, la balance penche bien vite du bon côté.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude Persalteas » 12 Mai 2013, 20:08

Oui - par cette affirmation de "112 octets" je souhaitais dire que c'était un code relativement court et simple, en nombre de lignes à penser si tu veux.
Evidemment que les routines, ça compte pas.

J'aurais du compter en nombre de lignes, excuse-moi.
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude mdr1 » 12 Mai 2013, 20:10

Non, le nombre de lignes ne veut absolument rien dire, parfois, en Axe, on va avoir des lignes immenses et impossibles à comprendre tandis qu'en asm, chaque ligne sera toujours une instruction élémentaire triviale. Dans ce cas, je vais vous faire des programme ti basic sur une seule ligne...
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: [Axe/Basic] Laser en fonction de l'angle

Message non lude Hayleia » 12 Mai 2013, 20:13

mdr1 a écrit:
Hayleia a écrit:112 octets parce que toutes les routines sont dans l'application. Matref sait le faire aussi en peu d'octets, il a juste à tout mettre dans une app et utiliser son Axiome PageSwap, et bim.
Ça sert à rien de comparer la taille d'un programme en Basic et celle d'un programme en Axe, et pareil pour la comparaison Grammer/Axe.

Bien sûr que si que ça sert de comparer, on présente souvent la page d'application Grammer nécessaire pour exécuter des programmes Grammer comme un inconvénient, il est donc juste de montrer que les programmes sont d'un autre côté bien plus légers et qu'avec pas mal de programmes, la balance penche bien vite du bon côté.
Bof, "avec pas mal de programmes" tu passes à une SE et tu t'en fous d'économiser de la place (c'est ce que j'ai fait en tout cas :P)
À la limite, j'accepte ton argument pour le Grammer. Mais est-ce que tu crois qu'on peut coder assez de programmes pour rattraper les 49152 octets de DCS ?

Persalteas a écrit:Oui - par cette affirmation de "112 octets" je souhaitais dire que c'était un code relativement court et simple, en nombre de lignes à penser si tu veux.
Evidemment que les routines, ça compte pas.

J'aurais du compter en nombre de lignes, excuse-moi.
En nombres de lignes ça compte pas vraiment non plus si on se met à vouloir comparer avec l'ASM aussi, là le nombre de lignes risque d'être plus gros aussi :P
(ce qui revient à ce que mdr1 a dit dans son ninja post)
Et oui, c'est simple à penser mais ça devient vite moche et long si on l'optimise pour la vitesse et c'est ce que Matref a fait ;)

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

PrécédenteSuivante

Retourner vers Problèmes divers / Aide débutants

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 19 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
979 utilisateurs:
>959 invités
>15 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)