Page 1 of 6

[Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 17:37
by Bisam
Mesdames, Messieurs, bonsoir !


J'ai l'immense honneur de vous présenter ce soir, en direct de TI-Planet, un nouveau Mini-Challenge Basic dont vous me direz des nouvelles !
Je n'ai pas coutume de donner des adjectifs superlatifs à tire-larigot, mais je pense que vous le trouverez époustouflant, renversant, incroyable,.... ou tout simplement intéressant.

Pour ne plus vous faire languir, voici tout de suite l'énoncé... juste après notre annonceur :


Et maintenant, place au sport !

Vous devrez créer en Basic un programme nommé "nbarg" qui prend comme argument une chaîne de caractères et affiche le nombre d'arguments nécessaires pour l'appel du programme (ou de la fonction) dont le nom est dans la chaîne de caractères.

Par exemple, nbarg("ma_super_fonction") devra afficher 3 si "ma_super_fonction" demande 3 arguments.

Si la chaîne de caractères ne correspond pas au nom d'une fonction ou d'un programme, on affichera un message d'erreur compréhensible.

Bon courage, et bonne semaine à tous....

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 17:41
by Adriweb
Ouh.... celui la je sais exactement comment faire, il me semble :P

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 18:19
by NspireCas
Le but du challenge est bien de le faire le code le plus court ?

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 18:22
by Adriweb
Yep, je suppose.

(Pas en hauteur, mais en nombre de caractères, je pense, sinon il l'aurait précisé)

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 18:29
by Bisam
Je n'ai pas précisé car faire un programme qui fonctionne est déjà un challenge en soi... mais si vous voulez vraiment, ce sera effectivement le nombre de caractères.

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 20:48
by Excale
Bonus pour la gestion de:
  • Code: Select all
    Define basictroll()=
    Func
    :While true
    :  0
    :EndWhile
    :EndFunc

  • Code: Select all
    Define maxitroll()=
    Func
    :solve(0)
    :EndFunc

(et pour celui qui voudrait me troller, le bonus n'est accordé que si les mêmes fonctions avec un argument sont gérées aussi)

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 20:59
by Bisam
La 2ème fonction, on n'a pas à s'en préoccuper puisqu'il est impossible de la valider à cause de l'erreur de syntaxe... mais il est facile d'en faire une qui ferait la même chose en étant validable :
Code: Select all
Define maxitroll2()
Func
:expr("sum()")
:EndFunc


Cependant, je pense qu'il est possible de gérer ce cas particulier de troll.
Par contre, le premier, je pense qu'il est ingérable (sauf à attendre que la batterie soit trop faible....)

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 21:05
by Excale
Bisam wrote:La 2ème fonction, on n'a pas à s'en préoccuper puisqu'il est impossible de la valider à cause de l'erreur de syntaxe...

En XML ça passe :).*

*oui, j'avais prévu la remarque

---


Après réflexion, oui le deuxième n'est pas forcément très bien choisi.

Il faudrait que soient gérés:
Code: Select all
Define maxitroll2(x)
Func
:expr("int()")
:EndFunc


ET

Code: Select all
Define maxitroll2(x)
Func
:expr("int(0,0)")
:EndFunc


(et idem avec deux arguments pour les deux fonctions ci-dessus)

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 29 Jun 2014, 23:04
by Adriweb
Bon, mon cher TINCS 3.6 ayant décidé de crasher (et moi, être sur-intelligent que je suis, je n'avais pas sauvé - phénomène rare, d'habitude je fais ça toutes les 30 secondes...) donc bref, j'ai give up pour ce soir, mais en gros :

Un gros Try qui englobe un expr qui essaye d'appeler la fonction avec un nombre d'arguments qui grandit (une boucle while, tant qu'il y a une erreur, ca augmente le nombre d'arg.)

Re: [Mini-Challenge Basic #4] : Combien d'arguments ?

Unread postPosted: 30 Jun 2014, 00:13
by NspireCas
J'avais pensé à à peu près la même chose avec une boucle for, par contre faut encore que je réfléchisse comment 'rajouter' un argument a chaque passage qui puisse être nombre, variable, chaîne de caractère ou boléens, la difficulté devrait être là.