Comment on fait pour supprimer un terme d'une liste en basic ?
Comme le sortD n'est pas utilisable dans une fonction, je suis obligé de me crée ma propre fonction de tri........
Supprimer un terme d'une liste ?
14 posts
• Page 1 of 2 • 1, 2
Supprimer un terme d'une liste ?
Mes programmes de Maths Equation cartésienne droiteEtude de dérivé en un point Inéquations du second degré Equations bicarrées Statistique facile ! (1ère/2nde) | Divers Liste complète de mes programmesApprends à programmer en lua TI-planet sur facebook : |
-
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)- Posts: 1022
- Images: 15
- Joined: 19 May 2013, 16:54
- Location: Paris, France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1ere S
Re: Supprimer un terme d'une liste ?
Augment, left, right.
Mais pourquoi as-tu besoin de supprimer des termes?
Mais pourquoi as-tu besoin de supprimer des termes?
-
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2955
- Images: 3
- Joined: 10 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Supprimer un terme d'une liste ?
Voilà je n'ai pas fait avec augment mais comme je ne peux pas utiliser sort D dans une fonction, voici la mienne, mais elle aussi me dit : "Invalide dans la fonction courante "
- Code: Select all
Define sortdecr(liste)=
Func
:Local i,maxs,nmax,nliste,listep
:nliste:={}
:For k,1,dim(liste)
:maxs:=""
:nmax:=0
:For i,1,dim(liste)
: If dim(liste[i])>dim(maxs) Then
: maxs:=liste[i]
: nmax:=i
: EndIf
:EndFor
:listep:={}
:For i,1,nmax-1
: listep[dim(listep)+1]:=liste[i]
:EndFor
:For i,1,nmax+1
: listep[dim(listep)+1]:=liste[i]
:EndFor
:liste:=listep
:nliste[dim(nliste)+1]:=maxs
:EndFor
:Return nliste
:EndFunc
Mes programmes de Maths Equation cartésienne droiteEtude de dérivé en un point Inéquations du second degré Equations bicarrées Statistique facile ! (1ère/2nde) | Divers Liste complète de mes programmesApprends à programmer en lua TI-planet sur facebook : |
-
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)- Posts: 1022
- Images: 15
- Joined: 19 May 2013, 16:54
- Location: Paris, France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1ere S
Re: Supprimer un terme d'une liste ?
Dejà:
- Code: Select all
:For k,1,dim(liste)
-
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2955
- Images: 3
- Joined: 10 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Supprimer un terme d'une liste ?
Argh il me dit : "Erreur : Invalide dans une fonction ou expression courante"
Mes programmes de Maths Equation cartésienne droiteEtude de dérivé en un point Inéquations du second degré Equations bicarrées Statistique facile ! (1ère/2nde) | Divers Liste complète de mes programmesApprends à programmer en lua TI-planet sur facebook : |
-
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)- Posts: 1022
- Images: 15
- Joined: 19 May 2013, 16:54
- Location: Paris, France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1ere S
Re: Supprimer un terme d'une liste ?
C'est quand même ballot qu'il n'y ait pas de fonction pour supprimer un terme au milieu d'une liste...
Ca se passerait très naturellement avec les fonctions du CAS, du genre next_expression_index() dans une boucle jusqu'à trouver l'élément d'index i (à supposer que i <= dim(list), bien sûr), ensuite next_expression_index() pour trouver l'index de l'élément i+1 (à supposer qu'il existe), et puis delete_between() / deleted_between()
Ca se passerait très naturellement avec les fonctions du CAS, du genre next_expression_index() dans une boucle jusqu'à trouver l'élément d'index i (à supposer que i <= dim(list), bien sûr), ensuite next_expression_index() pour trouver l'index de l'élément i+1 (à supposer qu'il existe), et puis delete_between() / deleted_between()
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6865
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: Supprimer un terme d'une liste ?
Utilise un vrai algo de tri aussi:
Au choix:
-quicksort
-mergesort
-heapsort
L’intérêt du mergesort c'est qu'il est le plus facile à coder.
L’intérêt des deux autres est qu'ils sont sur place.
Si tu es feignant:
http://www.ticalc.org/pub/nspire/basic/math/
ctrl+f quicksort
Au choix:
-quicksort
-mergesort
-heapsort
L’intérêt du mergesort c'est qu'il est le plus facile à coder.
L’intérêt des deux autres est qu'ils sont sur place.
Si tu es feignant:
http://www.ticalc.org/pub/nspire/basic/math/
ctrl+f quicksort
-
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2955
- Images: 3
- Joined: 10 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Supprimer un terme d'une liste ?
Quand au pourquoi ça ne marche pas, c'est évident: k .
-
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2955
- Images: 3
- Joined: 10 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Supprimer un terme d'une liste ?
Pour être un peu moins sibyllin, k devrait lui aussi être déclaré comme variable locale.
Et pour supprimer le terme d'indice i de la liste L, tu tapes :
Avec une Nspire, tu peux aussi faire ainsi :
Par ailleurs, sur une calculatrice, utiliser le quicksort ou le mergesort n'a aucun intérêt car les listes n'ont pas des tailles suffisamment grandes pour que le gain se fasse ressentir par rapport à un tri à bulle (ou un tri par insertion)
En plus, c'est d'autant moins intéressant qu'il est impossible de passer des paramètres par référence, ce qui fait que l'implémentation sur la calculette d'un mergesort ou d'un quicksort ferait en fait utiliser beaucoup plus de mémoire qu'un tri à bulle (ou par insertion) !
Et pour supprimer le terme d'indice i de la liste L, tu tapes :
augment(left(L,i-1),mid(L,i+1))->L
.Avec une Nspire, tu peux aussi faire ainsi :
- Code: Select all
_->L[i]
delvoid(L)
Par ailleurs, sur une calculatrice, utiliser le quicksort ou le mergesort n'a aucun intérêt car les listes n'ont pas des tailles suffisamment grandes pour que le gain se fasse ressentir par rapport à un tri à bulle (ou un tri par insertion)
En plus, c'est d'autant moins intéressant qu'il est impossible de passer des paramètres par référence, ce qui fait que l'implémentation sur la calculette d'un mergesort ou d'un quicksort ferait en fait utiliser beaucoup plus de mémoire qu'un tri à bulle (ou par insertion) !
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Supprimer un terme d'une liste ?
le k a été vu ... et corrigé (ca venait bien de cela) mais il restait un probleme sur son tri ...
Pas mal Bien vu Bisam !
- Code: Select all
delVoid(List1) -> list
Returns a list that has the contents of List1 with all empty (void)
elements removed
Pas mal Bien vu Bisam !
-
Extra44Premium
Niveau 11: LV (Légende Vivante)- Posts: 591
- Images: 1
- Joined: 20 Jan 2011, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: S.I.
14 posts
• Page 1 of 2 • 1, 2
Who is online
Users browsing this forum: ClaudeBot [spider] and 2 guests