π
<-

[Mini-Challenge Basic #π/4]: Avant je n'aimais pas la chimie

Sous-forums réunissant les mini-challenges en TI-Basic Nspire

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby Bisam » 25 Jun 2014, 16:40

Ouh que c'est moche...

Voici la mienne :
Code: Select all
Define atom(z)=
when(getType(z)="NUM", atom({1,0,"",z}), when(z[4]<=0,z[3], atom(augment(when(z[2]>0, {z[1]+1,z[2]-1},{floor((z[1]+3)/2), floor(z[1]/2)}), {z[3]&string(z[1])&mid("spdfgh", z[2]+1, 1)&string(min(z[4], 4z[2]+2))&" ", max(0,z[4]-4z[2]-2)}))))
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby pierrotdu18 » 25 Jun 2014, 16:56

Sauf que comme c'est la hauteur en pixels qui compte, ça, c'est mieux :) (ceci est une "amélioration" de la hauteur en pixels du code de Bisam et je ne considère pas le code ci-dessous comme ma production)

Code: Select all
Define atom(z)=
Func
:when(getType(z)="NUM",atom({1,0,"",z}),when(z[4]≤0,z[3],atom(augment(when(z[2]>0,{z[1]+1,z[2]-1},{floor((z[1]+3)*0.5),floor(z[1]*0.5)}),{z[3]&when(right(string(z[1]),1)=".",left(string(z[1]),dim(string(z[1]))-1),string(z[1]))&mid("spdfgh",z[2]+1,1)&when(right(string(min(z[4],4*z[2]+2)),1)=".",left(string(min(z[4],4*z[2]+2)),dim(string(min(z[4],4*z[2]+2)))-1),string(min(z[4],4*z[2]+2)))&" ",max(0,z[4]-4*z[2]-2)}))))
:EndFunc
Last edited by pierrotdu18 on 25 Jun 2014, 17:22, edited 1 time in total.
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby Bisam » 25 Jun 2014, 17:04

Je l'avais fait, mais il faut rajouter des "exact" pour éviter l'apparition du "." dû au calcul en valeur approchée... et comme personne d'autre ne proposait 1 seule ligne...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby pierrotdu18 » 25 Jun 2014, 17:05

Ah ah, tu n'as pas vu que j'avais géré le problème? :p Sauf que comme je ne connaissais pas la fonction exact(), j'ai fait avec les strings, un truc de gros boucher :p
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby Bisam » 25 Jun 2014, 17:07

Ah non, j'avais regardé vite fait...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby pierrotdu18 » 25 Jun 2014, 17:10

Pour info :

Image
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby Bisam » 25 Jun 2014, 17:55

Eh, mais au fait, je n'ai pas mis de "Func...EndFunc" c'est volontaire ! Cela restreint d'autant plus la hauteur !
Pour le faire, il suffit de taper
Code: Select all
ma_grosse_ligne_moche->atom(z)


Pour info, mon code de départ ressemblait à ceci :
Code: Select all
Define atom(z)=
Func
Local n,l,r,e
1->n
0->l
""->r
While z>0
  min(z,4l+2)->e
  r&string(n)&mid("spdfgh",l+1,1)&string(e)&" "->r
  z-e->z
  If l>0 Then
    n+1->n
    l-1->l
  Else
    n->l
    floor((n+3)/2)->n
    floor(l/2)->l
  EndIf
EndWhile
Return r
EndFunc


Mais j'ai vite vu que ce serait bien plus efficace de regrouper les variables n et l en une seule (une liste à 2 éléments) puis j'ai réussi à supprimer la variable e... et enfin, j'ai mis la variable r dans la liste qui contenait déjà n et l... mais il fallait aussi mettre z pour pouvoir faire la boucle alors je l'ai mis avec.
Enfin, il ne restait plus qu'à écrire le tout sous forme récursive et le tour était joué !
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby pierrotdu18 » 25 Jun 2014, 18:01

Bravo bravo :)

Heu... je ne crois pas que cela soit permis, Excale avait bien annoncé que ça se passait dans l'éditeur de programmes, avec la capture d'écran...
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby Bisam » 25 Jun 2014, 18:09

Une fois que l'on a fait ce que j'ai dit, on peut très bien ouvrir la fonction dans l'éditeur de programmes...
Je ne vois pas où est le problème.

PS : je viens de penser à une astuce pour éviter les divisions et même les "floor"...
Ça raccourcit même le code !
Code: Select all
Define atom(z)=
when(getType(z)="NUM", atom({1, 0, "", z}), when(z[4]<=0, z[3], atom(augment(when(z[2]>0, {z[1]+1, z[2]-1},{shift(z[1]+3), shift(z[1])}), {z[3]&string(z[1])&mid("spdfgh", z[2]+1, 1)&string(min(z[4], 4z[2]+2))&" ", max(0, z[4]-4z[2]-2)}))))
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #π/4]: Avant je n'aimais pas la ch

Unread postby Excale » 29 Jun 2014, 14:53

Image
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

PreviousNext

Return to Mini-Challenges

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2083 utilisateurs:
>2036 invités
>39 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)