Eliminar valores de una lista
- Inicie sesión o regístrese para enviar comentarios
Hola, aquí les planteo una pregunta.
Tengo una lista que puede contener una n cantidad de valores, de la siguiente manera:
{2 3 5 7 11 13 17 19 23....x}
Como pueden ver es una lista de números primos.
Quisiera implementar un programa que elimine algunos valores, para que la lista quede de la siguiente manera:
{2 5 11 17 23....x}
Alguien tiene una idea de como hacer esto? No quiero hacerlo para una lista de tamaño fijo, sino que el programa sea aplicable a una lista de tamaño arbitrario (no importa si no funciona para una lista vacía).
Saludos.
- Inicie sesión o regístrese para enviar comentarios
Otros temas de interes
- como hacer una barra de menus ??
- GROBs en la hp50g ..
- Nueva Calculadora HP?? HP 39gII spécification
- ROM 2.10-7 Spreadsheet & Geometry manuales y biblioteca.
- Ayuda con Raices
- [PROYECTOS] EoEiProEngLib, MathEngProLib, EquatnEngProLib & and HP50GNKLib
- ayuda con integral exponencial
- programa tipo excell que permita introducir formulas en las tablas
- como aprender tantos comandos en SYSTEM?
Fijate si te sirve:
«
DUP
SIZE 'N' STO
N 2 MOD 1 IF == THEN
N 1 - 'N' STO
END
REVLIST
EVAL
1 LIST
1 N 2 / FOR i
SWAP DROP
SWAP +
NEXT
{ N } PURGE
»Como se haría con variables locales? así me voy acostumbrando a trabajar bien
- Inicie sesión o regístrese para enviar comentarios
Gracias VereV, funciona bien.
Con variables locales sería así:« DUP SIZE N « N 2 MOD 1 IF == THEN N 1 - 'N' STO END REVLIST EVAL 1 LIST 1 N 2 / FOR i SWAP DROP SWAP + NEXT » »Como ves es muy simple, para crear la variable N, en lugar de usar 'N' STO se usa -> N, luego se usa 'N' STO para guardar otros valores en esa variable.
El resto del programa va encerrado en nuevos delimitadores de <<>> y se omite el {N} PURGE al final ya que no es necesario (las variables locales dejan de existir una vez finalizado el programa).
Perfecto gracias, igual te hago una pregunta? Cada vez defino una variable local tengo que abrir << >> denuevo?
PD: Como hago para eliminar un elemento de una lista? No con TAIL, sino quiero decir, eliminame el elemento 3 y que lo elimine...
- Inicie sesión o regístrese para enviar comentarios
Hola tu quieres eleminar los valores en posicion impar?, si es asi puedes usar:
«
1.
« NSUB 2. MOD NOT { DROP } IFT »
DOSUBS
»
- Inicie sesión o regístrese para enviar comentarios
Jaja, eso me pasa por no conocer bastantes comandos...
PD:Cada vez defino una variable local tengo que abrir << >> denuevo?
PD2: Como hago para eliminar un elemento de una lista? No con TAIL, sino quiero decir, eliminame el elemento 3 y que lo elimine...
- Inicie sesión o regístrese para enviar comentarios
Hay muchas formas para eliminar un lemento yo propongo el siguiente programa:
«
{ NSUB SAME { DROP } IFT }
+ PRG 1. SWAP
DOSUBS
»
de entrada debe tener una lista y un munero que indigue el elemento que se borrara
- Inicie sesión o regístrese para enviar comentarios
Hola!, Vere:
Puedes buscar en el sitio de Eric Rechlin (www.hpcalc.org), un archivo llamado ... One Minute Marvels y en la Sección L (Lists) ...
L3.Removiendo un elemento.
L4.Removiendo una serie de elementos.
- Inicie sesión o regístrese para enviar comentarios
Hola!, Vere:
Puedes buscar en el sitio de Eric Rechlin (www.hpcalc.org), un archivo llamado ... One Minute Marvels y en la Sección L (Lists) ...
L3.Removiendo un elemento.
L4.Removiendo una serie de elementos.
Muchísimas gracias, no lo conocía!
Igual mi pregunta era por si existía algún comando que haga tal cosa, jaja
- Inicie sesión o regístrese para enviar comentarios
Creo que ya lo comenté alguna vez, pero por las dudas...para la manipulación de listas existe una biblioteca llamada Goferlists (está en HPCalc) que tiene muchos comandos interesantes. Claro que al usar esos comandos en programas, no se podrán usar los programas en otras calculadoras ajenas excepto que tengan instalada esa biblioteca.
Gracias Luis, tu dominio de la programación con listas es notable.
Perfecto gracias, igual te hago una pregunta? Cada vez defino una variable local tengo que abrir << >> denuevo?
Creo que sí, es indispensable, salvo que luego de definir las variables uses algo como '', por ejemplo:
« A B C '2*A+B-C' EVAL
»
funciona sin abrir nuevos << >>
Pero esto no funciona, te da invalid syntax:
« A B C
A 2 * B + C -
»
- Inicie sesión o regístrese para enviar comentarios
Para los que quieran arriesgarse les dejo esto:
«
{ A B C D E F }
3.
"!NO CODE
!RPL
::
SWAP INNERCOMP DUPDUP #3+ ROLL
COERCE #- #2+ ROLLDROP #1-{}N
;
@"
ASM EVAL
»
- Inicie sesión o regístrese para enviar comentarios














Gracias VereV, funciona bien.
Con variables locales sería así:
Como ves es muy simple, para crear la variable N, en lugar de usar 'N' STO se usa -> N, luego se usa 'N' STO para guardar otros valores en esa variable.
El resto del programa va encerrado en nuevos delimitadores de <<>> y se omite el {N} PURGE al final ya que no es necesario (las variables locales dejan de existir una vez finalizado el programa).
Ingeniero. Usuario de HP 50g.