10 REM **** HP TIME-SHARED BASIC PROGRAM LIBRARY ******************** 20 REM 30 REM SURFAC: AREA OF SURFACE OF REVOLUTION 40 REM 50 REM 36338 (A801) REV A -- 10/71 60 REM 70 REM **** CONTRIBUTED PROGRAM ************************************* 80 REM SURFAR - COPYRIGHT 1971, POLYTECHNIC INSTITUTE OF BROOKLYN 100 REM AREA OF A SURFACE OF REVOLUTION, Q. J. O'CONNOR, 7/12/68 101 REM REVISED 8/21/70 (D. PESSEL) 105 PRINT TAB(17);"AREA OF A SURFACE OF REVOLUTION" 106 PRINT 110 PRINT " THIS PROGRAM APPROXIMATES THE AREA OF A SURFACE OF" 120 PRINT "REVOLUTION BY COMPUTING LATERAL AREAS OF FRUSTUMS OF CONES" 130 PRINT "OF REVOLUTION. TYPE IN YOUR FUNCTION OF X (Y=F(X))," 131 PRINT "WHOSE GRAPH WILL BE ROTATED ABOUT THE X AXIS, AS FOLLOWS:" 150 PRINT 160 PRINT " 1 GO TO 200" 170 PRINT " 300 DEF FNY(X)=...(YOUR FUNCTION OF X)..." 180 PRINT " RUN" 185 PRINT 186 PRINT "FOR EXAMPLE, TO USE THE FUNCTION Y=X^2 YOU WOULD TYPE:" 187 PRINT 188 PRINT " 1 GO TO 200" 189 PRINT " 300 DEF FNY(X)=X^2" 190 PRINT " RUN" 191 PRINT 192 PRINT "YOU MIGHT TRY THAT AS YOUR FIRST RUN." 193 PRINT "END EACH LINE, INCLUDING 'RUN', WITH THE 'RETURN' KEY." 195 STOP 200 REM COMPUTATION SECTION OF PROGRAM 220 PRINT "WHAT ARE THE ABSCISSAS OF THE END POINTS OF THE SECTION" 230 PRINT "TO BE CONSIDERED (SMALLER FIRST: P,Q)"; 240 INPUT P,Q 245 IF P <= Q THEN 250 246 PRINT "P CANNOT BE GREATER THAN Q!" 247 GOTO 220 250 PRINT 260 PRINT "NUMBER OF SUM OF % CHANGE" 270 PRINT "SUBINTERVALS APPROXIMATING AREAS IN SUM" 280 PRINT "------------ ------------------- --------" 281 LET S1=0 285 LET E1=0 300 DEF FNY(X)=X^2 305 FOR N=1 TO 9 310 LET E=2^(N-1) 320 LET H=(Q-P)/E 330 LET S=0 340 FOR I=0 TO (E-1) 350 LET G=FNY(P+I*H+H)+FNY(P+I*H) 360 LET M=FNY(P+I*H+H)-FNY(P+I*H) 370 LET L=3.14159*G*SQR(M*M+H*H) 380 LET S=S+L 390 NEXT I 395 IF S1=0 THEN 405 396 LET W=100*(ABS(S-S1))/((S+S1)/2) 399 IF S1=0 THEN 405 400 PRINT E,S," ",W 402 IF W<.01 THEN 420 404 GOTO 407 405 PRINT E,S," ","NO PREVIOUS VALUE" 407 LET S1=S 410 NEXT N 420 PRINT 430 PRINT "WOULD YOU LIKE TO TRY NEW END POINTS (1-YES, 0-NO)"; 431 INPUT Q1 432 IF Q1>0 THEN 220 440 PRINT "TO ENTER A NEW FUNCTION YOU NEED ONLY RETYPE LINE" 450 PRINT "300 AND 'RUN'. SEE INSTRUCTIONS FOR MORE DETAILS." 460 PRINT "IF YOU ARE FINISHED, TYPE '1' AND THE 'RETURN' KEY." 500 END