1000 REM ***** HISTOG ***** STATISTICS PROGRAM ***** 1010 REM ***** VERSION 2 ***** 11/17/70 1020 REM FORMS HISTOGRAM OF SET OF NUMBERS 1025 REM REVISED JUNE, 1972 ANDY ROTH C.C.G. 1030 DIM G(100) 1035 DIM W2(100) 1040 N=100 1050 INPUT"SAMPLE SIZE PER BAR";W0 1052 INPUT"INITIAL(SMALLEST)DATA VALUE OF INTEREST I.E.FIRST BAR";W1 1054 INPUT"NUMBER OF DATA POINTS";W9 1060 REM -- FIND MEAN OF RAW DATA 1070 W5=0 1080 PRINT"POINTS";:MAT INPUT G 1090 FOR W3=1TOW9 1100 W5=W5+G(W3) 1110 NEXT W3 1120 W5=W5/W9 1130 REM -- FIND MEDIAN OF RAW DATA 1140 W3=0 1150 FOR I=2 TO W9 1160 IF G(I-1) <= G(I) THEN 1210 1170 W3=G(I-1) 1180 G(I-1)=G(I) 1190 G(I)=W3 1200 W3=1 1210 NEXT I 1220 IF W3=1 THEN 1140 1230 IF 2*INT(W9/2)<>W9 THEN 1260 1240 W6=(G(W9/2)+G(W9/2+1))/2 1250 GOTO 1280 1260 W6=G(INT(W9/2+1)) 1270 REM -- BUILD SCALED DATA COLUMNS 1280 MAT W2=G 1290 MAT G=ZER 1300 FOR W3=1 TO W9 1320 W2(W3)=INT ((W2(W3)-W1)/W0)+1 1330 G(W2(W3))=G(W2(W3))+1 1340 NEXT W3 1350 REM -- CHECK FOR UPPER LIMIT 1360 FOR W3=1 TO N 1370 IF G(W3)=0 THEN 1390 1380 W4=W3 1390 NEXT W3 1400 REM -- FIND MAXIMUM OF SCALED COLUMN OF DATA 1410 W7=0 1420 FOR W3=1 TO W4 1430 IF G(W3) <= W7 THEN 1450 1440 W7=G(W3) 1450 NEXT W3 1460 REM -- OUTPUT 1470 PRINT 1480 GOSUB 1870 1490 PRINT 1500 PRINTTAB(23);"*** HISTOGRAM ***" 1510 GOSUB 1870 1520 PRINTTAB(6);W9"DATA POINTS TOTAL";TAB(37)"SAMPLE SIZE=";W0 1530 PRINT TAB(6)"MEAN="W5;TAB(37)"MEDIAN="W6 1540 PRINT TAB(6)"MAXIMUM FREQUENCY="W7 1550 PRINT TAB(6)"MAXIMUM FREQUENCIES AT:"; 1560 FOR W3=1 TO W4 1570 IF G(W3)<>7 THEN 1610 1580 PRINT W1+(W3-1)*W0; 1590 IF W0=1 THEN 1610 1600 PRINT "+"; 1610 NEXT W3 1620 PRINT "" 1630 GOSUB 1870 1640 PRINT" % OF MAXIMUM" 1650 PRINT TAB(10);"0";TAB(19);"20";TAB(29);"40";TAB(39)"60"; 1660 PRINT TAB(49);"80";TAB(59);"100" 1670 FOR W3=1 TO 6 1680 PRINT TAB(W3*10);"!"; 1690 NEXT W3 1700 PRINT:PRINTTAB (10); 1710 FOR W3=1 TO 5 1720 PRINT "+---------"; 1730 NEXT W3 1740 PRINT "+" 1750 FOR W3=1 TO W4+1 1760 IF (W3-1)/5<>INT((W3-1)/5) THEN 1800 1770 PRINT W1+(W3-1)*W0; 1780 IF W0=1 THEN 1800 1790 PRINT "+"; 1800 PRINT "";TAB(9);"-!"; 1810 FOR W6=1 TO G(W3)*50/W7 1820 PRINT "*"; 1830 NEXT W6 1840 PRINT "" 1850 NEXT W3 1860 GOTO 1920 1870 FOR I=1 TO 72 1880 PRINT "-"; 1890 NEXT I 1900 RETURN 1920 END