π
<-

[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 ;)

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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 79.9%
 
Messages: 14840
Images: 1133
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.

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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 79.9%
 
Messages: 14840
Images: 1133
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 õ_Ô ?

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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 79.9%
 
Messages: 14840
Images: 1133
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

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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 79.9%
 
Messages: 14840
Images: 1133
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

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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 79.9%
 
Messages: 14840
Images: 1133
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 !
"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
-
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.
2251 utilisateurs:
>2206 invités
>37 membres
>8 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)