home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / nvdc87 / circle / piedemo.bas < prev   
BASIC Source File  |  1987-06-16  |  1KB  |  59 lines

  1. REM - program PIEDEMO
  2. REM - demonstrates PieChart subroutine
  3.  
  4.       PI=3.141592
  5.       DIM Pie%(10)
  6.  
  7. Again:    
  8.       CLS
  9.       INPUT "HOW MANY CATEGORIES (MAX = 10, 0 TO EXIT)";Pie%(0)
  10.       IF Pie%(0)=0 THEN END
  11.       IF Pie%(0)<2 OR Pie%(0)>10 THEN BEEP : GOTO Again
  12.       Sum=0
  13.  
  14.       FOR I=1 TO (Pie%(0)-1)
  15.         LOCATE I+10,20
  16.         PRINT "ENTER PERCENTAGE FOR CATEGORY ";I;
  17.         INPUT Pie%(I)
  18.         Sum=Sum+Pie%(I)
  19.       NEXT I
  20.  
  21.       IF Sum >= 100 THEN
  22.         CLS
  23.         BEEP
  24.         LOCATE 10,20
  25.         PRINT "PERCENTAGES TOTAL MORE THAN 100 - TRY Again"
  26.         FOR I = 1 TO 1000 : NEXT I
  27.         GOTO Again
  28.       ELSE
  29.         Pie%(Pie%(0))=100-Sum
  30.       END IF
  31.  
  32.       CALL PieChart (Pie%())
  33.  
  34.       GOTO Again
  35.  
  36. REM - subroutine starts here
  37.  
  38. SUB PieChart (Pie%(1))
  39.  
  40. 10    LOCAL XCenter,YCenter,Radius,StartAngle,StopAngle,Counter
  41. 20    SHARED PI
  42.  
  43. 30    XCenter    = 0
  44. 40    YCenter    = 0
  45. 50    Radius     = 160
  46. 60    StartAngle = 0
  47. 70    CLS : SCREEN 2   'Use SCREEN 9 for EGA color; 10 for EGA mono
  48.  
  49. 80    FOR Counter = 1 TO Pie%(0)
  50. 90      StopAngle = StartAngle + Pie%(Counter)*0.02*PI
  51. 100     CIRCLE STEP (XCenter,YCenter),Radius,,StartAngle,-StopAngle
  52. 110     StartAngle = StopAngle
  53. 120   NEXT Counter
  54.  
  55. 130   WHILE NOT INSTAT : WEND
  56. 140   K$ = INKEY$
  57.  
  58. END SUB
  59.