|
|
| Новости |
ПОЛНАЯ ПРОГРАММА ПО СТАТИСТИЧЕСКОМУ АНАЛИЗУ
К этому моменту в этой главе были разработаны несколько
функций по выполнению статистических вычислений для генеральных
совокупностей с одной переменной. В этом разделе эти функции бу-
дут собраны в одну программу по анализу данных, выводу стол - би-
ковых диаграмм , точечных графиков и прогнозирования. Перед про-
ектированием такой программы необходимо определить запись для
хранения переменных данных и несколько необходимых вспомогатель-
ных подпрограмм.
Прежде всего нам потребуется массив для хранения значений
выборки. Можно использовать одномерный массив чисел с плавающей
точкой 'data' с размером МАХ. Максимальное значение должно выби-
раться таким, чтобы вместить максимальную выборку. В нашем случае
это число равно 100. Ниже дается определение констант и типов, а
также глобальных переменных:
Uses
Crt, Graph;
const
MAX = 100;
type
str80 = string[80];
DataItem = real;
DataArray = array [1..80] of DataItem;
var
data: DataArray;
a, m, md, std: real;
num: integer;
ch: char;
datafile: file of DataItem;
GraphDriver, Craphmode : ineger;
Кроме уже разработанных статистических функций вам потребу-
ется ефкже подпрограммы по сохранению и загрузке данных. Подпрог-
рамма "Save" должна также сохранить число элементов данных, а
подпрограмма "Load" должна считывать это число.
{ сохранить данные }
procedure Save(data: DataArrary; num: integer):
var
t: integer;
fname: string[80];
temp: real;
begin
Write('Enter Filename: ');
Readln(fname);
Assign(datafile,fname);
rewrite(datafile);
temp := num;
write(datafile,temp);
for t := 1 to num do write(datafile,data[t]);
close(datafile);
end;
{ загрузить данные }
procedure Load;
var
t: integer;
fname: string[80];
temp: real;
begin
Write('Enter Filename: ');
Readln(fname);
Assign(datafile,fname);
reset(datafile);
Read(datafile,temp);
num := trunc(temp);
for t := 1 to num do Read(datafile,data[t]);
close(datafile);
end;
Ниже приводится полная программа по статистическому анализу:
program stats;
Uses
Crt, Graph;
const
MAX = 100;
type
str80 = string[80];
DataItem = real;
DataArray = array [1..80] of DataItem;
var
data: DataArray;
a, m, md, std: real;
num: integer;
ch: char;
datafile: file of DataItem;
GraphDriver, Craphmode : integer;
{ версия быстрой сортировки для челых чисел }
procedure QuickSort(var item: DataArray; count: integer);
procedure qs(l, r:integer; var it: DataArray);
var
i, j: integer;
x, y: DataItem;
begin
i := l; j := r;
x := it[(l+r) div 2];
repeat
while it[i] < x do i := i+1;
while x < it[j] do j := j-1;
if i <= j then
begin
y := it[i];
it[i] := it[j];
it[j] := y;
i := i+1; j := j-1;
end;
until i>j;
if l
|
|
(с)Все права защищеныПо всем интересующим вопросампрошу писать на электронный адрес
|