Glosario

Protocolo de transferencia de datos usado por las HP48 y la mayoría de los programas de comunicación. La implementación del Kermit en la HP48 es muy lenta, y es incapaz de transmitir a más de 2400bps, aunque la implementación en computadora es mucho más rápida. Kermit es el único protocolo de transferencia que acepta el modo de transferencia ASCII en vez de tan sólo modo binario. La Universidad de Columbia tiene los derechos sobre el Kermit. El nombre Kermit viene de Kermit la Rana, de los Muppets.

Este foro, solamente es de lectura, para los nuevos foros dirígase a www.adictoshp.org

Eliminar Espacios Extras

11 respuestas [Último envío]
Integró: 17/08/2003
Envíos: 36
MonedasHP: 0
Imagen de Gu1llermo
Gu1llermo Usuario Desconectado. Visto por última vez 5 años 13 semanas.
Eliminar Espacios Extras
 
Lun, 20/10/2003 - 08:20

El ejercicio que propongo es el siguiente, realizar un programa que dado un "_____string___cualquiera,_éste_tiene____que_eliminar_los__espacios____en_blanco_extras_______", los datos de entrada van desde un string de tamaño 1 hasta uno de 1024 caracteres.
Nota: Coloco guión subrayado para hacer notar los espacios en blanco extras ya que en ésta página esto ya está implementado Smile .
Para el ejemplo anterior el resultado debería ser :
"string cualquiera, éste tiene que eliminar los espacios en blanco extras"

Nos vemos...

Guillermo Núñez

(Todo lo dicho es en RPN!)

Top
Integró: 17/08/2003
Envíos: 36
MonedasHP: 0
Imagen de Gu1llermo
Gu1llermo Usuario Desconectado. Visto por última vez 5 años 13 semanas.
 
#1
Mar, 21/10/2003 - 13:17

Aquí está mi solución para éste ejercicio

%%HP: T(3)A(D)F(.);
\<< 0 "" ROT 1 OVER
SIZE
START
IF DUP HEAD " "
SAME
THEN
IF 3 PICK 0
==
THEN TAIL
ELSE ROT DROP
0 3 ROLLD TAIL SWAP
" " + SWAP
END
ELSE ROT DROP 1
3 ROLLD DUP HEAD
ROT SWAP + SWAP
TAIL
END
NEXT ROT DROP2
IF DUP DUP SIZE
DUP DUP 5 ROLLD SUB
" " SAME
THEN 1 ROT 1 -
SUB
ELSE SWAP DROP
END
\>>

Tamaño: 238 Bytes

Guillermo Núñez

(Todo lo dicho es en RPN!)

Top
Integró: 30/06/2003
Envíos: 22
MonedasHP: 6
Imagen de cgedmundo
cgedmundo Usuario Desconectado. Visto por última vez 1 año 49 semanas.
 
#2
Mar, 21/10/2003 - 14:04

Que les parece esto:

::
CK1NOLASTWD
DUPTYPECSTR?
case
::
BINT0 1LAMBIND NULL$ OVERLEN$
#1+_ONE_DO
OVER INDEX@ DUP SUB$ DUP " " EQUAL
ITE
::
1GETLAM #1+ DUP 1PUTLAM
#1=case
::
OVER DUPLEN$ DUP SUB$ { NULL$ " " } FPTR 6 FD
#0=case
&$
:: DROPDUP LEN$ 1_#1-SUB$ ;
;
DROP
;
::
DUP { "." ";" "," } FPTR 6 FD #0<>
IT
::
SWAPDUP DUPLEN$ DUP SUB$ " " EQUAL
IT
:: DUPLEN$ 1_#1-SUB$ ; SWAP ;
&$ BINT0 1PUTLAM
;
LOOP
SWAPDROPDUP DUPLEN$ DUP SUB$ " "
EQUALcase
::
DUPLEN$ 1_#1-SUB$
;
;
SETSTACKERR
;
@

246.5 bytes
Código en system-rpl, con el adecuado control de errores y sus menzajes.

Por ejemplo: cuanado tenemos el siguiente menzaje "_______Hola _________ , __ escribo desde ______ Perú ________ .______ y ________ esto __________ es un _________ ejemplo __________________________ "
el programa devuelve:"Hola, escribo desde Perú. y esto es un ejemplo". debes notar que controla los espacios que pudiera existir al inicio como al final, y como las reglas dicen que una coma, punto y coma, punto deben de estar unidas a la palabra que lo antecede, también cuida de este detalla, pruebalo.

Edmundo

Programas para calculadoras gráficas hp49g/hp49g plus/hp50g

Top
Integró: 17/08/2003
Envíos: 36
MonedasHP: 0
Imagen de Gu1llermo
Gu1llermo Usuario Desconectado. Visto por última vez 5 años 13 semanas.
 
#3
Mar, 21/10/2003 - 14:09

No había pensando en eso, gracias por la recordatoria.

Guillermo Núñez

(Todo lo dicho es en RPN!)

