home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Brotikasten
/
BROTCD01.iso
/
c128
/
c156.d64
/
geosolve
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-08-09
|
11KB
|
426 lines
1 GOTO99
14 V=(4*(null)*(R^3))/3:RETURN
16 R=((3*V)/(4*(null)))^(1/3):RETURN
18 A=4*(null)*R*R:RETURN
20 R=SQR(A/(4*(null))):RETURN
22 PRINT"X-Y COORDINATES OF VERTICES ? Y OR N[146]"
23 GETA$:IFA$<>"Y"ANDA$<>"N"THEN23
24 RETURN
25 PRINT"ANOTHER PROBLEM ? Y OR N[146]"
26 GETA$:IFA$<>"Y"ANDA$<>"N"THEN26
27 RETURN
30 AN=(null)*(N-2)/N:RETURN
32 S=2*R*(COS(AN/2)):RETURN
34 R=S/(2*(COS(AN/2))):RETURN
36 D=R*(SIN(AN/2)):RETURN
37 R=SQR((2*A)/(N*(SIN(AN)))):RETURN
38 A=N*R*R*(SIN(AN))/2:RETURN
39 R=D/(SIN(AN/2)):RETURN
40 S1=H*(SIN(AA)):RETURN
42 S2=H*(COS(AA)):RETURN
44 AB=((null)/2)-AA:RETURN
46 S2=SQR((H*H)-(S1*S1)):RETURN
48 AA=ATN(S1/S2):RETURN
50 H=SQR((S1*S1)+(S2*S2)):RETURN
52 H=S1/SIN(AA):RETURN
54 P=S1+S2+H:RETURN
56 A=(S1*S2)/2:RETURN
60 A=(null)*R*R:RETURN
62 R=SQR(A/(null)):RETURN
64 C=2*R*(null):RETURN
66 R=C/(2*(null)):RETURN
68 A=S1*S2:RETURN
70 S2=A/S1:RETURN
72 S1=(X2-X1):S2=(Y2-Y1):GOSUB50:RETURN
74 AA=ATN((Y2-Y1)/(X2-X1)):RETURN
76 X2=(SIN(AA)*H)+X1:RETURN
78 Y2=(SIN(AA)*H)+Y1:RETURN
80 V=S1^3:RETURN
82 S1=V^(1/3):RETURN
84 SA=6*S1*S1:RETURN
86 LD=S1*(SQR(3)):RETURN
88 SD=S1*(SQR(2)):RETURN
90 V=(null)*R*R*H:RETURN
92 H=V/((null)*R*R):RETURN
94 R=SQR(V/((null)*H)):RETURN
96 S=(null)*D*H:RETURN
98 A=2*(null)*R*(R+H):RETURN
99 L$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
100 POKE53281,3:POKE53280,3:PRINT"[147][144]";
110 PRINT TAB(8);"[164][164][164][164][164][164][164][164]"
120 PRINT TAB(8);"GEOSOLVE[146] BY D. CROOK"
200 PRINT" SELECT THE TYPE OF PROBLEM FROM BELOW:":PRINTL$
210 PRINT"1 - REGULAR POLYGON":PRINT"2 - RIGHT TRIANGLE"
220 PRINT"3 - CIRCLE":PRINT"4 - RECTANGLE"
230 PRINT"5 - TWO POINTS IN A PLANE":PRINT"6 - CUBE"
240 PRINT"7 - CYLINDER":PRINT"8 - SPHERE":PRINT"9 - END PROGRAM"
300 GETZ$:IFZ$=""THEN300
310 Z=VAL(Z$):IFZ=9THENEND
320 ONZGOSUB1110,400,860,1910,2275,2440,2700,3200
330 RUN
400 PRINT"[147]"SPC(12)"RIGHT TRIANGLES":PRINTL$
410 PRINT"ENTER KNOWN QUANTITIES FROM BELOW:"
420 PRINT"1 - HYPOTENUSE/ANGLE":PRINT"2 - SIDE/ANGLE"
430 PRINT"3 - HYPOTENUSE/SIDE":PRINT"4 - TWO SIDES"
440 GETZ$:IFZ$=""THEN440
450 Z=VAL(Z$):ONZGOSUB460,560,660,760
455 RETURN
460 PRINT"[147]SOLUTION OF RIGHT TRIANGLES":PRINTL$
470 PRINT"ENTER LENGTH OF HYPOTENUSE";:INPUTH
480 PRINT"ENTER ANGLE";:INPUTAA:AA=AA*(null)/180
490 GOSUB40:GOSUB42:GOSUB44:GOSUB54:GOSUB56
500 PRINT"LENGTH OF SIDE 1 ="S1
510 PRINT"LENGTH OF SIDE 2 ="S2
520 PRINT" ANGLE ="AB*180/(null)
530 PRINT" AREA ="A
540 PRINT" PERIMETER ="P
545 GOSUB25
550 IFA$="Y"THEN460
555 RETURN
560 PRINT"[147]SOLUTION OF RIGHT TRIANGLES":PRINTL$
570 PRINT"ENTER LENGTH OF ONE SIDE";:INPUTS1
580 PRINT"ENTER ANGLE";:INPUTAA:AA=AA*(null)/180
590 GOSUB52:GOSUB46:GOSUB44:GOSUB54:GOSUB56
600 PRINT"LENGTH OF HYPOTENUSE ="H
610 PRINT" LENGTH OF SIDE 2 ="S2
620 PRINT" ANGLE ="AB*180/(null)
630 PRINT" AREA ="A
640 PRINT" PERIMETER ="P
645 GOSUB25
650 IFA$="Y"THEN560
655 RETURN
660 PRINT"[147]SOLUTION OF RIGHT TRIANGLES":PRINTL$
670 PRINT"ENTER LENGTH OF HYPOTENUSE";:INPUTH
680 PRINT"ENTER LENGTH OF SIDE";:INPUTS1
690 GOSUB46:GOSUB48:GOSUB44:GOSUB54:GOSUB56
700 PRINT"LENGTH OF SIDE 2 ="S2
710 PRINT" ANGLE 1 ="AA*180/(null)
720 PRINT" ANGLE 2 ="AB*180/(null)
730 PRINT" AREA ="A
740 PRINT" PERIMETER ="P
745 GOSUB25
750 IFA$="Y"THEN660
755 RETURN
760 PRINT"[147]SOLUTION OF RIGHT TRIANGLES":PRINTL$
770 PRINT"ENTER LENGTH OF SIDE 1";:INPUTS1
780 PRINT"ENTER LENGTH OF SIDE 2";:INPUTS2
790 GOSUB50:GOSUB48:GOSUB44:GOSUB54:GOSUB56
800 PRINT"LENGTH OF HYPOTENUSE ="H
810 PRINT" ANGLE 1 ="AA*180/(null)
820 PRINT" ANGLE 2 ="AB*180/(null)
830 PRINT" AREA ="A
840 PRINT" PERIMETER ="P
845 GOSUB25
850 IFA$="Y"THEN760
855 RETURN
860 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"SELECT KNOWN QUANTITY FROM BELOW:"
865 PRINT"1 - RADIUS":PRINT"2 - DIAMETER"
870 PRINT"3 - CIRCUMFERENCE":PRINT"4 - AREA"
875 GETZ$:IFZ$=""THEN875
880 Z=VAL(Z$):ONZGOSUB885,930,975,1020
882 RETURN
885 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"ENTER RADIUS";:INPUTR:D=2*R
890 GOSUB60:GOSUB64
895 PRINT" DIAMETER ="D
900 PRINT"CIRCUMFERENCE ="C
910 PRINT" AREA ="A
920 GOSUB25
925 IFA$="Y"THEN885
926 RETURN
930 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"ENTER DIAMETER";:INPUTD:R=D/2
935 GOSUB60:GOSUB64
940 PRINT" RADIUS ="R
945 PRINT"CIRCUMFERENCE ="C
950 PRINT" AREA ="A
955 GOSUB25
960 IFA$="Y"THEN930
965 RETURN
975 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"ENTER CIRCUMFERENCE";:INPUTC
980 GOSUB66:GOSUB60
985 PRINT" RADIUS ="R
990 PRINT" DIAMETER ="R+R
1000 PRINT" AREA ="A
1005 GOSUB25
1010 IFA$="Y"THEN975
1015 RETURN
1020 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"ENTER AREA";:INPUTA
1025 GOSUB62:GOSUB64
1030 PRINT" RADIUS ="R
1035 PRINT" DIAMETER ="R+R
1040 PRINT"CIRCUMFERENCE ="C
1045 GOSUB25
1050 IFA$="Y"THEN1020
1065 RETURN
1110 PRINT"[147]"SPC(12)"REGULAR POLYGONS":PRINTL$
1120 PRINT"ENTER THE NUMBER OF SIDES";:INPUTN:PRINT:IFN<3THEN1110
1130 PRINT"ENTER THE KNOWN QUANTITY FROM BELOW":PRINT
1140 PRINT"1 - LENGTH OF SIDE":PRINT"2 - MINOR RADIUS"
1145 PRINT"3 - MAJOR RADIUS":PRINT"4 - AREA"
1150 GETZ$:IFZ$=""THEN1150
1155 Z=VAL(Z$):IFZ=9THENEND
1160 ONZGOSUB1200,1300,1400,1500
1170 RETURN
1200 PRINT"[147]REGULAR POLYGON WITH"N"SIDES":PRINTL$
1210 PRINT"LENGTH OF SIDE";:INPUTS
1220 GOSUB30:GOSUB34:GOSUB36:GOSUB38
1230 PRINT"MAJOR RADIUS ="R
1240 PRINT"MINOR RADIUS ="D
1250 PRINT" AREA ="A
1255 PRINT"ANGLE BETWEEN TWO SIDES ="AN*180/(null)
1258 PRINT" CENTER ANGLE ="360/N
1260 GOSUB22:IFA$="Y"THENGOSUB1600
1270 GOSUB25
1280 IFA$="Y"THEN1200
1290 RETURN
1300 PRINT"[147]REGULAR POLYGON WITH"N"SIDES":PRINTL$
1310 PRINT"MINOR RADIUS =";:INPUTD
1320 GOSUB30:GOSUB39:GOSUB32:GOSUB38
1330 PRINT"MAJOR RADIUS ="R
1340 PRINT" SIDE ="S
1350 PRINT" AREA ="A
1355 PRINT"ANGLE BETWEEN TWO SIDES ="AN*180/(null)
1358 PRINT" CENTER ANGLE ="360/N
1360 GOSUB22:IFA$="Y"THENGOSUB1600
1370 GOSUB25
1380 IFA$="Y"THEN1300
1390 RETURN
1400 PRINT"[147]REGULAR POLYGON WITH"N"SIDES":PRINTL$
1410 PRINT"MAJOR RADIUS =";:INPUTR
1420 GOSUB30:GOSUB32:GOSUB36:GOSUB38
1430 PRINT"MINOR RADIUS ="D
1440 PRINT" SIDE ="S
1450 PRINT" AREA ="A
1455 PRINT"ANGLE BETWEEN TWO SIDES ="AN*180/(null)
1458 PRINT" CENTER ANGLE ="360/N
1460 GOSUB22:IFA$="Y"THENGOSUB1600
1470 GOSUB25
1480 IFA$="Y"THEN1400
1490 RETURN
1500 PRINT"[147]REGULAR POLYGON WITH"N"SIDES":PRINTL$
1510 PRINT" AREA =";:INPUTA
1520 GOSUB30:GOSUB37:GOSUB32:GOSUB36
1530 PRINT"MINOR RADIUS ="D
1540 PRINT"MAJOR RADIUS ="R
1550 PRINT" SIDE ="S
1555 PRINT"ANGLE BETWEEN TWO SIDES ="AN*180/(null)
1558 PRINT" CENTER ANGLE ="360/N
1560 GOSUB22:IFA$="Y"THENGOSUB1600
1570 GOSUB25
1580 IFA$="Y"THEN1500
1590 RETURN
1600 PRINT"[147]"SPC(10)"POLYGON WITH"N"SIDES"
1610 PRINT" X-Y COORDINATES OF VERTICES"
1620 PRINT"SELECT ORIENTATION TO X/Y-AXIS :"
1630 PRINT"1 - VERTEX TO LIE ON +X-AXIS"
1640 PRINT"2 - VERTEX TO LIE ON -X-AXIS"
1650 PRINT"3 - VERTEX TO LIE ON +Y-AXIS"
1660 PRINT"4 - VERTEX TO LIE ON -Y-AXIS"
1670 PRINT"5 - +X-AXIS TO BISECT SIDE"
1680 PRINT"6 - -X-AXIS TO BISECT SIDE"
1690 PRINT"7 - +Y-AXIS TO BISECT SIDE"
1700 PRINT"8 - -Y-AXIS TO BISECT SIDE"
1710 PRINT"9 - VERTEX TO BE LOCATED (X)-DEGREES FROM +X-AXIS"
1720 GETZ$:IFZ$=""THEN1720
1730 Z=VAL(Z$):ONZGOSUB1750,1760,1770,1780,1790,1800,1810,1820,1830
1740 GOTO1850
1750 AD=0:RETURN
1760 AD=-(null):RETURN
1770 AD=(null)/2:RETURN
1780 AD=-(null)/2:RETURN
1790 AD=(null)/N:RETURN
1800 AD=(null)/N+(null):RETURN
1810 AD=(null)/N+(null)/2:RETURN
1820 AD=(null)/N-(null)/2:RETURN
1830 PRINT"[147]HOW MANY DEGREES FROM +X-AXIS SHOULD FIRST VERTEX LIE";:INPUTAD
1835 AD=AD*(null)/180:RETURN
1850 PRINT"[147]X-Y COORDINATES OF"N"SIDED POLYGON":PRINT:PRINTSPC(13)"X"TAB(24)"Y"
1855 PRINTTAB(10)"[192][192][192][