Poster un nouveau sujet Poster une réponse
"carchaine( "pour les listes
Auteur Message
charlesjean



Autorisation : Membre
Nb de messages : 32
Inscrit le : Lun 08 Oct 2012, 18:28
Posté le : Lun 28 Jan 2013, 19:34   Citer 

quelqu'un sait-il , s'il existe un equivalent du "Carchaine(" pour les listes
merci beaucoup

----------------------
une journée sans rire est une journée perdue .
rire 30 minutes par jour rends la santé et augmente la durée de vie!
(ne remplace pas l'avis d'un spécialiste ou d'un professionnel de la santé,veuillez consulter un médecin)
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 29 Jan 2013, 22:54   Citer 

Cette fonction n'existe pas mais se réécrit assez facilement.

Code
Prompt X  // à rechercher dans L1
dim(L1->N // permet de gagner en vitesse plutôt que de la placer dans le test
0->W
While W-N et non(Rép  // Rép permet une économie de code
W+1->W
X=L1(W
End
Disp Rép*W  // W si trouvé 0 sinon

Ce programme supportera aussi les listes vides sur ti83plus.

EDIT : inspiration possible avec ceci.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
charlesjean



Autorisation : Membre
Nb de messages : 32
Inscrit le : Lun 08 Oct 2012, 18:28
Posté le : Sam 02 Fév 2013, 21:35   Citer 

j'y ai pensé,mais c'est pour faire un cassebrique et ma liste a 189 variables!
tant pis,je vais devoir y renoncer ou trouver une autre solution!

----------------------
une journée sans rire est une journée perdue .
rire 30 minutes par jour rends la santé et augmente la durée de vie!
(ne remplace pas l'avis d'un spécialiste ou d'un professionnel de la santé,veuillez consulter un médecin)
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 02 Fév 2013, 23:51   Citer 

Essai quand même, ce n'est pas forcément excessivement lent. Le code que j'ai posté est même à durée variable selon l'emplacement du résultat.

La recherche de valeurs peut se faire par d'autres méthodes. Persalteas et sandro (et moi) en avons bricolé plusieurs, et la plupart utilise des fonctions de la TI donc c'est plus rapide qu'une boucle.
https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=3157
On peut écrire quelque chose comme ça pour rechercher A dans L1 :
max((L1=A)seq(X,X,1,189)
Attention dans cet exemple le dernier résultat trouvé de la liste est détecté au lieu du premier.

EDIT : pour aller plus vite on peut stocker à l'avance seq(X,X,1,189) dans une liste (L2 par exemple) puis executer la formule avec L1 et la liste prédéfinie (L2 dans l'exemple).
C'est à cela que revient la première intervention de sangohan38 ci-dessous.


----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Lun 04 Fév 2013, 8:33   Citer 

J'ai peut être une méthode plus rapide mais il faut au préalable avoir une liste avec chaque ligne numérotée (comprendre L(1)=1, L(2)=3 etc).


Code
Prompt X       ->A rechercher dans L1.
Disp max(X=L1)L2    ->L2 est la liste contenant les lignes numérotées.



Sinon une autre méthode du même type que Linkakro:


Code
Prompt X
dim (L1-> N
1->W
While X [différent de] L1(W) and X [différent de] L1(N-W
N+1->N
End
Disp W*max(X=L1(W),X=L1(W-N



Sangohan38

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 9 requêtes