027:trucos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
027:trucos [d/m/Y H:i] – creado miguel027:trucos [d/m/Y H:i] (actual) – [Simulación de la sentencia PRINT USING] miguel
Línea 2: Línea 2:
  
 ===== Trucos ===== ===== Trucos =====
 +
 +==== Simulación de la sentencia PRINT USING ====
 +
 +{{ :027:trucos.jpg?200|}}
 +
 +--- //José Maria Martínez Arbex//
 +
 +Hemos recibido consultas de algunos lectores sobre cómo podrían formatear la salida impresa en la pantalla para conseguir, por ejemplo, una columna alineada de números para programas de aplicación técnica o utilidad.
 +
 +José Maria Martínez Arbex nos ha resuelto el problema al enviarnos una pequeña rutina Basic que imita, hasta cierto punto, a la famosa y potente sentencia PRINT USING de otros dialectos de Basic.
 +
 +El trabajo lo realiza la función definida en la línea 100; necesita dos datos: el número a representar y la longitud del campo donde va a ser representado.
 +
 +Para flexibilizarla al máximo, hemos definido una variable, LONGCAMPO, inicializada a 15, que nos permite elegir la longitud máxima del campo de representación que queremos.
 +
 +También está incluida una subrutina para atrapar errores, (que el campo sea cero o que su longitud sea menor que la del número a pintar).
 +
 +<code basic>
 +
 +10    REM *** SIMULACION DE ***
 +20    REM ***  PRINT USING  ***
 +30    :
 +40    REM *** INICIALICION ***
 +45    :
 +50    LET SPACE=32: LET E$=""
 +60    LET L0NGCAMPO=15
 +62    LET ERROR=0
 +63    LET COMPROBAR=1000
 +65    :
 +70    FOR I=1 TO LONGCAMPO
 +80    LET E$=E$+CHR$ (SPACE)
 +90    NEXT I
 +95    :
 +100   DEF FN U$(N,L)=E$( TO L-LEN STR$ N)+STR$ N
 +110   :
 +120   REM *** ENTRADA DATOS ***
 +125   :
 +130   INPUT "NUMERO ";NUM
 +140   INPUT "CAMPO ";LCAMPO
 +145   GO 5UB COMPROBAR
 +147   IF ERROR THEN LET ERROR = NOT ERROR: GO TO 130
 +148   :
 +150   PRINT INVERSE 1; FN U$(NUM,LCAMPO)
 +155   :
 +160   GO TO (130 AND NUM) + (2000 AND NOT NUM)
 +170   :
 +1000  REM *** COMPROBAR ***
 +1010  REM ***  ERRORES  ***
 +1020  LET ERROR=NOT LCAMPO OR (LEN STR$ NUM>LCAMPO)
 +1030  RETURN
 +
 +</code>
  
 ==== Para colorear la pantalla ==== ==== Para colorear la pantalla ====
  
 --- //José Epalza// --- //José Epalza//
 +
 --- //Andrés López Montalvo// --- //Andrés López Montalvo//
  
Línea 26: Línea 79:
 </basic> </basic>
  
-AMPLIFICADOR DE SONIDO+==== Amplificador de sonido ==== 
 + 
 +--- //Oriol Ribas//
  
 Este truco que nos manda Oriol Ribas puede ser útil para cualquier tipo de programa, pero sobre todo para los musicales. Este truco que nos manda Oriol Ribas puede ser útil para cualquier tipo de programa, pero sobre todo para los musicales.
Línea 34: Línea 89:
 De esta manera sencilla y económica, podremos disfrutar mejor de nuestro Spectrum. De esta manera sencilla y económica, podremos disfrutar mejor de nuestro Spectrum.
  
-SCROLL DE PANTALLA+==== Scroll de pantalla ==== 
 + 
 +--- //David//
  
 Aunque en el pasado número 21 ya hablábamos de cómo llevar a cabo un scroll de pantalla, publicamos este truco que manda David y lo hace de diferente forma. Aunque en el pasado número 21 ya hablábamos de cómo llevar a cabo un scroll de pantalla, publicamos este truco que manda David y lo hace de diferente forma.
  
 Para ello, teclear PRINT y tantas especies de comillas (como las que hay en la tecla n.° 7) como lineas hagamos de scroll. Para ello, teclear PRINT y tantas especies de comillas (como las que hay en la tecla n.° 7) como lineas hagamos de scroll.
- 
-SIMULACION DE LA SENTENCIA PRINT USING 
- 
-Hemos recibido consultas de algunos lectores sobre cómo podrían formatear la salida impresa en la pantalla para conseguir, por ejemplo, una columna alineada de números para programas de aplicación técnica o utilidad. 
- 
-José Maria Martínez Ar-bex nos ha resuelto el problema al enviarnos una pequeña rutina Basic que imita, hasta cierto punto, a la famosa y potente sentencia PRINT USING de otros dialectos de Basic. 
- 
-El trabajo lo realiza la función definida en la línea 100; necesita dos datos: el número a representar y la longitud del campo donde va a ser representado. 
- 
-Para flexibilizarla al máximo, hemos definido una variable, LONGCAMPO, inicia-lizada a 15, que nos permite elegir la longitud máxima del campo de representación que queremos. 
- 
-También está incluida una subrutina para atrapar errores, (que el campo sea cero o que su longitud sea menor que la del número a pintar). 
- 
-10 20 30 40 45 50 60 62 63 65 : 70 80 90 95 : 100 
- 
-110 : 120 
- 
-REM *** REM *** 
- 
-REM *** 
- 
-*** 
- 
-*** 
- 
-LET SPRCE =32: LET E$ = "" LET L0NGCRMP0=15 LET ERROR =0 LET COMPROBRR = 1000 
- 
-FOR 1=1 TO LONGCRMRO 
- 
-LET E$=E$+CHR$ ( 5PRCE) NEXT I 
- 
-DEF FN U$(N,L)= E$( TO L-LEN STR* N)+ STR $ N 
- 
-REM *** 
- 
-125 : 
- 
-130 INPUT "NUMERO ";NUM 140 INPUT "CRMPO ";LCAMPO 145 GO 5UB COMPROBRR 
- 
-147 IF ERROR THEN LET ERROR = NOT ERROR: GO TO 130 
- 
-148 . 
- 
-150 PRINT INUERSE 1; 
- 
-FN U$(NUM,LCRMPO) 
- 
-155: 
- 
-160 GO TO (130 RND NUM)+ (2000 ANO NOT NUM) 
- 
-170: _ 
- 
-1000 REM *** wwaiaawaa^ *** 
- 
-1010 REM *** naaiia^ 1020 LET ERROR =NOT LCRMPO OR „„„„ ncT1 ILEN STR$ NUM>LCRMPO) 1030 RETURN 
  • 027/trucos.1442009648.txt.gz
  • Última modificación: d/m/Y H:i
  • por miguel