Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Verniero - VERNIERO.BAS

VERNIERO.BAS

Caricato da: Poggi Marco
Scarica il programma completo

  1. DECLARE SUB menu ()
  2. DECLARE SUB pausa (fr AS STRING, x AS INTEGER, y AS INTEGER, colore AS INTEGER)
  3. DECLARE SUB scala (y0 AS INTEGER)
  4. DECLARE SUB nonio (x0 AS INTEGER, y0 AS INTEGER, stato AS INTEGER)
  5. DECLARE FUNCTION tasto$ ()
  6. DECLARE SUB IndicaPasso (fr AS STRING, p AS SINGLE, x AS INTEGER, y AS INTEGER, c AS INTEGER)
  7. SCREEN 12
  8. CLS
  9. CONST t = 360: REM costante terra
  10. DIM x AS INTEGER
  11. DIM p AS INTEGER
  12. CALL scala(t)
  13. p = 1
  14. x = 50
  15. CALL IndicaPasso("Quota -> ", x / 10!, 15, 14, 7)
  16. CALL nonio(x, t, 1)
  17. CALL IndicaPasso("Passo -> ", .1, 15, 12, 7)
  18. CALL menu
  19. WHILE 1
  20.     SELECT CASE UCASE$(tasto$)
  21.         CASE "+"
  22.             CALL nonio(x, t, 0)
  23.             x = ABS(x + p) MOD 449
  24.             CALL IndicaPasso("Quota -> ", x / 10!, 15, 14, 7)
  25.             CALL nonio(x, t, 1)
  26.         CASE "-"
  27.             CALL nonio(x, t, 0)
  28.             x = ABS(x - p) MOD 449
  29.             CALL IndicaPasso("Quota -> ", x / 10!, 15, 14, 5)
  30.             CALL nonio(x, t, 1)
  31.         CASE "Z"
  32.             p = 1
  33.             CALL IndicaPasso("Passo -> ", p / 10!, 15, 12, 7)
  34.         CASE "X"
  35.             p = 10
  36.             CALL IndicaPasso("Passo -> ", p / 10!, 15, 12, 7)
  37.         CASE "C"
  38.             p = 100
  39.             CALL IndicaPasso("Passo -> ", p / 10!, 15, 12, 7)
  40.         CASE "Q"
  41.             CALL pausa("Fine del programma... ", 1, 26, 4)
  42.             END
  43.     END SELECT
  44. WEND
  45.  
  46. SUB IndicaPasso (fr AS STRING, p AS SINGLE, x AS INTEGER, y AS INTEGER, c AS INTEGER)
  47. LOCATE y, x
  48. COLOR (c)
  49. PRINT "                                         "
  50. LOCATE y, x
  51. PRINT fr; p
  52. END SUB
  53.  
  54. SUB menu
  55.   LOCATE 2, 45
  56.   COLOR 8
  57.   PRINT "Menu"
  58.   COLOR 7
  59.   LOCATE 4, 45
  60.   PRINT "+ -> Avanzamento del cursore"
  61.   LOCATE 5, 45
  62.   PRINT "- -> Arretramento del cursore"
  63.   LOCATE 6, 45
  64.   PRINT "z -> Imposta il passo a 0,1"
  65.   LOCATE 7, 45
  66.   PRINT "x -> Imposta il passo a 1"
  67.   LOCATE 8, 45
  68.   PRINT "c -> Imposta il passo a 10"
  69.   LOCATE 9, 45
  70.   PRINT "q -> Uscita"
  71. END SUB
  72.  
  73. SUB nonio (x0 AS INTEGER, y0 AS INTEGER, stato AS INTEGER)
  74. DIM x, i, l, colore AS INTEGER
  75. i = 0
  76. k! = 190! / 10!
  77. WHILE i <= 10
  78.     x = x0 + i * k!
  79.     IF i MOD 5 THEN
  80.         l = 8
  81.         colore = stato * 7
  82.     ELSE
  83.         l = 15
  84.         colore = stato * 3
  85.     END IF
  86.     LINE (x, t)-(x, t - l), colore
  87.     i = i + 1
  88. WEND
  89. END SUB
  90.  
  91. SUB pausa (fr AS STRING, x AS INTEGER, y AS INTEGER, colore AS INTEGER)
  92.   LOCATE y, x
  93.   COLOR colore
  94.   PRINT fr;
  95.   SLEEP
  96.   COLOR 7
  97. END SUB
  98.  
  99. SUB scala (y0 AS INTEGER)
  100. DIM x, l, colore AS INTEGER
  101. x = 0
  102. l = 0
  103. colore = 0
  104. WHILE x < 640
  105.     IF x MOD 100 = 0 THEN
  106.         l = 15
  107.         colore = 3
  108.     ELSE
  109.         colore = 7
  110.         l = 8
  111.     END IF
  112.     LINE (x, t)-(x, t + l), colore
  113.     x = x + 10
  114. WEND
  115. END SUB
  116.  
  117. FUNCTION tasto$
  118. DIM s AS STRING
  119. s = ""
  120. DO
  121.     SLEEP
  122.     s = INKEY$
  123. LOOP WHILE s = ""
  124. tasto$ = s
  125. END FUNCTION