π
<-

Supprimer un terme d'une liste ?

Pour le TI-Basic sur Nspire

Supprimer un terme d'une liste ?

Message non lude AnToX98 » 08 Juin 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........
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Supprimer un terme d'une liste ?

Message non lude Excale » 08 Juin 2014, 11:04

Augment, left, right.

Mais pourquoi as-tu besoin de supprimer des termes?
Avatar de l’utilisateur
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 3.9%
 
Messages: 2955
Images: 3
Inscription: 10 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Message non lude AnToX98 » 08 Juin 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: Tout sélectionner
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
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Supprimer un terme d'une liste ?

Message non lude Excale » 08 Juin 2014, 11:12

Dejà:

Code: Tout sélectionner
:For k,1,dim(liste)
Stocke dim(liste) à part sinon il le recalcule à chaque tour de boucle.
Avatar de l’utilisateur
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 3.9%
 
Messages: 2955
Images: 3
Inscription: 10 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Message non lude AnToX98 » 08 Juin 2014, 11:15

Argh il me dit : "Erreur : Invalide dans une fonction ou expression courante"
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Supprimer un terme d'une liste ?

Message non lude Lionel Debroux » 08 Juin 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.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Supprimer un terme d'une liste ?

Message non lude Excale » 08 Juin 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
Avatar de l’utilisateur
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 3.9%
 
Messages: 2955
Images: 3
Inscription: 10 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Message non lude Excale » 08 Juin 2014, 11:27

Quand au pourquoi ça ne marche pas, c'est évident: k :P.
Avatar de l’utilisateur
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 3.9%
 
Messages: 2955
Images: 3
Inscription: 10 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Message non lude Bisam » 08 Juin 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: Tout sélectionner
_->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) !
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5670
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Supprimer un terme d'une liste ?

Message non lude Extra44 » 08 Juin 2014, 13:42

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

Code: Tout sélectionner
delVoid(List1) ->  list
Returns a list that has the contents of List1 with all empty (void)
elements removed


Pas mal ;) Bien vu Bisam !
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.

Suivante

Retourner vers Nspire-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 4 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
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 !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2635 utilisateurs:
>2613 invités
>15 membres
>7 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)