Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Варфоломеев алгоритмизация.doc
Скачиваний:
16
Добавлен:
11.11.2019
Размер:
2.78 Mб
Скачать

1.1. Таблица свойств

Объекты

Свойства

Установки

Командная кнопка 1

Name

Command 1

Caption

Расчет

Командная кнопка 2

Name

Command2

Caption

Очистка

Командная кнопка 3

Name

Command3

Caption

Выход

1.2. Процедуры обработки прерываний

Private Sub Command 1 Click()

Lz = Val(Textl): P = Val(Text2): С = Va!(Text3) TD = Val(Text4): STotn = Val(Text5): Nr = Val(Text6) For j = 1 To 4: MTobs(j) = Val(Text7(j - 1)): Next j Call Model4

End Sub

Private Sub Command2_Click() Text8 = Texrt = ""

End Sub

Private Sub Command3_Click() End

End Sub

2. Модуль общего назначения Model4.bas

Public MTobs(4), TH(4), TK(4)

Public Mprof As Double, Cprof As Double, Sum2 As Double

Public SNM As Double, SigProf As Double Public Lz, P, C, TD, STotn, Nr Public lr, Nz, TzO, Nobs, i, j, z, Tz, N, Tobs, Sz, Min Public Max, SMT, Fact

Const К = 4 ' число цехов

Public Sub Model4() Randomize

'обнуление глобальных переменных: Mprof = 0 ' начальное значение средней прибыли

Sum2 - 0 ' начальное значение суммы квадратов прибыли

For 1г = 1 То Nr ' начало цикла случайных реализаций

' обнуление локальных переменных Nz = 0: TzO = 0: Nobs = 0 For j = 1 To K: TIC© = 0- Next j

Do ' начало внутреннего цикла DO .LOOP

z = Rnd ' случайная величина с равномерным распределением Tz = TzO - Log(z) / Lz ' время поступления заказа

TzO = Tz

If Tz > TD Then Exit Do

Nz = Nz + 1 ' счетчик числа заказов

For j = 1 To К ' начало цикла выполнения заказов

If Tz > TK© Then TH0)=Tz Else TH(j)=TK© N = NORM ' функция "Нормальное распределение"

Tobs = MTobs© * (1 + N * STotn)

TK© = TH(j) + Tobs ' время окончания обслуживания

If TK(j) > TD Then Exit Do Tz = TK© Next j

Nobs = Nobs + 1 Loop

' результаты расчета одной реализации: Prof = Р * Nobs - С ' прибыль

Mprof = Mprof + Prof ' суммарная прибыль

Sum2 = Sum2 + Prof * Prof ' сумма квадратов прибыли

Next lr ' конец цикла случайных реализаций

Cprof = Mprof I Nr ' средняя прибыль

Disp = (Sum2 - Nr * Cprof * Cprof) / (Nr - 1) ' дисперсия прибыли If Disp > 0 Then SigProf = Sqr(Disp) Else SigProf = 0 Gprof = Cprof - 1.28 * SigProf 'минимальная гарантированная прибыль Call Factor ' расчет величины числового фактора

Form 1 .Text8 = Format$(Fact, "0.000") Form 1 .Text9 = Format$(Gprof, "#####") End Sub

Function NORM()

'процедура-функция "Нормальное распределение" Sz = О

For i = 1 To 12

z = Rnd : Sz = Sz + z Next i

NORM = Sz - 6 End Function

Public Sub Factor()

'процедура расчета числового фактора Min - MTobs(l): Max = MTobs(l): SMT = 0 For f = 1 To К

SMT = SMT + MTobs(f)

If MTobs(f) > Max Then Max = MTobs(f)

If MTobs(f) < Min Then Min = MTobs(f) Next

Fact = (Max - Min) / SMT End Sub

Приложение S

Программа

модели торговой точки на языке Visual Basic 5.0

1. Стартовая форма frmForml

Макет стартовой формы приведен на рис. 7.1, с. 117.