π
<-

Supprimer un terme d'une liste ?

Pour le TI-Basic sur Nspire

Supprimer un terme d'une liste ?

Unread postby AnToX98 » 08 Jun 2014, 10:57

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........
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Supprimer un terme d'une liste ?

Unread postby Excale » 08 Jun 2014, 11:04

Augment, left, right.

Mais pourquoi as-tu besoin de supprimer des termes?
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Unread postby AnToX98 » 08 Jun 2014, 11:09

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
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Supprimer un terme d'une liste ?

Unread postby Excale » 08 Jun 2014, 11:12

Dejà:

Code: Select all
:For k,1,dim(liste)
Stocke dim(liste) à part sinon il le recalcule à chaque tour de boucle.
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Unread postby AnToX98 » 08 Jun 2014, 11:15

Argh il me dit : "Erreur : Invalide dans une fonction ou expression courante"
User avatar
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 75.5%
 
Posts: 1022
Images: 15
Joined: 19 May 2013, 16:54
Location: Paris, France
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Supprimer un terme d'une liste ?

Unread postby Lionel Debroux » 08 Jun 2014, 11:19

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() :(
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Supprimer un terme d'une liste ?

Unread postby Excale » 08 Jun 2014, 11:20

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
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Unread postby Excale » 08 Jun 2014, 11:27

Quand au pourquoi ça ne marche pas, c'est évident: k :P.
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Unread postby Bisam » 08 Jun 2014, 13:37

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 : 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) !
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Unread postby Extra44 » 08 Jun 2014, 13:42

le k a été vu ... et corrigé (ca venait bien de cela) mais il restait un probleme sur son tri ...

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 !
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

Next

Return to Nspire-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
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.
861 utilisateurs:
>804 invités
>48 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
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)