Программа математической обработки результатов количественных определений
10 defdbl d, e, s, t, x, y: defint c, i, k, n: defstr a
11 screen 0: width 80: color 14,0
20 rem Ввод данных
30 print: print: input “ Введите количество точек “; n
40 if n<3 then goto 1000
50 for i=1 to n step 1
60 print: print “точка N”; i
70 input “Значение =“; x(i)
80 next i
90 rem Проверка введенных значений
100 cls: print
110 for i=1 to n step 1
120 color 2: print “Точка N”;: color 4: print i;:
130 color 2: print “значение =”;: color 14: print x(i)
140 next i
150 color 23: print: print “ Все верно ? (Y/N) “: a=input$(1)
160 if a=“N” or a=“n” then goto 1100
170 rem Расчет среднего значения
180 summa=0
190 for i=1 to n step 1
200 summa=summa+x(i)
210 next i
220 sredne=summa/n
230 rem Подбор коэффициента Стьюдента
240 if n=3 then t=4.303
250 if n=4 then t=3.182
260 if n=5 then t=2.776
270 if n=6 then t=2.571
280 if n=7 then t=2.447
290 if n=8 then t=2.365
300 if n=9 then t=2.306
310 if n=10 then t=2.262
320 if n=11 then t=2.228
330 if n=12 then t=2.201
340 if n=13 then t=2.179
350 if n=14 then t=2.160
360 if n=15 then t=2.145
370 if n=16 then t=2.131
380 if n=17 then t=2.120
390 if n=18 then t=2.110
400 if n=19 then t=2.103
410 rem Расчет выборочной дисперсии и среднеквадратичной ошибки
420 sdisp=0
430 for i=1 to n step 1
435 sdisp=sdisp+(x(i)-sredne)^2
440 next i
450 disp=sdisp/(n-1)
460 soqv=sqr(disp)
470 rem Расчет точности прямого измерения
480 e1=t×soqv/sqr(n) : e2=e1/sredne×100
490 rem Расчет плотности функции распределения
500 ymax=1/soqv/sqr(2×3.14159)
510 for i=1 to n step 1
520 y(i)=1/soqv/sqr(2×3.14159)×exp(-1×(x(i)-sredne)^2/2/disp)
530 next i
535 if e2>30 then goto 1300
539 goto 1400
540 screen 2: line (20,180)-(620,180)
550 summa=160-cint(160×ymax/(ymax+1)
560 line (320,180)-(320,cymax)
570 rem circle (320,cymax),4: paint (320,cymax)
580 for i=1 to n step 1
590 cy(i)=160-cint(160/(ymax+1)×y(i)
600 e(i)=(x(i)-sredne)/sredne×100
610 cx(i)=cint(320+10×e(i))
620 circle (cx(i),cy(i)),1: paint (cx(i),cy(i))
630 next i ; 640 goto 1030
1000 rem Малое количество данных
1010 print: print: color 3: print “Количество точек не должно быть меньше трех “
1020 a=imput$(1)
1030 end
1100 rem Исправление неверно введенных данных
1120 cls: print: print: color 14: input “ Введите номер исправляемой точки”;
1130 if k>n then goto 1180
1140 color 2: print “ Точка N”;: color 4: print k
1150 color 2: print “ старое значение = “;: color 14: print x(k)
1160 color 2: print “ новое значение=”;: color 14: input x(k)
1170 goto 90
1180 cls: color 20: x1=timer
1190 print: print: print “Нет точки с таким номером !”
1200 x2=timer: x3=x2-x1
1210 if x3<2 then goto 1200
1220 a=inkey$: goto 90
1300 rem Слишком большой разброс
1310 cls: print: print: color 30: print “ Очень большой разброс данных“
1320 print: print “ построение графика невозможно “
1330 goto 1030
1400 a1=“+-”: rem Вывод на экран данных
1410 cls:print:print:color 14:print “Среднее значение =“;: print using “####.####”
1420 print: print “Доверительный интервал =“;:
1430 print using “#####.#####”; sredne ;: print “-+”;: rem Hihi
1431 print using “#####.#####”; e1
1440 print: print “Относительная ошибка =“;: print using “##.####”; e2
1450 locate 21: color 22: print “Нажмите любую клавишу”: a = input$(1)
1460 cls: color 14: a2=“ “
1470 print “ X(i) “;: print “ Y(i) “;: print “ X(i)-Xср”
1480 for i=1 to n step 1
1490 print using “##.####”; x(i);: print a2;
1500 print using “##.####”; y(i);: print a2;
1510 print using “##.####”; x(i)-sredne; 1520 next i
1530 print color 6: print “Хотите получить распечатку ? (Y/N) “: a = input$(1)
1540 if a=“Y” or a=“y” then goto 1700
1550 print: color 6: print “ Хотите посмотреть на график ? (Y/N) “: a = input$(1)
1560 if a=“Y” or a=“y” then goto 540 else goto 1030
1700 rem Распечатка
1705 cls: print “Подготовьте принтер к печати”
1706 print “ и нажмите любую клавишу”: a=input$(1)
1710 lprint “Среднее значение =“;: lprint using “#####.#####”; sredne
1720 lprint “Доверительный интервал =“;:
1730 lprint using “#####.#####”; sredne;: lprint “-+”;
1731 lprint using “#####.#####”; e1
1740 lprint “Относительная ошибка =“;: lprint using “##.####”; e2
1750 lprint “ X(i) “;: lprint “ Y(i) “;: lprint “ X(i) - Xср “
1760 for i=1 to n step 1
1770 lprint using “##.####”; x(i);: lprint a2;
1780 lprint using “##.####”; y(i);: lprint a2;
1790 lprint using “##.####”; x(i)-sredne
1795 next i
1900 goto 1550