Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
027:trucos [d/m/Y H:i] – creado miguel | 027: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 ==== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | --- //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 " | ||
+ | 140 INPUT "CAMPO "; | ||
+ | 145 GO 5UB COMPROBAR | ||
+ | 147 IF ERROR THEN LET ERROR = NOT ERROR: GO TO 130 | ||
+ | 148 : | ||
+ | 150 PRINT INVERSE 1; FN U$(NUM, | ||
+ | 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> | ||
+ | 1030 RETURN | ||
+ | |||
+ | </ | ||
==== 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: | ||
</ | </ | ||
- | 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$ = "" | ||
- | |||
- | 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 " | ||
- | |||
- | 147 IF ERROR THEN LET ERROR = NOT ERROR: GO TO 130 | ||
- | |||
- | 148 . | ||
- | |||
- | 150 PRINT INUERSE 1; | ||
- | |||
- | FN U$(NUM, | ||
- | |||
- | 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> |