018: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
018:trucos [d/m/Y H:i] – creado miguel018:trucos [d/m/Y H:i] (actual) – [¿Fallo en la ROM?] miguel
Línea 33: Línea 33:
 </code> </code>
  
-==== ¿Fallo en la ROM? +==== ¿Fallo en la ROM? ====
- +
-OJO MODIFICAR POTENCIA... +
  
 Todos aquellos que se interesen por las aplicaciones científico-técnicas del Spectrum, utilizándolo como una sofisticada calculadora programable, se habrán topado, en alguna ocasión, con la necesidad de calcuar potencias de números o funciones. Todos aquellos que se interesen por las aplicaciones científico-técnicas del Spectrum, utilizándolo como una sofisticada calculadora programable, se habrán topado, en alguna ocasión, con la necesidad de calcuar potencias de números o funciones.
  
-El problema se presenta cuando queremos calcular potencias de números negativos, expresiones del tipo —32.+El problema se presenta cuando queremos calcular potencias de números negativos, expresiones del tipo —3<sup>2</sup>.
  
-Si intentamos el cálculo en comando directo, nos encontraremos con la sorpresa de que el resultado es 9 (¡) en lugar de +9; para aumentar más aún la confusión, realizando este cálculo en modo programa, normalmente se obtiene un mensaje de error del tipo «argumento no valido», con la consiguiente detención del programa.+Si intentamos el cálculo en comando directo, nos encontraremos con la sorpresa de que el resultado es -9 (¡) en lugar de +9; para aumentar más aún la confusión, realizando este cálculo en modo programa, normalmente se obtiene un mensaje de error del tipo «argumento no valido», con la consiguiente detención del programa.
  
 El programa 1 evidencia este hecho y le permitirá experimentar con los posibles valores de la base (x) y del exponente (y). El programa 2, propone una manera alternativa de solucionar el problema; en líneas generales, realiza lo siguiente: El programa 1 evidencia este hecho y le permitirá experimentar con los posibles valores de la base (x) y del exponente (y). El programa 2, propone una manera alternativa de solucionar el problema; en líneas generales, realiza lo siguiente:
Línea 59: Línea 56:
 5 REM *** PROGRAMA 1 *** 5 REM *** PROGRAMA 1 ***
 10 INPUT x, y 10 INPUT x, y
-20 PRINT x y+20 PRINT x^y
 30 GO TO 10 30 GO TO 10
 </code> </code>
Línea 71: Línea 68:
 20 LET neg = NOT (SGN x + 1) 20 LET neg = NOT (SGN x + 1)
 30 IF neg THEN PRINT PAPER 5; INK 1; FLASH 1;"base negativa,normalmente se ob-tendría Invalid argument": PRINT : LET x = ABS x: LET a$ = str$ (-neg): LET a$ = a$(1) 30 IF neg THEN PRINT PAPER 5; INK 1; FLASH 1;"base negativa,normalmente se ob-tendría Invalid argument": PRINT : LET x = ABS x: LET a$ = str$ (-neg): LET a$ = a$(1)
-40 LET resultado = x y+40 LET resultado = x^y
 50 LET r$ = (a$ (1) and neg) + STR$ resultado 50 LET r$ = (a$ (1) and neg) + STR$ resultado
-60 PRINT "Resultado de x y "; INVERSE 1; r$+60 PRINT "Resultado de x^y "; INVERSE 1; r$
 70 PRINT "Pulsa una tecla": PAUSE 0 70 PRINT "Pulsa una tecla": PAUSE 0
 100 GO TO (7 AND neg) + (10 AND NOT neg) 100 GO TO (7 AND neg) + (10 AND NOT neg)
 </code> </code>
  • 018/trucos.1295050456.txt.gz
  • Última modificación: d/m/Y H:i
  • por miguel