π
<-

[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...

Unread postby Adriweb » 12 Jul 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 ;)

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14836
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby Adriweb » 12 Jul 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: Select all
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.

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14836
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby davidElmaleh » 12 Jul 2014, 23:22

Voila, mon code : (il devrai marcher)
Code: Select all
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
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

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

Unread postby Adriweb » 12 Jul 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 õ_Ô ?

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14836
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby davidElmaleh » 12 Jul 2014, 23:30

J'ai oublié les fonctions exp et int en lua :p
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

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

Unread postby Adriweb » 12 Jul 2014, 23:32

math.exp() et math.floor()

Ca donnerait :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
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

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14836
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby davidElmaleh » 12 Jul 2014, 23:33

Je corrige alors ;)
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

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

Unread postby Adriweb » 12 Jul 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

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14836
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby davidElmaleh » 12 Jul 2014, 23:41

J'ai édité, regarde mon premier post
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*


Return to Mini-Challenges

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
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.
1199 utilisateurs:
>1153 invités
>38 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)