home *** CD-ROM | disk | FTP | other *** search
- REM PLOTS SIN & COS - 1 CYCLE - ON PLOT.DAT
- PLOT$="PLOT.DAT"
- FILE PLOT$
- REM USER FUNCTION FOR X MODULO 2 (0=EVEN, 1=ODD)
- DEF FNEVEN(X)=X-2*INT(X/2)
- REM USER FUNCTION TO A CHAR AT POSITION IN OLD STRING
- DEF FNSTRINGFIX$(OLD$,FIG$,POSITION) = \
- LEFT$(OLD$,POSITION-1) + FIG$ + MID$(OLD$,POSITION+1,1000)
- BAR$="!"
- BLANK$=" "
- DUMMY$=BAR$+BLANK$+BAR$+BLANK$+BAR$
- PRINT # 1;BLANK$+"SINE = * COSINE = +"
- PRINT # 1; " "
- N$=" -1.0 -.8 -.6 -.4 -.2 .0 .2 .4 .6 .8 1.0"
- PRINT # 1;N$
- X$=" "
- FOR I=1 TO 10:X$=X$+"+-----":NEXT I
- X$=X$+"+"
- PRINT # 1;"DEGREES"+X$
-
- REM START CALC LOOP
- PI=3.141597
- PI24=PI/24
- K=-1
- REM RUN FROM 0 TO 360 IN 25 STEPS
- FOR J=0 TO 2*PI+PI24 STEP PI24
- K=K+1
- IF FNEVEN(K) EQ 0 THEN GO TO 10
- START$=" "
- GO TO 20
- 10 START$=" "+STR$(ANGLE+0.001)
- FOR I=1 TO 5
- IF MID$(START$,I,1) EQ "." THEN 30
- NEXT I
- 30 START$=MID$(START$,I-3,3)+" "
- REM GET SIN $ COS
- 20 SINI=30*SIN(J)
- COSI=30*COS(J)
- REM THERE ARE ALWAYS ALIGNMENT & "ROUNDOFF" PROBLEMS IN
- REM PLOTTING ON A TERMINAL. THIS IS AN ATTEMPT TO DEAL WITH IT
- IF SINI LT 0 THEN SINI=SINI+1
- IF COSI LT 0 THEN COSI=COSI+1
- ANGLE=ANGLE+7.5
- REM THE PRIMITIVE INTEGER FIX USED HERE PRINTS 1 INSTEAD OF 0.
- IF K EQ 0 THEN START$=" 0 "
- REM PLACE + THEN * ON LINE OF PLOT
- LINE.TO.PRINT$=FNSTRINGFIX$(DUMMY$,"+",COSI+31)
- LINE.TO.PRINT$=START$+FNSTRINGFIX$(LINE.TO.PRINT$,"*",SINI+31)
- PRINT # 1; LINE.TO.PRINT$
- NEXT J
- PRINT # 1; " "+X$
- PRINT # 1; N$
- PRINT # 1; " "
- PRINT # 1;" PLOT OF SINE & COSINE FUNCTIONS FOR ONE CYCLE"
- CLOSE(1)
-