home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib27b.dsk / PRINT.SCI.NOTE.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  52 lines

  1. 10  REM  ***********************
  2. 20  REM  *   PRINT.SCI.NOTE    *
  3. 30  REM  *  BY GEORGE W. GOTH  *
  4. 40  REM  * COPYRIGHT (C) 1986  *
  5. 50  REM  * BY MICROSPARC, INC. *
  6. 60  REM  * CONCORD, MA  01742  *
  7. 70  REM  ***********************
  8. 80  ONERR  GOTO 120
  9. 90  HOME : HTAB 3: PRINT "PRINT USING SCIENTIFIC NOTATION DEMO"
  10. 110  POKE 34,4
  11. 120  HOME : VTAB 5: HTAB 3: INPUT "ENTER THE NUMBER: ";X
  12. 130  VTAB 7: CALL  -958: VTAB 7: HTAB 3: INPUT "ENTER NUMBER OF SIG FIGS: ";P$:P =  VAL(P$)
  13. 140  IF P > = 1  AND P < = 9  THEN  GOTO 190
  14. 150  VTAB 7: INVERSE : PRINT "                                           ";: REM  43 SPACES
  15. 160  PRINT "NUMBER OF SIG FIGS MUST BE BETWEEN                  ";: REM  18 SPACES AFTER BETWEEN
  16. 170  PRINT "1 AND 9                   ": REM  19 SPACES AFTER 9
  17. 180  VTAB 21: HTAB 1: NORMAL : PRINT "PRESS <RETURN> TO CONTINUE";: GET Z$: PRINT : GOTO 130
  18. 190  GOSUB 260
  19. 200 NC$ =  STR$(NC): VTAB 10: HTAB (20 -( LEN(Y$) + LEN(NC$) +5)/2): PRINT Y$;" "; CHR$(120);" 10";: VTAB  PEEK(37): HTAB  PEEK(36) +1: PRINT NC
  20. 210  VTAB 14: HTAB 2: PRINT "DO YOU WISH TO ENTER ANOTHER NUMBER": VTAB 16: HTAB 18: PRINT "<";: INVERSE : PRINT "Y";: NORMAL : PRINT ">ES": VTAB 18: HTAB 18: PRINT "<";: INVERSE : PRINT "N";: NORMAL : PRINT ">O"
  21. 220  VTAB 20: HTAB 8: PRINT "PLEASE ENTER A LETTER < >";: HTAB  PEEK(36) -1: GET T$: PRINT T$
  22. 230  IF T$ = "Y"  OR T$ =  CHR$(221) GOTO 120
  23. 240  IF T$ = "N"  OR T$ =  CHR$(110)  THEN  POKE 34,0: HOME : VTAB 23: PRINT "] END DEMO": VTAB  PEEK(37) -1: END 
  24. 250  PRINT  CHR$(7): GOTO 220
  25. 260  REM 
  26. 270  REM  PRINT USING EXPONENTIAL NOTATION
  27. 280  REM  ENTER WITH: X (THE NUMBER TO BE EXPRESSED)
  28. 290  REM              P (NUMBER OF SIGNIFICANT FIGURES IN ANSWER)
  29. 300  REM 
  30. 310  REM  RETURNS  Y$ (NUMBER TRUNCATED TO CORRECT NUMBER OF SIG FIGS)
  31. 320  REM           NC (VALUE OF THE EXPONENT)
  32. 330  REM  USES DUMMY VARIABLES X$, X1 AND R
  33. 340  REM 
  34. 350  IF X = 0  THEN Y$ = "0.": IF P >1  THEN  FOR I = 1 TO P -1:Y$ = Y$ +"0": NEXT :NC = 0: RETURN 
  35. 360  IF X = 0  THEN NC = 0: RETURN 
  36. 370  IF X = 1  THEN Y$ = "1.": IF P >1  THEN  FOR I = 1 TO P -1:Y$ = Y$ +"0": NEXT :NC = 0: RETURN 
  37. 380  IF X = 1  THEN NC = 0: RETURN 
  38. 390  IF X =  -1  THEN Y$ = "-1.": IF P >1  THEN  FOR I = 1 TO P -1:Y$ = Y$ +"0": NEXT :NC = 0: RETURN 
  39. 400  IF X =  -1  THEN NC = 0: RETURN 
  40. 410 X1 =  ABS(X):NC = 0
  41. 420  IF X1 <9.99999999  THEN X1 = X1 *10:NC = NC -1: GOTO 420
  42. 430  IF X1 =  >10  THEN X1 = X1/10:NC = NC +1: GOTO 430
  43. 440 X$ =  STR$(X1): IF  LEN(X$) < = P  THEN  IF  MID$ (X$,2,1) < >"."  THEN X$ = X$ +".": FOR I = 1 TO P -1:X$ = X$ +"0":NETXI: GOTO 460
  44. 450 X$ =  STR$(X1): IF  LEN(X$) < = P  THEN  FOR I = 1 TO P -1:X$ = X$ +"0": NEXT I
  45. 460 Y$ =  MID$ (X$,1,P +1): IF Y$ = "10."  THEN Y$ =  MID$ (X$,1,4)
  46. 470 R = 1: IF ( VAL(X$) - VAL(Y$)) > = 5/10 ^P  THEN R = 2: REM  R=1 DO NOT ROUND UP, R=2 ROUND UP
  47. 480  ON R GOTO 520,490
  48. 490 X1 =  VAL(Y$) +1/10 ^(P -1)
  49. 500  IF X1 = 10  THEN X1 = 1:NC = NC +1
  50. 510  GOTO 440
  51. 520  IF X <0  THEN Y$ = "-" +Y$
  52. 530  RETURN