Вид РИД
Программа для ЭВМ
Sub Макрос4()
'
' Макрос4 Макрос
'
S1 = 0
S2 = 0
S3 = 0
S4 = 0
S5 = 0
S6 = 0
test0 = 1000000000
otvet = 0
For k = 1 To 7
S1 = Val(данные.Controls("TextBox" & (10 * 1 + k))) + S1
S2 = Val(данные.Controls("TextBox" & (20 * 1 + k))) + S2
S3 = Val(данные.Controls("TextBox" & (30 * 1 + k))) + S3
S4 = Val(данные.Controls("TextBox" & (40 * 1 + k))) + S4
End If
Next k
For k = 1 To 7
данные.Controls("Label" & (10 * 1 + k)).Caption = Round((100 * Val(данные.Controls("TextBox" & (10 * 1 + k))) / S1), 3)
данные.Controls("Label" & (20 * 1 + k)).Caption = Round((100 * Val(данные.Controls("TextBox" & (20 * 1 + k))) / S2), 3)
данные.Controls("Label" & (30 * 1 + k)).Caption = Round((100 * Val(данные.Controls("TextBox" & (30 * 1 + k))) / S3), 3)
данные.Controls("Label" & (40 * 1 + k)).Caption = Round((100 * Val(данные.Controls("TextBox" & (40 * 1 + k))) / S4), 3)
Next k
ogn1 = Worksheets("vhod").Cells(3, 2).Value
ogn2 = Worksheets("vhod").Cells(3, 3).Value
ogn3 = Worksheets("vhod").Cells(3, 4).Value
ogn4 = Worksheets("vhod").Cells(3, 5).Value
ogn5 = Worksheets("vhod").Cells(3, 6).Value
ogn6 = Worksheets("vhod").Cells(3, 7).Value
ogv1 = Worksheets("vhod").Cells(4, 2).Value
ogv2 = Worksheets("vhod").Cells(4, 3).Value
ogv3 = Worksheets("vhod").Cells(4, 4).Value
ogv4 = Worksheets("vhod").Cells(4, 5).Value
ogv5 = Worksheets("vhod").Cells(4, 6).Value
ogv6 = Worksheets("vhod").Cells(4, 7).Value
i = -1
iter = 0
For a = 0 To 0 Step i
For b = 0 - a To 0 Step i
For c = 100 - a - b To 0 Step i
For d = 100 - a - b - c To 0 Step i
For e = 100 - a - b - c - d To 0 Step i
J = 100 - a - b - c - d - e
okr = 1
p1 = Round((100 - J * Label11 / 100 - e * Label21 / 100 - d * Label31 / 100 - c * Label41 / 100 - b * Label51 / 100 - a * Label61 / 100), okr)
p2 = Round((p1 - J * Label12 / 100 - e * Label22 / 100 - d * Label32 / 100 - c * Label42 / 100 - b * Label52 / 100 - a * Label62 / 100), okr)
p3 = Round((p2 - J * Label13 / 100 - e * Label23 / 100 - d * Label33 / 100 - c * Label43 / 100 - b * Label53 / 100 - a * Label63 / 100), okr)
p4 = Round((p3 - J * Label14 / 100 - e * Label24 / 100 - d * Label34 / 100 - c * Label44 / 100 - b * Label54 / 100 - a * Label64 / 100), okr)
p5 = Round((p4 - J * Label15 / 100 - e * Label25 / 100 - d * Label35 / 100 - c * Label45 / 100 - b * Label55 / 100 - a * Label65 / 100), okr)
p6 = Round((J * Label17 / 100 + e * Label27 / 100 + d * Label37 / 100 + c * Label47 / 100 + b * Label57 / 100 + a * Label67 / 100), okr)
If p1 >= ogn1 And p1 <= ogv1 And p2 >= ogn2 And p2 <= ogv2 And p3 >= ogn3 And p3 <= ogv3 And p4 >= ogn4 And p4 <= ogv4 And p5 >= ogn5 And p5 <= ogv5 And p6 >= ogn6 And p6 <= ogv6 Then
test = (p3 - (ogv3 + ogn3) / 2) ^ 2 + (p4 - (ogv4 + ogn4) / 2) ^ 2 + (p5 - (ogv5 + ogn5) / 2) ^ 2 + (p5 - (ogv5 + ogn5) / 2) ^ 2 + (p6 - (ogv6 + ogn6) / 2) ^ 2
'
'
If test < test0 Then
test0 = test
Jx = J
ex = e
dx = d
cx = c
bx = b
ax = a
otvet = otvet + 1
px1 = p1
px2 = p2
px3 = p3
px4 = p4
px5 = p5
px6 = p6
End If
End If
iter = iter + 1
If e = 0 Then Exit For
Next e
If d = 0 Then Exit For
Next d
If c = 0 Then Exit For
Next c
If iter = stop_for Then Exit For
If b = 0 Then Exit For
Next b
If iter = stop_for Then Exit For
If a = 0 Then Exit For
Next a
MsgBox iter
MsgBox p1 & " " & p2 & " " & p3 & " " & p4 & " " & p5 & " " & p6
If otvet = 0 Then
MsgBox "нет решения"
MsgBox J & " " & e & " " & d & " " & c & " " & b & " " & a
Else
MsgBox otvet & "положительных решкний"
MsgBox Jx & " " & ex & " " & dx & " " & cx & " " & bx & " " & ax
End If
Worksheets("vhod").Range("I13").Value = Val(Jx)
Worksheets("vhod").Range("I14").Value = Val(ex)
Worksheets("vhod").Range("I15").Value = Val(dx)
Worksheets("vhod").Range("I16").Value = Val(cx)
Worksheets("vhod").Range("I17").Value = Val(bx)
Worksheets("vhod").Range("B6").Value = Val(px1)
Worksheets("vhod").Range("C6").Value = Val(px2)
Worksheets("vhod").Range("D6").Value = Val(px3)
Worksheets("vhod").Range("E6").Value = Val(px4)
Worksheets("vhod").Range("F6").Value = Val(px5)
Worksheets("vhod").Range("G6").Value = Val(px6)
'
End Sub