π
<-
Chat plein-écran
[^]

[Mini-Challenge #3] : Quel est le groupe d'âge...

Sous-forums réunissant les mini-challenges en Lua Nspire
Le premier est disponible ici

[Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude Adriweb » 12 Juil 2014, 18:06

Pour le fun, voici un mini-challenge à la fois Lua et Basic (cf le topic frère). Voici celui en (Nspire-)Lua :

Nous devons analyser l'âge d'une personne afin de déterminer la catégorie associée :
Si l'âge est entre 0 et 2, afficher "maison"
Si l'âge est entre 3 et 5, afficher "maternelle"
Si l'âge est entre 6 et 11, afficher "primaire"
Si l'âge est entre 12 et 15: afficher "collège"
Si l'âge est entre 16 et 18: afficher "lycée"
Si l'âge est entre 19 et 22: afficher "postbac"
Si l'âge est entre 23 et 65: afficher "travail"
Si l'âge est entre 66 et 100: afficher "retraite"
Pour moins de 0 ou plus de 100, afficher "troll"


On fera donc une fonction qui prendra un nombre entier en entrée et qui retournera une chaîne en sortie.

Le but étant de faire le code le plus court possible (on ne comptera pas les caractères d'espaces/tab servant pour indenter... histoire que ça reste lisible).

GL & HF :)

Cependant, pour le prochain challenge Lua, il faudra essayer (pas crucial, mais c'est mieux :P) de faire un challenge en relation avec l'API Nspire ;)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude Adriweb » 12 Juil 2014, 19:18

Pour ma part, j'avais globalement trouvé une solution semblable à celle de critor+Excale+Pierrot sur l'autre topic, et donc en Lua "optimisé" (pour la taille, pas la vitesse :P) il me semble que ca donne ça :

Code: Tout sélectionner
function name(n)
   n=n<0 and 102 or n
   i=1
   while({101,66,23,19,16,12,6,3,0})[i]>n do i=i+1 end
   return({"troll","retraite","travail","postbac","lycee","college","primaire","maternelle","maison"})[i]
end


Sans la première et la dernière ligne ni les espaces d'indentations et les "\r\n" en fin de chaque ligne, ca me donne 174 caractères.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude davidElmaleh » 12 Juil 2014, 23:22

Voila, mon code : (il devrai marcher)
Code: Tout sélectionner
function name(n)
  if n*n>100n then i=1 else i=math.floor(10-8*math.exp(-n/19)) end
  Return {"troll","maison","maternelle","primaire","college","lycee","postbac","travail","retraite"}[i]
end


Merci regressi ;)

PS : ca fait 165 caractères
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

Re: [Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude Adriweb » 12 Juil 2014, 23:29

J'y avais pensé, à faire une régression, mais j'ai pas osé tenter x)

Mais bref, tant mieux si ca marche, cependant... pourquoi passer par un math.eval õ_Ô ?
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude davidElmaleh » 12 Juil 2014, 23:30

J'ai oublié les fonctions exp et int en lua :p
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

Re: [Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude Adriweb » 12 Juil 2014, 23:32

math.exp() et math.floor()

Ca donnerait :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
function name(n)
  if n<0 or n>100 then i=0 else i=math.floor(8*(1-math.exp(-n/19)))+2 end
  return ({"troll","maison","maternelle","primaire","college","lycee","postbac","travail","retraite"})[i+1]
end
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude davidElmaleh » 12 Juil 2014, 23:33

Je corrige alors ;)
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

Re: [Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude Adriweb » 12 Juil 2014, 23:37

J'ai corrigé ton problème de syntaxe (cf mon post, il faut des parenthèses avant d'accéder à l'élément d'une table inlinée : ({...})[i+1] ) mais la régression ne semble pas bonne de toute facon :
20 -> travail, 30 -> retraite (jusqu'à 39), 40+ => nil
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Mini-Challenge #3] : Quel est le groupe d'âge...

Message non lude davidElmaleh » 12 Juil 2014, 23:41

J'ai édité, regarde mon premier post
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*


Retourner vers Mini-Challenges

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 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.
2536 utilisateurs:
>2523 invités
>8 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)