- •1. Переменные 5
- •2. Массивы 6
- •3. Автономно запрограммированная процедура 6
- •Постановка задачи
- •Инструкция по пользованию программой
- •1. Переменные
- •2. Массивы
- •3. Автономно запрограммированная процедура
- •Описание программы
- •Листинг программы приведен ниже.
- •Последовательность выполнения программы.
- •Процедура ogr
- •Процедура mcch
- •Процедура ctatobr
- •Описание работы с программой
- •В каждом из файлов – даётся краткая характеристика закона распределения
- •Использование буфера обмена (бо)
- •Пояснение как создать необходимый exe-файл к программе «Оболочка» прилагается папка «Создание ехе Процесс».
- •Как создать ProjectOfflineProcess.
- •Файл typedata.Pas
- •Литература
- •Скриншоты программы
Файл typedata.Pas
Содержит unit typeDATA – где приводятся описания типов переменных. Там же приведены переменные типа const, предельные значения которых равны
QmaxM=100; // размерность входного вектора
nNvuxM=100; // размерность выходного вектора
wmaxM =100; // число интервалов для гистограммы
NomerZM=6; // число законов для входного вектора
Эти значения определяют границы массивов в unit Global_ID_Data;
Чтобы изменить границы массивов (размерности векторов) надо задать новые значения QmaxM и NvuxM (допустимо только в меньшую сторону). Число интервалов для построения гистограммы WvuxM можно не изменять, значение WvuxM =100 достаточно, чтобы перекрыть возможные требования.
Листинг typeDATA
unit typeDATA; { ---- 17 августа 1993 г. ---- }
{ --- статистическое моделирование параметров СНС ------------------- }
interface
{ --- Ограничения-макс.Nvux=100; ограничение не программное --------- }
{ ---- число входов Q=100; число выходов Nvux=100;
w=50-число интервалов ---- }
{ --- type raX=array[1..Q=100] of extended; raM=array[1..Q=100,1..7] of extended;
--- raY=array[1..Nvux= 100] of extended; raF=array[1..Nvux=100,1..w=50] of extended;
--- raMF=array[1..Nvux,1..6] of extended;
--- raPF=array[0..w] of extended;;
--- raMPRFR=array[1..Nvux=100,0..w=50] of extended;
M[i,j]- i-строка; j- столбец;
----------------------- }
const
QmaxM=100; // размерность входного вектора
nNvuxM=100; // размерность выходного вектора
wmaxM =100; // число интервалов для гистограммы
NomerZM=6; // число законов для входного вектора
type
raX = array [1 .. QmaxM] of extended;
// raXim = array [1 .. 10] of extended;
{--- type raX=array[1..Q] of extended; raM=array[1..Q,1..7] of extended;
--- raY=array[1..Nvux] of extended; raF=array[1..Nvux,1..w] of extended;
--- raMF=array[1..Nvux,1..8] of extended; raF0=array[1..w+1] of extended;
--- iaK=array[1..Q] of integer; raPF=array[0..w] of extended;
--- raMPRFR=array[1..Nvux,0..w] of extended; ----------------------- }
vekt = array [1 .. 3] of extended;
vektcoord = array [1 .. 24] of vekt;
yCos = array [1 .. 3] of vekt;
ycoordPointY = array [1 .. 24] of extended;
matrix = array [1 .. 3, 1 .. 3] of extended;
raMatric3_3 = array [1 .. 3, 1 .. 3] of extended;
// raAB100 = array [1 .. 100, 1 .. 100] of extended;
raiDPoint = array [1 .. 4, 1 .. 6] of extended;
raiDVector = array [1 .. 3, 1 .. 15] of extended;
raCrdNaT = array [1 .. 4, 1 .. 3] of extended;
ra5 = array [1 .. 20, 1 .. 5] of extended;
// raF = array [1 .. 100, 0 .. 100 ] of extended;
raF = array [1 .. nNvuxM, 0 .. wmaxM] of extended;
{
for m:= 1 to Nvux do begin
for i:= 0 to W do
begin
strFormatMX[m ,i]:= FloatToStrF(MX[m ,i], ffGeneral,6, 2); //Xmin
MX[m ,i]:= StrToFloat(strFormatMX[m ,i]);
}
dopraF = array [1 .. nNvuxM, 0 .. wmaxM+5] of extended;
// raF=array[1..Nvux,1..w] of extended;
// raF = array [1 ..nNvux= 20, 1 .. w=50] of extended;
// raMF = array [1 ..nNvux= 20, 1 .. 8] of extended;
// raMF = array [1 .. nNvuxM, 1 .. 10] of extended;
// --- raMF=array[1..Nvux,1..8] of extended; raF0=array[1..w+1] of extended;
// --- iaK=array[1..Q] of integer; raPF=array[0..w] of extended;
// {--- type raX=array[1..Q] of extended;
// raM=array[1..Q,1..7] of extended;
{ yKolesa } vekt5 = array [1 .. 5] of extended;
ra12 = array [1 .. 12] of extended;
// raF0=array[1..w+1] of extended;
raF0_100 = array [0 .. wmaxM] of extended;
raPF0_100 = array [0 .. wmaxM] of extended;
// raMPRFR=array[1..Nvux,0..w] of extended;
raMPRFR = array [1 .. nNvuxM, 1 .. wmaxM] of extended;
// raAPoint = array [1 .. 4] of string;
raX0_101 = array [0 .. QmaxM+1] of extended;
raString0_101 = array [0 .. QmaxM+1] of String;
// BUXStatProm, BXStatProm:raX0_101;
// BXBUX: raX0_101;
int = integer;
rea = real;
ext = extended;
// strFormatMPR , strFormatMFR, strFormatMX :raString100_100;
raString100_100 = array [1 .. nNvuxM, 0 .. wmaxM] of string;
{
for m:= 1 to Nvux do begin
for i:= 0 to W do
begin
strFormatMX[m ,i]:= FloatToStrF(MX[m ,i], ffGeneral,6, 2); //Xmin
MX[m ,i]:= StrToFloat(strFormatMX[m ,i]);
strFormatMPR[m ,i]:= FloatToStrF(MPR[m ,i], ffGeneral,6, 2); //Xmin
MPR[m ,i]:= StrToFloat(strFormatMPR[m ,i]);
}
raX100 = array [1 .. 100] of extended;
// strFormatMPR[m ,wmaxM]:= FloatToStrF(MPR[m ,i], ffGeneral,6, 2); //Xmin
// MPR[m ,i]:= StrToFloat(strFormatMPR[m ,i]);
raM100_10 = array [1 .. QmaxM, 1 .. 10] of extended;
raStringW100 = array [1 .. wmaxM] of string;
// StrNomerZ : raString20 ;
// raString20 = array [1 .. NomerZM] of string; //массив законов
raString100 = array [1 .. 100] of string;
raStringNomerZ = array [1 .. NomerZM] of string;
// var StrNomerZ :raStringNomerZ;
raStringNvux = array [1 .. nNvuxM] of string;
raStringBxoda = array [1 .. QmaxM] of string;
raString12 = array [1 .. 12] of string;
//Тип - динамический массива переменных.
TArr = array of extended;
// StrNomerJNvux: raString100;
// var StrNomerZ :raString100;
// StrNomerJBxoda: raString100;
// StrNomerJRBuxoda: raString50;
// strFormat: raString100;
implementation
end.