home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
compuserve
/
Basic
/
SHAPES.EXB
< prev
next >
Wrap
Text File
|
2006-10-19
|
12KB
|
224 lines
100 REM COPYRIGHT 1984 MARTIN KROLL JR
110 ON WARNING NEXT
120 GOSUB 270
130 CALL CHAR(94,"186699A1A1996618")
140 MSG$=RPT$(" ",28)&"GEOMETRIC SHAPES & FORMULAS" :: FOR X=1 TO 2 :: FOR DE=1
TO LEN(MSG$)
150 DISPLAY AT(5,1):SEG$(MSG$,DE,28):: IF X=2 AND DE=28 THEN 170
160 NEXT DE :: NEXT X
170 DISPLAY AT(20,7):"MARTIN KROLL, JR": :"9 PITTSBURGH, PA": :TAB(12);"^ 1
984"
180 FOR DE=1 TO 1500 :: NEXT DE :: CALL CLEAR :: CALL DELSPRITE(ALL):: FOR CO=1
TO 8 :: CALL COLOR(CO,2,1):: NEXT CO :: GOSUB 380
190 GOSUB 410 :: GOSUB 500 :: GOSUB 540
200 IF CH=10 OR CH=11 THEN CALL CHAR(94,"3C041C043C")ELSE CALL CHAR(94,"3C040C10
3C")
210 ON CH GOSUB 690,700,710,720,730,750,760,780,800,820,830,840,860,870,880
220 DISPLAY AT(20,1):M$&" =";Z :: DISPLAY AT(24,1):"ANOTHER "&M$ :: DISPLAY AT(2
4,24):"(Y/N)"
230 ACCEPT AT(24,25)VALIDATE("YN")BEEP SIZE(-1):AN$ :: IF AN$="Y" THEN 210
240 DISPLAY AT(24,1):"ANOTHER FORMULA (Y/N) " :: ACCEPT AT(24,19)VALIDATE(
"YN")BEEP SIZE(-1):AN$ :: IF AN$="Y" THEN 190
250 GOSUB 270 :: DISPLAY AT(8,8):"T H E E N D" :: FOR DE=1 TO 1500 :: NEXT DE
:: STOP
260 REM SPRITE CHAR
270 CALL CLEAR :: CALL SCREEN(2):: CALL MAGNIFY(4)
280 CALL CHAR(96,"FF"&RPT$("80",9)&"FF0000000000FF"&RPT$("01",9)&"FF")
290 CALL CHAR(100,"040A0910102020404080FF"&RPT$("0",16)&"80402010080402FF")
300 CALL CHAR(104,"FF"&RPT$("80",14)&"FFFF"&RPT$("01",14)&"FF")
310 CALL CHAR(108,"01020408102040FF"&RPT$("0",16)&"F8080404020201FF0")
320 CALL CHAR(112,"0102040810204080FF818181818181FFFF030509112141810102040810204
080")
330 CALL CHAR(116,"07182040408080808080804040201807E0180402020101010101010202041
8E0")
340 CALL SPRITE(#1,96,8,113,129,12,17,#2,100,5,32,78,30,-69,#3,104,9,120,36,-40,
11,#4,108,13,90,14,-15,-36)
350 CALL SPRITE(#5,112,11,80,45,0,14,#6,116,14,87,34,-7,0)
360 FOR CO=1 TO 8 :: CALL COLOR(CO,16,1):: NEXT CO :: RETURN
370 REM PERM DEFINE
380 READ X,C$ :: CALL CHAR(X,C$):: IF X<>93 THEN 380
390 FOR X=95 TO 110 :: READ C$ :: CALL CHAR(X,C$):: NEXT X :: RETURN
400 REM MENU
410 RESTORE 1060 :: CALL CLEAR :: CALL SCREEN(2):: DISPLAY AT(2,9):"YOUR CHOICE"
420 X=5 :: FOR CH=1 TO 15 :: READ M$,SHAPE$ :: DISPLAY AT(X,1):STR$(CH);TAB(4);M
$;" OF ";SEG$(SHAPE$,1,11):: X=X+1
430 IF LEN(SHAPE$)>11 THEN DISPLAY AT(X,5):SEG$(SHAPE$,13,7):: X=X+1
440 NEXT CH
450 DISPLAY AT(24,1):"ENTER THE NUMBER (1-15) 7"
460 CALL SCREEN(8):: ACCEPT AT(24,25)VALIDATE(NUMERIC)BEEP SIZE(-2):CH :: IF CH<
1 OR CH>15 THEN 460
470 RESTORE 1060 :: FOR CH=0 TO CH-1 :: READ M$,SHAPE$ :: NEXT CH
480 CALL CLEAR :: MSG$=M$&" - "&SHAPE$ :: L=(28-LEN(MSG$))/2+1 :: DISPLAY AT(1,L
):MSG$ :: RETURN
490 REM CHAR_DEFINE
500 IF CH<7 THEN CALL SCREEN(4)ELSE IF CH<13 THEN CALL SCREEN(12)ELSE CALL SCREE
N(15)
510 X=111 :: IF CH=8 THEN RESTORE 1080 ELSE IF (CH+1)/4-INT((CH+1)/4)<.5 THEN RE
STORE 1130 ELSE RESTORE 1170 :: X=134
520 FOR X=X TO 143 :: READ C$ :: CALL CHAR(X,C$):: NEXT X :: RETURN
530 REM DRAW
540 ON CH GOSUB 570,580,590,600,610,620,630,640,650,660,600,670,570,580,590
550 READ R1,R2,C1,C2 :: FOR R=R1 TO R2 :: FOR C=C1 TO C2 :: READ X :: IF X=-1 TH
EN RETURN ELSE IF X=0 THEN READ C :: GOTO 560 ELSE CALL HCHAR(R,C,X)
560 NEXT C :: NEXT R :: RETURN
570 RESTORE 1190 :: RETURN !SQUARE
580 RESTORE 1210 :: RETURN !RECTANGLE
590 RESTORE 1250 :: RETURN !CIRCLE
600 RESTORE 1280 :: RETURN !SPHERE
610 RESTORE 1310 :: RETURN !TRAPEZOID
620 RESTORE 1340 :: RETURN !TRIANGLE
630 RESTORE 1370 :: RETURN !CONE
640 RESTORE 1400 :: RETURN !RECT PYRAMID
650 RESTORE 1430 :: RETURN !RECT PRISM
660 RESTORE 1500 :: RETURN !CUBE
670 RESTORE 1540 :: RETURN !CYLINDER
680 REM FORMULAS
690 DISPLAY AT(6,13):"A = S^" :: GOSUB 940 :: Z=S^2 :: RETURN
700 DISPLAY AT(7,13):"A = W*L" :: GOSUB 960 :: Z=W*L :: RETURN
710 DISPLAY AT(7,13):"1 A=?*(D/2)^" :: DISPLAY AT(9,13):"2 A=?*R^" :: GOSUB 900
:: Z=PI*R^2 :: RETURN
720 DISPLAY AT(7,13):"1 A=4*?*(D/2)^" :: DISPLAY AT(9,13):"2 A=4*?*R^" :: GOSUB
900 :: Z=4*PI*R^2 :: RETURN
730 DISPLAY AT(4,13):"A=(C+B)/2*H" :: DISPLAY AT(8,13):"SIDE C = " :: GOSUB
990 :: ACCEPT AT(8,22)VALIDATE(NUMERIC)BEEP SIZE(-8):C
740 Z=(B+C)/2*H :: RETURN
750 DISPLAY AT(4,13):"A=(B*H)/2" :: GOSUB 990 :: Z=B*H/2 :: RETURN
760 DISPLAY AT(7,13):"1 V=?*(D/2)^"&"*H/3" :: DISPLAY AT(9,13):"2 V=?*R^"&"*H/3"
:: DISPLAY AT(14,13):"HEIGHT = "
770 GOSUB 900 :: ACCEPT AT(14,22)VALIDATE(NUMERIC)BEEP SIZE(-7):H :: Z=PI*R^2*H/
3 :: RETURN
780 DISPLAY AT(6,13):"V=L*W*H/3" :: DISPLAY AT(13,13):"HEIGHT = " :: GOSU
B 960
790 ACCEPT AT(13,22)VALIDATE(NUMERIC)BEEP SIZE(-7):H :: Z=L*W*H/3 :: RETURN
800 DISPLAY AT(6,13):"V=W*L*D" :: DISPLAY AT(13,13):"DEPTH = " :: GOSUB 960
810 ACCEPT AT(13,21)VALIDATE(NUMERIC)BEEP SIZE(-10):D :: Z=W*D*L :: RETURN
820 DISPLAY AT(6,13):"V=S^" :: GOSUB 940 :: Z=S^3 :: RETURN
830 DISPLAY AT(7,13):"1 V=4/3*?*(D/2)^" :: DISPLAY AT(9,13):"2 V=4/3*?*R^" :: GO
SUB 900 :: Z=4/3*PI*R^3 :: RETURN
840 DISPLAY AT(7,13):"1 V=?*(D/2)^"&"*H" :: DISPLAY AT(9,13):"2 V=?*R^"&"*H" ::
DISPLAY AT(14,13):"HEIGHT = "
850 GOSUB 900 :: ACCEPT AT(14,22)VALIDATE(NUMERIC)BEEP SIZE(-7):H :: Z=H*PI*R^2
:: RETURN
860 DISPLAY AT(6,13):"P = 4 * S" :: GOSUB 940 :: Z=4*S :: RETURN
870 DISPLAY AT(7,13):"P = 2*W + 2*L" :: GOSUB 960 :: Z=2*(W+L):: RETURN
880 DISPLAY AT(7,13):"1 C=?*D" :: DISPLAY AT(9,13):"2 C=?*R*2" :: GOSUB 900 :: Z
=R*2*PI :: RETURN
890 REM PICK R OR D
900 DISPLAY AT(5,14):"FORMULAS" :: DISPLAY AT(12,13):"FORMULA 1 OR 2" :: ACCEPT
AT(12,26)VALIDATE("12")BEEP SIZE(-1):PK
910 IF PK=2 THEN DISPLAY AT(12,13):"RADIUS = " :: ON WARNING NEXT :: ACCEP
T AT(12,22)VALIDATE(NUMERIC)BEEP SIZE(-7):R :: RETURN
920 DISPLAY AT(12,13):"DIAMETER = " :: ACCEPT AT(12,24)VALIDATE(NUMERIC)BEE
P SIZE(-5):D :: R=D/2 :: RETURN
930 REM SIDE
940 DISPLAY AT(8,13):"SIDE = " :: ACCEPT AT(8,20)VALIDATE(NUMERIC)BEEP SIZE(-10
):S :: RETURN
950 REM W_L
960 DISPLAY AT(9,13):"WIDTH = " :: DISPLAY AT(11,13):"LENGTH = "
970 ACCEPT AT(9,21)VALIDATE(NUMERIC)BEEP SIZE(-10):W :: ACCEPT AT(11,22)VALIDATE
(NUMERIC)BEEP SIZE(-10):L :: RETURN
980 REM B_H
990 DISPLAY AT(6,13):"BASE = " :: DISPLAY AT(7,13):"HEIGHT = "
1000 ACCEPT AT(6,20)VALIDATE(NUMERIC)BEEP SIZE(-10):B :: ACCEPT AT(7,22)VALIDATE
(NUMERIC)BEEP SIZE(-7):H :: RETURN
1010 DATA 33,00000000000000FFFF,35,00000000FF,36,101010101010101,37,010102020404
0808,38,101020204040808
1020 DATA 39,808040402020101,42,0000004428102844,44,0808040402020101,58,01020408
1020408,59,00102040FF40201,60,8181424224241818
1030 DATA 62,00000000FF103854,63,007FA42424242424,64,001000100010001,91,10001000
100010FF,92,0101010101010101,93,808080808080808
1040 DATA 6018040202041CE8,0000000000000102,0000010618608,033CC,FF1038549210101,
C03C03,00008060180601,000000000000804,04081020408
1050 DATA 201008040201,020404080810102,4020201010080804,202040404040808,04040202
02020101,808890A0FFA09088,01110905FF050911
1060 DATA AREA,SQUARE,AREA,RECTANGLE,AREA,CIRCLE,AREA,SPHERE,AREA,TRAPEZOID,AREA
,TRIANGLE,VOLUME,CONE,VOLUME,RECTANGULAR PYRAMID
1070 DATA VOLUME,RECTANGULAR PRISM,VOLUME,CUBE,VOLUME,SPHERE,VOLUME,CYLINDER,PER
IMETER,SQUARE,PERIMETER,RECTANGLE,CIRCUMFERENCE,CIRCLE
1080 DATA 010103030506070A,80C0A06050484424,1B1215242544455,2221101010100808,000
0804040201008,0000010102020404,898809081110111
1090 DATA 0804040404020202,04040201,000000008040402,080810101020204,102424242724
4444,01414141C040404,000000008080804,100804040201
1100 DATA 000000000000804,0000000001010202,4080808,414040808180818,4040402020201
01,4020100804040201,020404080808101
1110 DATA FF00010009040301,FF00000020408,FF10080808040404,FF0204081020408,212224
4850A0C0FF,04020202010101FF,00080402FF020408
1120 DATA 0000000000040404,0405050290A0C0F,0F0305090040404,4040408
1130 DATA 808040404040202,0101020202020404,2010100808040402,0408081010202040,020
1,0000804020100804,000001020408102,408,008060180601
1140 DATA 0000000000C03C03,0000000000033CC0,00010618608,92543810FF,0000000007186
08,00000FF,037C8,FF0010101010101,C03E01,0000F00F
1150 DATA 00000000E0180601,80601807,00000000F00F,0000000000807C03,06182040402038
17,0000000000013EC,000000000FF,010618E
1160 DATA 2020404040408081,0404020202020181,8698A0C0C0A09886,6119050303051961,81
8040404040202,8101020202020404
1170 DATA FF01010101010101,FF8080808080808,80808080808080FF,00080402FF020408,103
854921010101,01010101010101FF,1010101092543810
1180 DATA 0F0305091020408,0102040890A0C0F,8040201008040201
1190 DATA 6,13,3,8,135,34,34,34,34,134,93,0,7,92,93,0,7,92,93,0,7,92,136,33,33,3
3,33,139,0,8,59,35,83
1200 DATA 35,35,137,-1
1210 DATA 6,18,3,10,135,34,34,34,34,134,32,138,93,0,7,92,32,36,93,0,7,92,32,36,9
3,0,7,92,32,36
1220 DATA 93,0,7,92,32,36,93,0,7,92,32,76,93,0,7,92,32,32
1230 DATA 93,0,7,92,32,36,93,0,7,92,32,36,93,0,7,92,32,36
1240 DATA 136,33,33,33,33,139,32,140,0,10,59,35,87,35,35,137,-1
1250 DATA 3,11,4,12,32,96,97,98,99,100,101,102,32,96,103,32,32,36,32,32,104,102,
105,0,7,82,0,11,106
1260 DATA 107,0,7,36,0,11,108,109,35,35,35,123,35,68,35,110,111,0,11,112,113,0,1
1,114,115,116,0,10,117,118
1270 DATA 32,115,119,120,33,121,122,118,-1
1280 DATA 3,11,4,12,32,96,97,98,99,100,101,102,32,96,103,32,32,82,32,32,104,102,
105,0,7,36,0,11,106,138
1290 DATA 124,125,126,127,128,129,130,139,140,35,35,35,123,35,68,35,141,142,131,
132,133,33,135,136,137,143
1300 DATA 113,0,11,114,115,116,0,10,117,118,32,115,119,120,33,121,122,118,-1
1310 DATA 5,13,2,14,0,4,59,35,67,35,35,137,0,14,0,14,138,32,37,34,34,34,34,34,34
,143,0,14
1320 DATA 72,32,38,0,11,143,32,32,36,37,0,12,143,32,140,38,0,13,143,32,34,34,34,
34,34,34,34,34,34,34
1330 DATA 34,34,0,14,32,59,35,35,35,35,66,35,35,35,35,35,137,-1
1340 DATA 3,13,2,14,138,0,5,37,143,0,14,36,0,5,38,32,143,0,14,36,32,32,37,0,8,14
3,0,14,72,32,32,38
1350 DATA 0,9,143,0,14,36,32,37,0,10,143,0,14,36,32,38,0,11,143,32,32,36,37,0,12
,143,32,140,38,0
1360 DATA 13,143,32,34,34,34,34,34,34,34,34,34,34,34,34,0,14,32,59,35,35,66,35,3
5,35,35,35,35,35,137,-1
1370 DATA 6,15,4,12,32,124,125,126,34,128,129,130,32,134,35,35,35,62,35,68,35,95
,44,131,132,133,91
1380 DATA 135,136,137,38,32,39,32,32,64,32,32,37,32,32,44,32,32,64,32,32,38,32,3
2,32,39,32,72,32,37
1390 DATA 32,32,32,32,44,32,64,32,38,32,32,0,6,39,64,37,0,12,0,6,44,64,38,0,12,0
,7,60,-1
1400 DATA 3,11,3,10,32,32,111,112,0,10,32,32,113,114,115,0,10,32,116,117,118,119
,120,32,32,32,121,122,123
1410 DATA 124,125,126,32,127,128,129,32,130,32,131,32,132,58,133,134,135,34,136,
32,137,33,33,33
1420 DATA 138,58,140,142,0,8,141,143,59,35,76,35,139,-1
1430 DATA 2,18,2,12,0,5,33,33,33,33,33,33,32,0,4,58,0,10,58,93,0,3,58,0,9,58,32,
93,32,58,0,8,58
1440 DATA 0,11,93,138,135,34,34,34,34,134,0,11,93,36,93,0,7,92,0,11,93
1450 DATA 36,93,0,7,92,0,11,93,36,93,0,7,92,0,11,93
1460 DATA 36,93,0,7,92,0,11,93,76,93,0,7,92,0,11,93
1470 DATA 36,93,0,7,92,0,11,93,36,93,0,7,92,0,11,93
1480 DATA 36,93,0,7,92,0,10,58,32,36,93,0,7,92,32,58,32,141,140,136,33,33,33,33,
139,58,32,68,32,0
1490 DATA 9,142,0,12,32,59,35,87,35,35,137,-1
1500 DATA 2,13,3,12,0,5,33,33,33,33,33,33,32,32,32,58,0,10,58,93,32,58,0,9,58,32
,93
1510 DATA 58,0,8,58,0,11,93,135,34,34,34,34,134,0,11,93,93,0,7,92,0,11,93,93,0,7
,92,0,11,93
1520 DATA 93,0,7,92,0,10,58,32,93,0,7,92,32,58,32,32,136,33,33,33,33,139,58,0,12
,0,12,59,35
1530 DATA 83,35,35,137,-1
1540 DATA 3,18,2,13,0,4,96,97,98,99,100,101,102,32,32,0,3,96,103,0,7,36,0,10,104
,102,32,0,3,105
1550 DATA 0,7,82,0,11,106,32,0,3,107,0,7,36,0,11,108,32,99,92,109,35,35,35,123,3
5,68,35,110,93
1560 DATA 36,92,111,0,11,112,93,36,92,113,0,11,114,93,72,92,115,116,0,10,117,118
,93,36,92,32,115
1570 DATA 119,120,33,121,122,118,32,93,36,92,0,12,93,36,92,0,12,93,123
1580 DATA 92,93,0,11,92,93,0,3,111,0,11,112,32,0,3,113,0,11,114,32,0,3,115,116,0
,10,117,118,32
1590 DATA 0,4,115,119,120,33,121,122,118,-1