HonradosHP
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Formar un arreglo con los objetos de la pila

Ir abajo

Formar un arreglo con los objetos de la pila Empty Formar un arreglo con los objetos de la pila

Mensaje  CesarV Sáb Oct 01, 2011 12:11 pm

Formar un arreglo con los objetos de la pila

1) CASO GENERAL

El siguiente NULLNAME permite crear un arreglo de varias dimensiones y que contenga objetos de cualquier tipo.

Código:
* Forma un arreglo a partir de N objetos de la pila.
* Estos N objetos deben ser del mismo tipo.
* Las dimensiones del arreglo están indicadas en la lista.
NULLNAME ob>ARRY ( ob1...obN {#L1,#L2...#Ln} -> ARRY )
::              ( ob1...obN {#} )
DUP              ( ob1...obN {#} {#} )
>R              ( ob1...obN {#} )
DUPLENCOMP      ( ob1...obN {#} #n )
3PICK            ( ob1...obN {#} #n obn )
FLASHPTR 002 0A5 ( ob1...obN {#} #n "Prolo..." )
BINT1 BINT5 SUB$ ( ob1...obN {#} #n "Prolo" )
OVER            ( ob1...obN {#} #n "Prolo" #n )
#>HXS            ( ob1...obN {#} #n "Prolo" HXSn )
FLASHPTR 002 0A7 ( ob1...obN {#} #n "Prolo" "Ndims" )
&$              ( ob1...obN {#} #n "ProloNdims" )
SWAP            ( ob1...obN {#} "ProloNdims" #n )
ZERO_DO (DO)    ( ob1...obN {#} "ProloNdims" )
  RSWAP 'R RSWAP  ( ob1...obN {#} "ProloNdims" #Li )
  #>HXS
  FLASHPTR 002 0A7
  &$              ( ob1...obN {#} "ProloNdims...Ldimi" )
LOOP
                ( ob1...obN {#} "ProloNdimsLdims" )
1LAMBIND        ( ob1...obN {#} )
INNERCOMP        ( ob1...obN #L1...#Ln #dims )
DUP#1=          ( ob1...obN #L1...#Ln #dims flag )
ITE
  DROP
  :: ONE_DO (DO) #* LOOP ;
                ( ob1...obN #N )
DUPDUP          ( ob1...obN #N #N #N )
#2+UNROLL        ( #N ob1...obN #N )
::N
>R              ( #N )
1GETABND
SWAP            ( "ProloNdimsLdims" #N )
ZERO_DO (DO)    ( "ProloNdimsLdims" )
  RSWAP 'R RSWAP  ( "ProloNdimsLdims" obi )
  FLASHPTR 002 0A5
  BINT6
  OVERLEN$
  SUB$
  &$              ( "ProloNdimsLdimsObjetosSinPrólogo" )
LOOP
                  ( "ProloNdimsLdimsObjetosSinPrólogo" )
DUPLEN$            ( "ProloNdimsLdimsObjetosSinPrólogo" $tamaño )
#5+                ( "ProloNdimsLdimsObjetosSinPrólogo" $tamaño+5 )
#>HXS              ( "ProloNdimsLdimsObjetosSinPrólogo" HXStamaño+5 )
FLASHPTR 002 0A7  ( "ProloNdimsLdimsObjetosSinPrólogo" "Tamañ" )
SWAP&$            ( "TamañProloNdimsLdimsObjetosSinPrólogo" )
"8E920"            ( "TamañProloNdimsLdimsObjetosSinPrólogo" "8E920" )
SWAP&$            ( "8E920TamañProloNdimsLdimsObjetosSinPrólogo" )
FLASHPTR 002 0A4  ( ARRY )
;

**********************************

2) CASO ARREGLO REAL O COMPLEJO DE 1 O DE 2 DIMENSIONES

En este caso puedes usar el comando ˆXEQ>ARRY. Este comando permite crear un arreglo real o complejo de 1 o de 2 dimensiones a partir de los objetos de la pila.

17F006 ˆXEQ>ARRY
( %... %’’ {%el}/{%f,%c} → RealArry )
( C%...C%’’ {%el}/{%f,%c} → CmpArry )
( ob1...obn {%el}/{%f,%c} → MATRIX )
Crea una formación a partir de los elementos de la pila.
Si todos son reales, crea un arreglo real.
Si todos son complejos, crea un arreglo complejo.
De no cumplirse esas condiciones, crea una matriz simbólica.
Pero los objetos sólo puden ser reales, complejos y objetos de clase simbólica (enteros, symb, id o lam).
Usado por el comando →ARRY de User RPL.


CesarV
CesarV
Admin

Masculino Cantidad de envíos : 133
Localización : Perú
Calculadora : HP 50g
ROM : 2.15

https://sites.google.com/view/cesarv1821

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.