π
<-

Nombres Digisibles

Nombres Digisibles

Postby Persalteas » 12 May 2013, 13:57

Salut,

Maintenant que le tour 2 du TI-Concours est fini, j'avais envie de partager mon programme NBDIG, histoire de voir si quelqu'un aurait réussi a faire mieux :P (PARCE QUE VISIBLEMENT OUI, HEIN SAMOS/LINKAKRO ! )...

Rappel du sujet du tour2, les nombres digisibles:

Sujet : Un nombre est dit digisible s’il respecte les trois conditions suivantes :

- il ne comporte aucun 0 ;
- tous les chiffres qui le composent sont différents les uns par rapport aux autres ;
- il est divisible par chacun des chiffres qui le composent.

Vous réaliserez un programme qui demande un nombre entier naturel supérieur ou égal à 10 et qui affiche 1 s’il est digisible, 0 s’il ne l’est pas.

Note : ce sujet est fortement inspiré des Olympiades de mathématiques 2012.

Consignes :

Les consignes sont d’ores et déjà données plus haut. A cela est rajoutée une contrainte supplémentaire : vous devrez réaliser le programme le plus rigoureux possible, c’est-à-dire que celui-ci devra tout faire pour qu’il n’y ait aucune erreur signalée par l’interpréteur de la calculatrice quoi qu’il arrive (dans la mesure du possible).

Nom du programme : votre programme aura comme nom NBDIG suivi de votre code personnel à deux chiffres (disponible sur le site internet dans le menu en haut à gauche). Les sous-programmes ne sont pas autorisés.

Durée : une semaine, soit jusqu’au 7 avril 2013 à 23h 59mn 59s (GMT+2) : au-delà de cette limite, il y aura un point de pénalité tous les quarts d’heure (la note devant toujours être supérieure ou égale à 1).

Barème :50 points sont consacrés au respect des consignes et au bon fonctionnement du programme, 30 points portent sur l’optimisation du programme, et enfin les 20 derniers points concernent la rigueur (voir plus haut).

Coefficient : le coefficient est de un dans la note finale.


et donc, mon humble participation:

Code: Select all
Repeat A>=10
Input "ENTIER >=10:",Str1
If min(seq(inString("0123456789",sub(Str1,K,1)),K,1,length(Str1
expr(Str1->A
End
1+iPart(log(A->B
seq(int(10fPart(A/10^B+1-K))),K,1,B->L1
SortA(L1
not(not(min(L1))+not(min(DeltaList(L1
If Ans
min(seq(not(fPart(A/L1(K))),K,1,B
DelVar L1DelVar ADelVar BDelVar KDelVar Str1Ans


Qui dit mieux ? ;)
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

Re: Nombres Digisibles

Postby noelnadal » 12 May 2013, 14:14

Ahah, j'ai les barèmes si vous voulez :P
Entre vous trois ça s'était joué sur l'optimisation, il me semble. Linkakro et Samos avaient réalisé un code strictement identique, d'où le même score. :P
User avatar
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 41%
 
Posts: 2271
Images: 0
Joined: 10 Mar 2011, 00:00
Location: France, Melun (77)
Gender: Male
Calculator(s):
MyCalcs profile
Class: INRIA Paris
Twitter: nadalnoel
Facebook: noel.nadal1
GitHub: noelnadal

Re: Nombres Digisibles

Postby Persalteas » 12 May 2013, 14:15

Mais justement !
Pour le coup, je ne trouve plus rien à optimiser dans mon code... :o
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

Re: Nombres Digisibles

Postby noelnadal » 12 May 2013, 14:16

Le programme le plus optimisé était largement celui de 42maelstrom. Là, y'avait pas photo :D
Mais en termes de rigueur, par conter, ça y était pas. :D
User avatar
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 41%
 
Posts: 2271
Images: 0
Joined: 10 Mar 2011, 00:00
Location: France, Melun (77)
Gender: Male
Calculator(s):
MyCalcs profile
Class: INRIA Paris
Twitter: nadalnoel
Facebook: noel.nadal1
GitHub: noelnadal

Re: Nombres Digisibles

Postby Persalteas » 12 May 2013, 14:18

AH j'ai trouvé ! eux, ils ont pas mis d'espace entre le "ENTIER" et le ">=10:" :P
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

Re: Nombres Digisibles

Postby mdr1 » 12 May 2013, 14:19

On s'en fout de la "rigueur" dans ces langages, on sait tous très bien que les programmes les plus optimisés sont incompréhensibles.
Image ImageImage
User avatar
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 44%
 
Posts: 1083
Images: 12
Joined: 28 Mar 2011, 00:00
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Je voyage toujours en première.

Re: Nombres Digisibles

Postby Persalteas » 12 May 2013, 14:21

Ce que Noelthebest appelle rigueur, c'est le fait que quoique l'utilisateur rentre, ça ne renvoie pas de message d'erreur de la part de l'interpréteur de la calculatrice.

C'est pourquoi je m'embête à utiliser une chaine pour l'input.
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

Re: Nombres Digisibles

Postby noelnadal » 12 May 2013, 14:21

et surtout >9 c'est plus optimisé que >=10 :troll:

mdr1 -> le sujet indiquait clairement que la rigueur était de mise. C'était possible d'avoir 100/100, vous savez...

et puis persalteas, c'était pas que ça, la rigueur, vous vous êtes presque tous pris 10 points parce que vous avez presque tous oublié qqch :troll:
User avatar
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 41%
 
Posts: 2271
Images: 0
Joined: 10 Mar 2011, 00:00
Location: France, Melun (77)
Gender: Male
Calculator(s):
MyCalcs profile
Class: INRIA Paris
Twitter: nadalnoel
Facebook: noel.nadal1
GitHub: noelnadal

Re: Nombres Digisibles

Postby mdr1 » 12 May 2013, 14:23

Eh bien tu t'es embêté pour rien car un bon programme est censé indiquer à l'utilisateur l'erreur s'il en fait une, ce qui ici est pris en partie en charge par l'OS en demandant un nombre.
Image ImageImage
User avatar
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 44%
 
Posts: 1083
Images: 12
Joined: 28 Mar 2011, 00:00
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Je voyage toujours en première.

Re: Nombres Digisibles

Postby Persalteas » 12 May 2013, 14:25

et surtout >9 c'est plus optimisé que >=10 :troll:


MEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEERDEEEEE !!!

*Persalteas s'excuse pour tant de vulgarité concentrée

mais mdr1, mon programme redemande à l'utilisateur un ENTIER >=10, c'est clair comme message, non ?

Si ça passe pas, l'utilisateur est en mesure de deviner que c'est que ça ne respecte pas la seule condition que je lui ai demandée...
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

Next

Return to TI-Basic

Who is online

Users browsing this forum: No registered users and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
Ndless for CX 4.5.5 / CX II 6.2.0
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 !
12345
-
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.
3835 utilisateurs:
>3812 invités
>15 membres
>8 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
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)