Tom Wood’s ZX Data Finder and Strength of Materials on one tape.
Source Code
5 REM **STROMAT** 7 PRINT "% % % % STRENGTH OF MATERIALS % % % % % " 8 PRINT "% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % " 10 PRINT "% % % % % % % % % SHAPE TABLE % % % % % % % % % % " 11 PRINT 12 PRINT 13 PRINT " 1 % SQ/RECT SOLID" 14 PRINT " 2 O SQ/RECT TUBE" 16 PRINT " 3 * ROUND SOLID" 18 PRINT " 4 O ROUND TUBE" 20 PRINT " 5 I SECTION" 22 PRINT " 6 H SECTION" 24 PRINT " 7 C SECTION" 26 PRINT " 8 L SECTION" 28 PRINT " 9 V SECTION (INVERTED)" 30 PRINT " 10 T SECTION" 32 PRINT " 11 + SECTION" 40 PRINT 45 PRINT 50 PRINT "ENTER APPROPRIATE SHAPE CODE" 55 INPUT N 60 CLS 65 IF N>11 THEN LET N=19 70 GOTO N*100 100 PRINT "% % % SQUARE/RECTANGULAR SOLID % % % " 104 PRINT 106 PRINT "\ .\..\..\..\..\..\. ----*-" 108 PRINT "\ :% % % % % \: : LOAD" 110 PRINT "\ :% % % % % \: : \: " 112 PRINT "\ :% % % % % \: -*- D \'.\:.\' " 114 PRINT "\ :% % % % % \: : : \' " 116 PRINT "\ :% % % % % \: Y :" 118 PRINT "\ '\''\''\''\''\''\' -*--*-" 120 PRINT ": :" 122 PRINT "*--B--*" 124 PRINT 128 PRINT "B="; 130 INPUT B 132 PRINT B;" "; 136 PRINT "D="; 138 INPUT D 140 PRINT D;" "; 142 LET Y=D/2 146 PRINT "Y=";Y 148 PRINT 149 LET T=0 150 LET A=B*D 152 LET I=(B*(D**3))/12 154 LET Z=I/Y 155 LET K=SQR (I/A) 156 GOSUB 1600 168 GOTO 1500 200 PRINT "% % % % SQUARE/RECTANGULAR TUBE % % % " 202 PRINT "\ .\..\..\..\..\..\. ----*-" 204 PRINT "\ :\:'\''\''\''\':\: --*-: D=OUTSIDE DEPTH" 206 PRINT "\ :\: \ :\: : : B=OUTSIDE BREARDTH" 208 PRINT "\ :\: \ :\: H : H=INSIDE DEPTH" 210 PRINT "\ :\: \ :\: *-: D K=INSIDE BREARDTH" 212 PRINT "\ :\: \ :\: : : : T=THICKNESS (WALL)" 214 PRINT "\ :\: \ :\: Y : : Y=MOMENT" 216 PRINT "\ :\:.\..\..\..\.:\: :-*-:" 218 PRINT "\ '\''\''\''\''\''\' *-*-*-" 220 PRINT ":*-K-*: :" 222 PRINT ":: -**--T ENTER (IF KNOWN)" 224 PRINT "*--B--* ""0"" (IF UNKNOWN)" 226 PRINT ": :" 230 INPUT T 236 PRINT "D="; 238 INPUT D 240 PRINT D;" B="; 244 INPUT B 246 PRINT B 248 IF T<>0 THEN GOTO 262 249 PRINT "H="; 250 INPUT H 252 PRINT H; 253 PRINT " K="; 254 INPUT K 256 LET T=(B-K)/2 258 PRINT K;" T=";T 260 GOTO 270 262 LET H=D-2*T 264 LET K=B-2*T 266 PRINT "H=";H;" K=";K;" T=";T 268 LET Y=D/2 270 LET A=(D*B)-(H*K) 272 LET I=((B*D**3)-(H*K**3))/12 274 LET Z=I/Y 275 LET K=SQR (I/A) 276 GOSUB 1600 278 PRINT 280 GOTO 1500 282 STOP 300 PRINT "% % % % % % % % % ROUND SOLID % % % % % % % % % % " 301 PRINT 302 PRINT " \..\..\..-----*-" 304 PRINT " \ .% % % % % \. :" 306 PRINT " % % % % % % % :" 308 PRINT "\ :% % % % % % % \: D D=DIAMETER" 310 PRINT "\ :% % % % % % % \: *-:" 312 PRINT "\ :% % % % % % % \: : :" 314 PRINT " % % % % % % % Y : Y=DEM(NEUT FIBER)" 316 PRINT " \ '% % % % % \' : :" 318 PRINT " \''\''\''---*-*-" 320 PRINT 322 PRINT "D="; 324 INPUT D 326 LET Y=D/2 328 PRINT D;" Y=";Y 329 LET B=D 330 LET A=PI/4*(D**2) 331 LET T=0 332 LET I=PI/64*(D**4) 334 LET Z=I/Y 335 LET K=SQR (I/A) 336 GOSUB 1600 340 GOTO 1500 350 STOP 400 PRINT "% % % % % % % % % % ROUND TUBE % % % % % % % % % % " 402 PRINT " \..\..\..-------*-" 404 PRINT " \ .% \:'\''\':% \. ---*-:" 406 PRINT " % \' \ '% : :" 408 PRINT "\ :\:' \':\: ID :" 410 PRINT "\ :\: \ :\: *-: :" 412 PRINT "\ :\:. \.:\: : :OD" 414 PRINT " % \. \ .% Y : :" 416 PRINT " \ '% \:.\..\.:% \' -:-*-:" 418 PRINT " \''\''\''---*-*-*-" 420 PRINT TAB 11;":" 422 PRINT TAB 11;"T" 424 PRINT "ENTER ""T""(IF KNOWN),""0""(IF NOT)" 426 INPUT T 432 PRINT "OD="; 434 INPUT OD 435 LET Y=OD/2 436 IF T<>0 THEN GOTO 446 438 PRINT OD,"ID="; 440 INPUT ID 442 PRINT ID,"T=";(OD-ID)/2,"Y=";OD/2 444 GOTO 451 446 LET ID=OD-(2*T) 450 PRINT OD,"ID=";ID,"T=";T,"Y=";Y 451 LET B=ID 452 LET A=PI/4*(OD**2-ID**2) 453 LET D=OD 454 LET I=(PI/64)*(OD**4-ID**4) 456 LET Z=I/Y 457 LET K=SQR (I/A) 458 GOSUB 1600 462 GOTO 1500 464 STOP 500 PRINT "% % % % % % % % % % % I-SECTION % % % % % % % % % % " 501 LET N=5 502 PRINT " \ .\..\..\..\..\. ---*-" 503 PRINT " \ '\''\':\:'\''\' -*-:" 504 PRINT " \ :\: : : LOAD" 505 PRINT "-*---\ :\: H : \: " 506 PRINT " : \ :\: : : \'.\:.\' " 508 PRINT " Y \ :\: : D \' " 516 PRINT " : \ .\..\.:\:.\..\. -*-:" 518 PRINT "-*-\ '\''\''\''\''\' -*-*-" 520 PRINT " : :: : :" 522 PRINT " T--**-: F" 524 PRINT " *--B-*" 526 PRINT " : :" 530 PRINT "T="; 532 INPUT T 534 PRINT T;" F="; 536 INPUT F 538 PRINT F;" D="; 540 INPUT D 542 LET H=D-(2*F) 543 LET Y=D/2 544 PRINT D,"Y=";Y;" H=";H;" B="; 546 INPUT B 548 PRINT B 550 IF N<>5 THEN GOTO 30+(N*100) 552 LET Y=D/2 554 LET A=(B*D)-(H*(B-T)) 556 LET I=((B*(D**3))-((H**3)*(B-T)))/12 558 LET Z=I/Y 561 LET K=SQR (I/A) 564 GOSUB 1600 566 GOTO 1500 600 PRINT "% % % % % % % % % % H-SECTION % % % % % % % % % % % " 601 LET N=6 602 PRINT " \ .\. \ .\. ---*-" 604 PRINT " \ :\: \ :\: T : LOAD" 606 PRINT " \ :\: \ :\: : : \: " 608 PRINT " \ :\:.\..\..\..\.:\: -*-B \'.\:.\' " 610 PRINT " \ :\:'\''\''\''\':\: -*-: \' " 612 PRINT " \ :\: \ :\: : :" 614 PRINT " \ :\: \ :\: Y :" 616 PRINT " \ '\' \ '\' -*-*-:" 618 PRINT " : ::" 620 PRINT " : -**-F" 622 PRINT " *--D--*" 624 PRINT " : :" 628 GOTO 528 630 LET Y=B/2 632 LET A=(B*D)-(H*(B-T)) 634 LET I=((2*F*(B**3))+(H*(T**3)))/12 636 LET Z=I/Y 639 LET K=SQR (I/A) 640 GOSUB 564 700 PRINT "% % % % % % % % % % C-SECTION % % % % % % % % % % % " 701 LET N=7 702 PRINT " \ .\..\..\..\..\..\. -----*-" 704 PRINT " \ :\:'\''\''\''\''\' ---*-:" 706 PRINT " \ :\: : : LOAD" 708 PRINT " \ :\: H : \ :" 710 PRINT " \ :\: ------*-: D \ '\.:\.'" 712 PRINT " \ :\: : : : \ '" 714 PRINT " \ :\: Y : :" 716 PRINT " \ :\:.\..\..\..\..\. -:-*-:" 718 PRINT " \ '\''\''\''\''\''\' -*-*-*-" 720 PRINT " :: : :" 722 PRINT "-**-T : F" 724 PRINT " :: : :" 726 PRINT " *--B--*" 727 PRINT " : :" 728 GOTO 528 730 LET Y=D/2 732 LET A=(B*D)-(H*(B-T)) 734 LET I=((B*(D**3))-((H**3)*(B-T)))/12 736 LET Z=I/Y 739 LET K=SQR (I/A) 740 GOTO 564 800 PRINT "% % % % % % % % % % L-SECTION % % % % % % % % % % % " 801 LET N=8 806 PRINT "-*-\ .\. ------*-*-" 808 PRINT " : \ :\: : :" 810 PRINT " : \ :\: LOAD : :" 812 PRINT " B \ :\: \: Y :" 814 PRINT " : \ :\: \'.\:.\' : :" 816 PRINT " : \ :\: \' : H" 818 PRINT " :-\ :\: ------*-:" 820 PRINT " : \ :\: :" 822 PRINT " : \ :\:.\..\..\..\..\..\. --*-" 824 PRINT "-*-\ '\''\''\''\''\''\''\' --*-" 826 PRINT " : : :" 828 PRINT " *--D---* T" 830 PRINT " : :" 834 PRINT "T="; 836 INPUT T 838 PRINT T;" B="; 840 INPUT B 841 PRINT B;" D="; 842 INPUT D 845 LET H=B-T 846 LET Y=B-(T*(2*H+D)+(H**2))/(2*(H+D)) 848 PRINT D,"H=";H;" Y=";Y 850 LET A=T*(D+H) 851 LET P2=(T*(Y**3))+D*((B-Y)**3) 852 LET P1=(D-T)*((B-Y-T)**3) 853 LET I=(P2-P1)/3 854 LET Z=I/Y 856 LET K=SQR (I/A) 858 GOTO 564 900 PRINT "% % % % % % % % % % V-SECTION % % % % % % % % % % % " 901 LET N=9 902 PRINT " *" 904 PRINT " / \..-----*-" 906 PRINT " / \.:\''\:. :" 908 PRINT " B \.:\' \ '\:. Y" 910 PRINT " / \.:\' \ '\:. :" 912 PRINT " / \.:\' -----\ '\:.-*-N.F." 914 PRINT " * \.:\' \ '\:." 916 PRINT " \ '\' \ '\' " 918 PRINT " //" 920 PRINT " T" 921 PRINT 922 PRINT "T="; 924 INPUT T 926 PRINT T;" B="; 927 INPUT B 928 PRINT B; 930 LET A=T*((2*B)-T) 931 LET D=B 932 LET Y=((B**2)+(B*T)-(T**2))/(2*(2*B-T)*COS (PI/4)) 934 LET P1=Y*COS (PI/4) 936 LET I=(2*(P1**4)-(2*(P1-T)**4)+T*(B-(2*P1-T/2))**3)/2 938 LET Z=I/Y 940 LET K=SQR (I/A) 942 PRINT " Y=";Y,"AREA=";A,,"S.MOD.=";Z 944 GOTO 564 950 STOP 1000 PRINT "% % % % % % % % % % T-SECTION % % % % % % % % % % % " 1002 PRINT " *----B---*" 1004 PRINT " : : :" 1006 PRINT "-*---\ .\..\..\..\..\..\..\..\..\. -*-" 1008 PRINT "-*-*-\ '\''\''\''\':\:'\''\''\''\' :" 1010 PRINT " : : \ :\: :" 1012 PRINT " F : NF--\ :\: --*- :" 1014 PRINT " H \ :\: : D" 1016 PRINT " : \ :\: Y :" 1018 PRINT " : \ :\: : :" 1020 PRINT " -*-----\ '\' --*--*-" 1022 PRINT " ::" 1024 PRINT " -**-T" 1025 PRINT "T="; 1026 INPUT T 1028 PRINT T;" F="; 1030 INPUT F 1032 PRINT F;" B="; 1034 INPUT B 1036 PRINT B;" D="; 1038 INPUT D 1040 PRINT D 1041 LET H=D-F 1042 LET A=B*F+H*T 1044 LET Y=D-(((D**2)*T+(F**2)*(B-T))/(2*A)) 1045 PRINT "H=";H;" Y=";Y 1046 LET I=.5*(T*Y**3)+B*(D-Y)**3-(B-T)*(D-Y-F)**3 1048 LET Z=I/Y 1050 LET K=SQR (I/A) 1052 GOTO 564 1100 PRINT "% % % % % % % % % % +-SECTION % % % % % % % % % % % " 1101 LET N=11 1104 PRINT " -* *-T" 1106 PRINT " : :" 1108 PRINT " \ .\..\. ------*-" 1110 PRINT " \ :% \: :" 1112 PRINT " : \ :% \: D" 1114 PRINT "-*-\ .\..\..\.:% \:.\..\..\. :" 1116 PRINT " F \ :% % % % % % % \: -*-:" 1118 PRINT "-*-\ '\''\''\':% \:'\''\''\' : :" 1120 PRINT " : : \ :% \: : Y :" 1122 PRINT " : \ :% \: : : :" 1124 PRINT " : \ '\''\' ----*-*-" 1125 PRINT " : :" 1126 PRINT " *---B---*" 1128 PRINT " : :" 1130 PRINT "T="; 1132 INPUT T 1134 PRINT T," F="; 1135 INPUT F 1136 PRINT F,"D="; 1137 INPUT D 1138 PRINT D;" B="; 1140 INPUT B 1142 LET A=D*T+F*(B-T) 1144 LET Y=D/2 1146 LET I=((T*D**3)+(F**3)*(B-T))/12 1148 LET Z=I/Y 1150 LET K=SQR (I/A) 1152 PRINT B;" Y=";Y 1154 GOTO 564 1200 PRINT "% % % % % % % % MATERIAL TABLE % % % % % % % % " 1205 PRINT 1210 PRINT " 1 CLASS 25 CAST GRAY IRON" 1215 PRINT " 2 DUCTILE (NODULAR) CAST IRON" 1220 PRINT " 3 1020 LOW CARBON STEEL" 1225 PRINT " 4 30302 STAINLESS STEEL" 1230 PRINT " 5 51430 STAINLESS STEEL" 1235 PRINT " 6 6063 T5 ALUMINUM" 1240 PRINT " 7 6061 T6 ALUMINUM" 1245 PRINT " 8 NO.2 STRUCTUAL DOUGLAS FIR" 1250 PRINT " 9 ABS INJ. MOLDED OR HIS" 1255 PRINT "10 MOLDED NYLON 6+40 PCT. GLASS" 1260 PRINT 1265 PRINT "ENTER OPPROPRIATE MATERIAL CODE" 1270 INPUT Q 1275 PRINT 1280 PRINT 1300 IF Q=1 THEN LET P=14.2 1305 IF Q=1 THEN LET S=25000 1310 IF Q=2 THEN LET P=25 1315 IF Q=2 THEN LET S=80000 1320 IF Q=3 THEN LET P=30 1325 IF Q=3 THEN LET S=80000 1330 IF Q=4 THEN LET P=28 1335 IF Q=4 THEN LET S=105000 1340 IF Q=5 THEN LET P=29 1345 IF Q=5 THEN LET S=80000 1350 IF Q=6 THEN LET P=10.3 1355 IF Q=6 THEN LET S=29000 1360 IF Q=7 THEN LET P=11.3 1365 IF Q=7 THEN LET S=48000 1370 IF Q=8 THEN LET P=1.3 1375 IF Q=8 THEN LET S=1300 1380 IF Q=9 THEN LET P=.29 1385 IF Q=9 THEN LET S=5500 1390 IF Q=10 THEN LET P=1.5 1395 IF Q=10 THEN LET S=26000 1400 PRINT 1410 LET P=P*1E6 1415 PRINT "TESILE=";S;" MOD.EL.=";P 1500 PRINT AT 21,0;"ENT:(1)SEC(2)MAT(3)LOAD(4)RECALC" 1502 INPUT N$ 1504 IF CODE N$<29 AND CODE N$>33 THEN GOTO 1548 1510 LET N=VAL N$ 1512 IF N=5 THEN GOTO 3800 1515 CLS 1520 IF N=1 THEN GOTO 10 1530 IF N=2 THEN GOTO 1200 1540 IF N=3 THEN GOTO 2000 1545 IF N=4 THEN GOTO 2055 1548 CLS 1550 PRINT AT 11,10;"% %P%A%R%D%O%N%?% " 1552 FOR J=1 TO 30 1554 NEXT J 1556 GOTO 1500 1600 IF NOT A THEN GOTO 10 1610 PRINT "SECTION AREA= ";A 1615 PRINT "SECTION MODULUS= ";Z 1620 PRINT "MOMENT OF INERTIA= ";I 1625 PRINT "RADIUS OF GYRATION=";K 1630 RETURN 2000 CLS 2001 PRINT "% % % % % % % % BEAM LOAD TABLE % % % % % % % " 2002 LET X=0 2003 LET W=0 2004 LET L=0 2005 PRINT 2006 PRINT "WWWWWWWWW" 2007 PRINT "\:'\''\''\''\''\''\''\''\': 1 SUPPORTED BOTH ENDS" 2008 PRINT "\: \ : UNIFORM LOAD" 2009 GOSUB 2070 2010 PRINT TAB 4;"W" 2012 PRINT "\:'\''\''\''\''\''\''\''\': 2 SUPPORTED BOTH ENDS" 2014 PRINT "\: \ : LOAD AT CENTER" 2015 GOSUB 2070 2016 PRINT " W" 2018 PRINT "\:'\''\''\''\''\''\''\''\': 3 SUPPORTED BOTH ENDS" 2020 PRINT "\: \ : LOAD OFF CENTER" 2021 PRINT 2022 GOSUB 2070 2023 PRINT "% % WWWWWWW 4 FIXED ONE END" 2024 PRINT "% % \''\''\''\''\''\''\'' UNIFORM LOAD" 2026 PRINT "\''\''" 2027 GOSUB 2070 2028 PRINT "% % W 5 FIXED ONE END" 2030 PRINT "% % \''\''\''\''\''\''\'' CONCENTRATED LOAD" 2032 PRINT "\''\''" 2033 GOSUB 2070 2034 PRINT "% % WWWWW% % 6 FIXED BOTH ENDS" 2036 PRINT "% % \''\''\''\''\''% % UNIFORM LOAD" 2038 PRINT "\''\'' \''\''" 2039 GOSUB 2070 2040 PRINT " **ENTER APPROPRIATE CODE**" 2045 INPUT X 2050 CLS 2055 GOTO 2000+(X*100) 2060 STOP 2070 IF X>0 THEN GOTO 2020+(X*100) 2075 RETURN 2080 STOP 2100 LET X=1 2110 GOTO 2006 2120 PRINT 2130 GOSUB 3000 2140 LET S2=-(W*L)/(8*Z) 2150 LET U=(5*(W*(L**3)))/(384*P*I) 2160 GOSUB 3500 2170 STOP 2200 LET X=2 2210 GOTO 2010 2220 PRINT 2230 GOSUB 3000 2240 LET S2=(W*L)/(4*Z) 2250 LET U=(W*(L**3))/(48*P*I) 2260 GOTO 3500 2270 STOP 2300 LET X=3 2310 GOTO 2016 2320 PRINT 2330 GOSUB 3000 2340 LET S2=(W*(X1*(L-X1)))/(Z*L) 2345 LET V=SQR (((I/3)+(2*X1))/(3*(L-X1)))*(L-X1) 2350 LET U=(W*X1*(V**3))/(3*P*I*L) 2360 GOTO 3500 2370 STOP 2400 LET X=4 2410 GOTO 2023 2420 PRINT 2430 GOSUB 3000 2440 LET S2=(W*L)/(2*Z) 2450 LET U=(W*(L**3))/(8*P*I) 2460 GOTO 3500 2470 STOP 2500 LET X=5 2510 GOTO 2028 2520 PRINT 2530 GOSUB 3000 2540 LET S2=(W*L)/Z 2550 LET U=(W*(L**3))/(3*P*I) 2560 GOTO 3500 2570 STOP 2600 LET X=6 2610 GOTO 2034 2620 PRINT 2630 GOSUB 3000 2640 LET S2=(W*L)/(12*Z) 2650 LET U=(W*(L**3))/(384*P*I) 2660 GOTO 3500 2670 STOP 3000 PRINT "W (LOAD IN LS.)="; 3005 IF W>0 THEN GOTO 3020 3010 INPUT W 3020 PRINT W 3030 PRINT "L (BEAM LENGTH-IN.)="; 3035 IF L>0 THEN GOTO 3050 3040 INPUT L 3050 PRINT L 3060 IF X<>3 THEN GOTO 3100 3070 PRINT "X (DIST-W TO NEAR SUPP)="; 3080 INPUT X1 3090 PRINT X1 3100 RETURN 3500 PRINT 3502 PRINT "LOAD=";W*L;" IN.LBS." 3503 PRINT "SECTION=";D;" X ";B;" X ";T 3504 PRINT "MATL. STRENGTH =";S;" PSI" 3505 PRINT "STRESS (CRIT.PT.)=";INT S2;" PSI" 3510 PRINT "DEFL. (CRIT. PT.)=";(INT (U*1E6))/1E6;" IN." 3520 PRINT 3525 IF ABS S2<S THEN GOTO 3650 3530 PRINT 3600 FOR N=1 TO 10 3605 PRINT AT 14,8;" " 3608 FOR J=1 TO 3 3610 NEXT J 3615 PRINT AT 14,8;"% %O%V%E%R% %S%T%R%E%S%S%E%D% " 3620 FOR J=1 TO 6 3625 NEXT J 3630 NEXT N 3650 GOSUB 1600 3655 PRINT AT 20,5;"ENTER 5 FOR COPY" 3660 GOTO 1500 3800 COPY 3810 GOTO 1500 9900 CLS 9905 CLEAR 9910 PRINT AT 11,9;"START RECORDER" 9920 PRINT AT 13,14;"PRESS ENTER" 9930 INPUT Q$ 9940 SAVE "STROMA%T" 9950 CLS 9960 RUN 9999 STOP