Top
Integró: 21/05/2003
Envíos: 6
MonedasHP: 0
Imagen de porquero
porquero Usuario Desconectado. Visto por última vez 5 años 21 semanas.
 
#4
Mar, 21/10/2003 - 22:42

Otra Solución:

« 0. -> txt f
«
DO
IF
txt
" " @DOS ESPACIOS
POS DUP
THEN
DUP 1. - SWAP 1. + 1.E50 txt
UNROT SUB SWAP 1. SWAP txt UNROT
SUB SWAP + 'txt' STO
ELSE
DROP 1. 'f' STO
END
UNTIL
f
END
txt DUP NUM 32. == { TAIL } IFT
DUP SIZE DUPDUP 4. PICK UNROT SUB NUM
32. == { 1. - 1. SWAP SUB } IFT
»
»

Bytes: 264

...

Top
Integró: 18/07/2003
Envíos: 27
MonedasHP: 0
Imagen de Aash
Aash Usuario Desconectado. Visto por última vez 3 años 18 semanas.
 
#5
Mié, 22/10/2003 - 09:40

Dos cosas: 1 estoy trabajando en mi respuesta (no he tenido mucho tiempo, se lo dedico a la pag), 2 porquero, si no es mucha molestia puedes cambiar los caracteres a la los de la tabla de conversion ASCII si no es mucha molestia!!!

4R63N1S <<=-Aash-=>>

Top
Integró: 21/05/2003
Envíos: 6
MonedasHP: 0
Imagen de porquero
porquero Usuario Desconectado. Visto por última vez 5 años 21 semanas.
 
#6
Mié, 22/10/2003 - 12:41

Sabes? no sé como se hace....

me explicas por favor?

...

Top
Integró: 17/08/2003
Envíos: 36
MonedasHP: 0
Imagen de Gu1llermo
Gu1llermo Usuario Desconectado. Visto por última vez 5 años 13 semanas.
 
#7
Mié, 22/10/2003 - 16:24

Yo tampoco sabía como transformar los caracteres en Ascii, no se trata de cambiar carácter por carácter :roll: sería insoportable y además innecesario si ya un programa lo hace por tí :idea: y éste programa es el HpConnectivity Kit, lo conocen Wink .
Lo que tienes que hacer es seleccionar en tu calculadora (cuando entras en la plantilla de entrada de TRANSFER) en la opción que dice Xlat "Choose Caracter Translations", aquí deberías elegir Chr 128-255 y lo que se vé es ->255 luego le das ENTER ENTER para aceptar los cambios.
Ahora colocando tu Hp en modo SERVER y ejecutando el programa antes descrito lo transfieres a tu Pc, luego lo abres con un editor de texto (yo uso el bloc de notas) lo seleccionas y lo pegas en tu Post, es decir Aquí Cool

Saludos...

Guillermo Núñez

(Todo lo dicho es en RPN!)

Top
Integró: 20/05/2003
Envíos: 220
MonedasHP: 236
Imagen de Edwin
Edwin Usuario Desconectado. Visto por última vez 33 semanas 2 días.
Calc: HP48G/GX
 
#8
Mié, 22/10/2003 - 18:30

Yo para transformar los caracteres hago algo muy similar en la plantilla TRANSFER lo configuro como dice Guillermo, pero en esta misma plantilla selecciono la fila, escojo tipo KERMIT y oprimo SEND. En el PC uso el Hyperterminal lo configuro a 9600 Bauds, selecciono el menu <transferir>, <recibir archivo>, selecciono protocolo KERMIT y aceptar.

Tengo otra solución al problema, pero solo funciona con la 49 (usa SREPL y DUPDUP)

%%HP: T(3)A(D)F(.);
\<<
DO " " " " SREPL
UNTIL NOT
END DUP HEAD " " ==
\<< TAIL
\>> IFT DUPDUP SIZE
DUP SUB " " ==
\<< 1 OVER SIZE 1 -
SUB
\>> IFT
\>>

Tamaño: 124 Bytes.

La cuestión en la vida no es saber mucho, sino olvidarse de poco.

Top
Integró: 18/07/2003
Envíos: 27
MonedasHP: 0
Imagen de Aash
Aash Usuario Desconectado. Visto por última vez 3 años 18 semanas.
 
#9
Vie, 24/10/2003 - 09:37

Unpocotarde pero aqui esta mi respuesta

%%HP: T(3)A(D)F(.);
\<<
"" s STO DUP
SIZE 1 \-> t x y
\<< WHILE x
REPEAT t y y
SUB DUP t y 1
- DUP SUB 3 PICK ==
SWAP " " == AND
IF
THEN DROP
ELSE s SWAP
y SWAP REPL 's'
STO
END 'x' DECR
'y' INCR DROP2
END s 's' PURGE
\>>
\>>

Tamaño: 215 bytes

4R63N1S <<=-Aash-=>>

Top

Twitter

Cargando...

CAPTCHA
Esta pregunta es para probar si usted es un visitante humano y así evitar el spam automatizado.
2 + 0 =
Solucione este simple problema matemático e ingrese el resultado. Por ejemplo: para 1+3, ingrese 4.