Data Finder/Strength of Materials

Date: 198x
Type: Cassette
Platform(s): TS 1000

STROMAT is a structural engineering calculator that computes cross-sectional properties and beam-loading stresses for eleven standard section shapes: square/rectangular solid and tube, round solid and tube, I, H, C, L, V, T, and + sections. For each shape the program calculates area, section modulus, second moment of area (moment of inertia), and radius of gyration, then optionally combines those results with one of ten built-in material specifications and six beam-loading cases (supported/fixed ends, uniform/concentrated loads) to yield bending stress and deflection. Navigation between the section, material, load, and recalculate screens is handled at line 1500 via a single INPUT menu that dispatches with computed GOTO targets (N*100). The beam-loading subroutines at lines 2000–2075 use a self-referencing GOSUB/GOTO technique to redisplay the selected load diagram before prompting for parameters.


Program Analysis

Program Structure

The program is divided into clearly separated functional blocks, each associated with a shape code entered by the user. A computed GOTO N*100 at line 70 dispatches to the correct shape handler. An invalid code (greater than 11) forces N=19, targeting the non-existent line 1900, which silently falls through. The menu at line 1500 collects a single-character response and re-dispatches using IF chains to sections (line 10), materials (line 1200), loads (line 2000), recalculate (line 2055), or a print-copy routine (line 3800).

Line rangeFunction
5–70Shape selection menu
100–168Square/rectangular solid
200–282Square/rectangular tube
300–350Round solid
400–464Round tube
500–566I-section
600–640H-section
700–740C-section
800–858L-section
900–950V-section
1000–1052T-section
1100–1154+-section
1200–1415Material table and property lookup
1500–1556Main navigation menu
1600–1630Section-properties print subroutine
2000–2080Beam load diagram display and dispatch
2100–2670Six beam-load case handlers
3000–3100Load/length input subroutine
3500–3660Results display and overstress warning
3800–3810Hardcopy via COPY
9900–9999Save-to-tape utility

Computed GOTO Dispatch

The central navigation idiom GOTO N*100 at line 70 acts as a jump table, routing shape code 1 to line 100, code 2 to line 200, and so on up to code 11 at line 1100. The beam-load menu uses the same pattern: GOTO 2000+(X*100) at line 2055. The subroutine at line 2070 also uses GOTO 2020+(X*100) to redisplay the selected diagram, a self-referencing trick that allows all six load diagrams to be printed in sequence before the user picks one, then jumps into the chosen handler’s entry point.

Section Property Calculations

All shape handlers populate four variables before calling the print subroutine at line 1600: area A, second moment of area I, section modulus Z=I/Y, and radius of gyration K=SQR(I/A). The neutral-axis distance Y is computed analytically for each shape.

  • Rectangular solid (100): I=(B*D^3)/12, Y=D/2
  • Rectangular tube (200): parallel-axis subtraction of inner rectangle
  • Round solid (300): I=PI/64*D^4
  • Round tube (400): I=(PI/64)*(OD^4-ID^4)
  • I-section (500): flanges treated as full-width, web subtracted
  • L-section (800): centroid found with weighted-area formula; I built from cube terms at lines 851–853
  • T-section (1000): centroid at line 1044, I via the three-term expression at line 1046
  • V-section (900): uses COS(PI/4) to project the neutral axis; the moment of inertia formula at line 936 is non-trivial

Material Database

Ten materials are stored as paired constants set by IF Q=n chains (lines 1300–1395). Variable S holds tensile strength in PSI and P holds elastic modulus in millions of PSI; P is scaled to absolute units at line 1410 (P=P*1E6) for use in deflection formulae.

CodeMaterialE (×10⁶ psi)Strength (psi)
1Class 25 Cast Gray Iron14.225 000
2Ductile Cast Iron2580 000
31020 Low Carbon Steel3080 000
430302 Stainless Steel28105 000
551430 Stainless Steel2980 000
66063-T5 Aluminium10.329 000
76061-T6 Aluminium11.348 000
8No.2 Structural Douglas Fir1.31 300
9ABS Injection Moulded0.295 500
10Nylon 6 + 40% Glass1.526 000

Beam Loading Cases

Six classical beam formulae are implemented. Stress S2 and deflection U are calculated with standard Euler–Bernoulli expressions, then passed through the output routine at line 3500.

  1. Simply supported, uniform load: S2=W*L/(8*Z), U=5*W*L³/(384*P*I)
  2. Simply supported, centre point load: S2=W*L/(4*Z), U=W*L³/(48*P*I)
  3. Simply supported, off-centre load: moment and deflection computed with auxiliary variable V
  4. Cantilever, uniform load: S2=W*L/(2*Z), U=W*L³/(8*P*I)
  5. Cantilever, end point load: S2=W*L/Z, U=W*L³/(3*P*I)
  6. Fixed both ends, uniform load: S2=W*L/(12*Z), U=W*L³/(384*P*I)

Overstress Warning

After printing results, line 3525 compares ABS S2 with material strength S. If overstressed, a flashing “OVERSTRESSED” message is generated by a loop (lines 3600–3630) that alternately prints a blank and an inverse-video string at screen row 14, with short FOR…NEXT delay loops providing the flash timing.

Navigation Menu and Input Validation

At line 1500, the menu prompt is displayed with PRINT AT 21,0 so it appears at the bottom of the screen without scrolling. The response N$ is checked at line 1504: CODE N$<29 AND CODE N$>33 is intended to pass only digits 1–4 (codes 49–52), but the logic uses AND as a boolean operator — any character whose code is both less than 29 and greater than 33 is impossible, so the condition is always false for printable characters, meaning the branch to 1548 (the “PARDON?” screen) is never taken. This is a bug: the intended test was likely CODE N$<49 OR CODE N$>52.

Notable Techniques and Anomalies

  • The H-section handler (line 600) sets N=6 and falls through to GOTO 528 to share the I-section’s input prompts, then diverges at lines 630–640 for its own formulae — but line 640 calls GOSUB 564, which is the middle of the I-section block, not a subroutine. This is a structural anomaly that would cause unpredictable behaviour.
  • The C-section (line 700) similarly shares entry code with I and H sections via GOTO 528 and uses GOTO 564 rather than GOSUB 1600 for output.
  • Variable K is reused as both inside breadth of a rectangular tube (line 254) and radius of gyration (line 275), creating a name clash within the same section handler.
  • The subroutine at line 3000 caches W and L: if they are already non-zero from a prior run, input is skipped (lines 3005, 3035), enabling the recalculate option (menu code 4) to re-use previous load values.
  • Line 1600 guards against division-by-zero with IF NOT A THEN GOTO 10, resetting to the shape menu if area is zero.
  • The save routine at lines 9900–9960 calls CLEAR before SAVE and RUN afterward, restarting the program cleanly from tape.

Content

Appears On

Related Products

Related Articles

Related Content

Image Gallery

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 

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top