Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Решение математических задач.pdf
Скачиваний:
28
Добавлен:
13.02.2015
Размер:
858.1 Кб
Скачать

for i:= 1 to 5 do begin read(mas[i]); sum:=sum+mas[i]; end;

ar:=sum/5;

for i:=1 to 5 do sum1:=sum1+sqr(mas[i]-ar);

s:=sqrt(sum1/5);

writeln;

writeln('Среднее квадратическое отклонение равно ',s:8:3);

readln; readln end.

В данной программе пользователь вводит с клавиатуры выборку из 5 чисел, которыми заполняется массив mas. Параллельно с вводом данных

подсчитывается общая сумма чисел s. Затем определяется среднее арифметическое выборки ar. Далее находится сумма квадратов отклонений

элементов массива от среднего, которое присваивается вспомогательной переменной sum1. Наконец, после деления этой суммы на число элементов

выборки и извлечения квадратного корня, получается искомая величина s

среднее квадратическое отклонение.

На рис. 3.4 показаны результаты работы данной программы.

Рис. 3.4. Результаты работы программы, вычисляющей среднее квадратическое отклонение для группы из 5 элементов

3.2. Создание программного статистического модуля

После того как были составлены программы для определения основных статистических величин, целесообразно составить программу, которая для заданной выборки элементов проводит комплексный статистический анализ,

70

определяя сразу несколько основных характеристик этой выборки. Поэтому создадим программный модуль, к которому можно обращаться из разных программ, производящих статистические вычисления. Сам процесс создания пользователем нового программного модуля был подробно описан в разделе 1.2. данного пособия на примере создания математического модуля, поэтому в этом разделе лишь кратко рассмотрены основные этапы создания программного модуля для статистических вычислений.

Создаваемый программный статистический модуль получил имя stat4, потому что он объединяет четыре статистические функции. Это

функция вычисления среднего арифметического sredar, функция вычисления медианы median, функция определения моды moda и функция вычисления среднеквадратического отклонения stotkl.

Для удобства пользователей каждая из этих функций имеет одинаковые входные параметры. Этими параметрами являются набор данных m и

количество элементов в этом наборе n. Набор данных m фактически задается в виде массива, но массив непосредственно не может быть параметром

функции. Поэтому в модуле мы описали новый тип данных mass, в основе

которого находится вещественный массив из 50 элементов. Переменная

m

типа mass может

быть параметром функции и использоваться

в

вычислениях. При вычислении значений функций используются алгоритмы, которые описаны в предыдущем разделе данного пособия.

unit stat4; interface

type mass=array[1..50] of real; function sredar(m:mass; n:integer):real;

function mediana(m:mass; n:integer):real; function moda(m:mass; n:integer):real; function stotkl(m:mass; n:integer):real;

implementation function sredar;

var i:integer; ar,s:real; begin

s:=0;

for i:=1 to n do s:=s+m[i]; ar:=s/n; sredar:=ar; end;

function mediana; var i,k,p,t:integer;

max:real; begin

for t:=n downto 2 do

71

begin max:=m[1]; k:=1;

for i:=2 to t do begin

if m[i]>max then begin

max:=m[i];

k:=i

end;

end;

m[k]:=m[t];

m[t]:=max;

end;

p:=round(n/2);

mediana:=m[p];

end; function moda;

var i,k,l,nmd:integer; md,mx:real;

begin md:=0; nmd:=0;

for i:=1 to n do begin mx:=m[i]; l:=1;

for k:=i+1 to n do

if mx=m[k] then l:=l+1; if l>nmd then

begin md:=mx; nmd:=l end; end;

moda:=md;

end;

function stotkl; var i:integer;

s,sum,sum1,ar:real; begin

sum:=0;

sum1:=0;

for i:= 1 to n do sum:=sum+m[i];

72

ar:=sum/n;

for i:=1 to n do sum1:=sum1+sqr(m[i]-ar); s:=sqrt(sum1/n);

stotkl:=s; end.end;

Для проверки работоспособности модуля создадим программу komplst, которая для заданного набора данных проводит комплексную

статистическую обработку, вычисляя все четыре основных характеристики. Программа начинается с ввода исходных данных, которыми являются количество элементов в наборе данных n и сам набор данных, задаваемый в виде переменной mas типа mass. Следует отметить две особенности, относящиеся к данным переменным.

Во-первых, в модуле stat4 задан алгоритм обработки массива данных, содержащего до 50 элементов. Но при вводе значения переменной n

мы можем указать для нее и значение, меньшее 50. Это не влияет на работоспособность программы и правильность получаемых результатов, так как модуль обрабатывает только то количество элементов массива, которое

задано переменной n.

Во-вторых, тип данных mass не описан в программе komplst.

Необходимость в таком описании отсутствует, так как этот тип уже описан в модуле stat4, к которому обращается в дальнейшем программа komplst.

После ввода исходных данных программа komplst обращается ко всем функциям модуля stat4 и выводит результаты статистического

анализа данных, полученные с помощью этого модуля, на экран компьютера. Текст программы приводится ниже:

program komplst; uses crt,stat4; var i,n:integer; mas:mass;

begin clrscr;

writeln('введите количество элементов выборки'); readln(n);

writeln('введите элементы выборки'); writeln('ввод данных производится через пробел'); for i:=1 to n do

read(mas[i]);

writeln('Среднее арифметическое равно ',sredar(mas,n):8:3);

writeln('Медиана равна ',mediana(mas,n):8:3); writeln('Мода равна ',moda(mas,n):8:3);

73

writeln('Среднее квадратическое отклонение равно ',stotkl(mas,n):8:3);

readln;

readln;

end.

Результаты работы данной программы для статистического анализа выборки, состоящей из 7 элементов, показаны на рис. 3.5.

Рис. 3.5. Результаты работы программы комплексной статистической обработки данных

74