Page 1 of 1

"Try" et les variantes

Unread postPosted: 04 May 2009, 18:54
by Levak
Bonjour à tous !
Je viens vous partager une petite découverte, même si c'est pas exceptionnel pour certin, pour moi ça a été la révélation :#spin#:

Euh oui...en PHP on a l'habitude de coder comme des bourrins des fois et on se sert souvent de "isset()" pour savoir si une variable existe ou non, sauf que manque de peau, hehe, cette fonction précieuse n'existe pas sur TI Nspire CAS. Du moins jusqu'à aujourd'hui :#non#: :D:

Ca me turlupinait le cerveau depuis assez longtemps cette histoire de "ClrErr" et de "PassErr", j'ai donc ouvert le manuel et je suis tombé sur le nez ! La fonction Try...Else...EndTry évite de renvoyer tout de suite comme un crétin une popup que tout le monde aime "Erreur Syntaxe" ou bien "Erreur de Dimension". Elle traite le bloc du Else si elle rencontre des problèmes dans le bloc du Try :

Try:Disp "Ti BANK c'est de la m*** !!":Else:Disp"Levak est beau":EndTry

Malheureusement, la fonction à pas l'air d'être tout à fait au point :#ouin#:
En même temps la pauvre, elle avait pas trop le choix :%):

Le isset() pour vous servir:
Dans une librairie déjà crée ou dans un classeur même, taper ceci :

Méthode artisanale :
Code: Select all
define isset(arg)=func:if gettype(#arg)(!=)"NONE" then:return true:else:return false:endif:endfunc

Image

Méthode Try :
Code: Select all
define isset(arg)=func:Try:arg:=arg:else:return false:endtry:return true:endfunc



Un chouaille plus court et en plus plus pratique ! :L:

@+ !

edit: Euh meuurde... il semble y avoir un problème avec try dans une fonction, il n'est pas fait pour les fonctions mais pour les progs, raah les vaches !!

Bon bah la méthode artisanale reste la meilleures :#gol#:

edit 2 : Bon pour pas clore le topic tout de suite, j'ai trouvé une autre utilisation, dans les boucles:

Méthode bourrin :
Code: Select all
m:=[1 2 3]
for i,1,5
 m:=colaugment(m,[i i+1 i+2])
endfor

for i, 1, 7 (vous voyez la merde là non ? xD)
 y:=m[i,2]
endfor

Vous voyez donc que la deuxième boucle renverra une grossière erreur vous indiquant que vous avez essayé de prendre le processeur de la calculette pour un crétin. Pour satisfaire les deux voilà comment faire :D

Méthode SEMI-bourrin :
Code: Select all
m:=[1 2 3]
for i,1,5
 m:=colaugment(m,[i i+1 i+2])
endfor

for i, 1, 7
 Try
  y:=m[i,2]
 Else
  Disp "Tu me prends pour un boeuf ?"
 EndTry
endfor


Voilà qui est mieux ! :cask:

Re: "Try" et les variantes

Unread postPosted: 04 May 2009, 19:54
by tama
Try, un topic pour toi =)
Bah sinon oué pas mal, mais ça existait déjà depuis pas mal de temps :)

Re: "Try" et les variantes

Unread postPosted: 04 May 2009, 22:39
by Levak
Mic wrote:Ahh ça ressemble beaucoup à ce qu'on fait sur 68k ou je délire ??....

J'en sais rien, j'ai pas de 68k :(:

Re: "Try" et les variantes

Unread postPosted: 04 May 2009, 22:46
by Levak
Mic wrote:Ba par exemple, j'ai déjà fait des trucs très semblables pour mon programme Ephy (tableau périodique).
D'ailleurs je commence à perdre pas mal en compétences de programmationn vu que ça fait un bon moment que je n'ai vériatblement rien touché....


Oui, la prog c'est pas du tout comme le vélo, il faut tâtonner pour progresser ;)

Re: "Try" et les variantes

Unread postPosted: 04 May 2009, 22:55
by ced78fr
ba en vélo aussi, tu commence avec des stabilisateurs puis on te les enlève, tu tombes, tu pleurs, tu recommences...

Re: "Try" et les variantes

Unread postPosted: 05 May 2009, 18:27
by tama
c'était fin comme comparaison :)
Moi aussi ça fait pas mal de temps que j'ai rien fait d'"important", là j'm'y remets petit à petit ^^

Re: "Try" et les variantes

Unread postPosted: 08 May 2009, 17:27
by Yak
Mic wrote:Mais quand tu as réussi à ne plus tomber, tu tombes plus jamais...

la stabilité est inversement proportionnelle a la quantité d'alcool absorbée :#non#: