Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
igorazanov1
0 / 0 / 0
Регистрация: 05.06.2018
Сообщений: 1
1

Ошибка "invalid procedure call or argument"

05.06.2018, 10:46. Просмотров 114. Ответов 3
Метки нет (Все метки)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Sub Тонколистовая_прокатка()
'объявление переменных
Dim i As Integer 'номер сечения
Dim ii As Integer 'номер нейтрального сечения
Dim n As Integer 'число разбиений очага деформации
Dim h0 As Double 'начальная толщина листа
Dim hn As Double 'конечная толщина листа
Dim h() As Double 'толщина листа в i-том сечении (массив)
Dim St0 As Double 'начальный предел текучести
Dim Stn As Double 'конечный предел текучести
Dim St() As Double 'предел текучести в i-том сечении (массив)
Dim q0 As Double 'уровень заднего натяжения
Dim qn As Double 'уровень переднего натяжения
Dim R As Double 'радиус рабочего валка
Dim a As Double 'коэффициент упрочнения
Dim b As Double 'коэффициент упрочнения
Dim alfa As Double 'угол захвата
Dim fi() As Double 'угол fi (массив)
Dim dx() As Double 'dx (массив)
Dim P1() As Double 'нормальные напряжения в зоне отставания
Dim P2() As Double 'нормальные напряжения в зоне опережения
Dim P() As Double 'напряжения для двух зон очага деформации
Dim PP As Double 'сумма нормальных напряжений
Dim PPP As Double 'полное усилие прокатки
Dim K0 As Double 'предел текучести на сдвиг начальный
Dim Kn As Double 'предел текучести на сдвиг конечный
Dim K() As Double 'предел текучести на сдвиг в i-том сечении
Dim m As Double 'коэффициент трения
Dim W As Double 'ширина листа
 
'присвоение переменным числовых значений из ячеек листа Excel
h0 = Range("D3").Value 'значение начальной толщины листа
hn = Range("D4").Value 'значение конечной толщины листа
W = Range("D5").Value 'значение ширины листа
St0 = Range("D6").Value 'значение начального предела текучести
q0 = Range("D7").Value 'значение уровня заднего натяжения
qn = Range("D8").Value 'значение уровня переднего натяжения
m = Range("D9").Value 'значение коэффициента трения
a = Range("D10").Value 'значение коэффициента упрочнения a
b = Range("D11").Value 'значение коэффициента упрочнения b
R = Range("D12").Value 'значение радиуса рабочего валка
n = Range("D13").Value 'число разбиений очага деформации
 
'объявление массива
ReDim fi(0 To n) As Double
ReDim h(0 To n) As Double
ReDim dx(0 To n) As Double
ReDim St(0 To n) As Double
ReDim K(0 To n) As Double
ReDim P1(0 To n) As Double
ReDim P2(0 To n) As Double
ReDim P(0 To n) As Double
 
Stn = St0 + a * ((h0 - hn) / h0) ^ b 'формула(22)
Kn = Stn / Sqr(3) 'формула(21)
K0 = St0 / Sqr(3) 'формула(19)
alfa = 2 * Atn(Sqr((h0 - hn) / (4 * R - (h0 - hn)))) 'формула (8)
 
i = 1 'расчет для зоны отставания от i=1 до i=n
1: fi(i) = alfa * (n - i) / n 'формула(7)
h(i) = hn + 2 * R * (1 - Cos(fi(i))) 'формула(6)
fi(0) = alfa
dx(i) = R * (Sin(fi(i - 1)) - Sin(fi(i))) 'формула(5)
St(i) = St0 + a * ((h0 - h(i)) / h0) ^ b 'формула(12)
K(i) = St(i) / Sqr(3) 'формула(11)
P1(0) = 2 * K0 - q0 * St0 'формула (18)
h(0) = h(0)
K(0) = K(0)
P1(i) = (P1(i - 1) * h(i - 1) - 2 * K(i - 1) * h(i - 1) + 2 * K(i) * h(i)) / (h(i) + 2 * dx(i) * Tan(fi(i)) - 2 * m * dx(i)) 'формула(14)
If m * P1(i) <= K(i) Then
P1(i) = P1(i)
Else
P1(i) = (P1(i - 1) * h(i - 1) - 2 * K(i - 1) * h(i - 1) + 2 * K(i) * h(i)) / (h(i) + 2 * dx(i) * Tan(fi(i))) 'формула (15)
End If
If i < n Then
i = i + 1
GoTo 1
End If
i = n - 1 'расчет для зоны опережения от i=n-1 до i=ii
2: fi(n) = 0
fi(i) = alfa * (n - i) / n 'формула(7)
h(i) = hn + 2 * R * (1 - Cos(fi(i))) 'формула(6)
dx(i) = R * (Sin(fi(i)) - Sin(fi(i + 1))) 'формула(5)
St(i) = St0 + a * ((h0 - h(i)) / h0) ^ b 'формула(12) <------ ПИШЕТ ЧТО ТУТ ОШИБКА
St(n) = Stn
K(i) = St(i) / Sqr(3) 'формула(11)
P2(n) = 2 * Kn - qn * Stn 'формула(20)
h(n) = hn
K(n) = Kn
dx(n) = 0
P2(i) = (P2(i + 1) * (h(i + 1) + 2 * dx(i + 1) * Tan(fi(i + 1)) + 2 * m * dx(i + 1)) + 2 * K(i) + h(i) - 2 * K(i + 1) * h(i + 1)) / h(i) 'формула(16)
If m * P2(i) <= K(i) Then
P2(i) = P2(i)
Else
P2(i) = (P2(i + 1) * (h(i + 1) + 2 * dx(i + 1) * Tan(fi(i + 1)) + 2 * K(i) * h(i) - 2 * K(i + 1) * (h(i + 1) - dx(i + 1)))) / h(i) 'формула(17)
End If
If P1(i) - P2(i) <= 0 Then
ii = i
Else
i = i - 1
GoTo 2
End If
 
PP = 0
For i = o To n
If i < ii Then
P(i) = P1(i)
Else
P(i) = P2(i)
End If
PP = PP + P(i)
Next i
PPP = PP * W * alfa * R / n * 10 / 1000000 'полное усидие в МН
 
'вывод результатов расчета на лист Excel
For i = 0 To n
Cells(3 + i, 7).Value = i
Cells(3 + i, 8).Value = Sqr(R * (h0 - hn)) * i / n 'длина очага деформации
Cells(3 + i, 9).Value = P(i) 'контактные нормальные напряжения
Next i
Cells(3, 11).Value = PPP 'полное усилие
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2018, 10:46
Ответы с готовыми решениями:

Ошибка 'Invalid procedure call or argument'
Вот я сделал что по отправки кода на сервер с директорией сервак отправляет мне...

Ошибка: "wrong number of argument or invalid property assignment"
For i = 1 To ASize A(i - 1) = Text1.Text(i) Next i почему ругается на...

Книга не работает на другом ПК "Invalid outside procedure"
Всем, доброго дня. Подскажите пожалуйста в чем может быть проблема. Вот отсюда:...

run-time error 5 Invalid procedure or argument
Sub fgh() x = InputBox(&quot;Ââåäèòå x&quot;) Dim b1 As Single For i = 1 To 6 c =...

Ошибка "Invalid Next control variable reference"
Помогите исправить ошибку в коде Private Sub CommandButton1_Click() Dim a, b,...

3
Catstail
Модератор
23732 / 11816 / 2066
Регистрация: 12.02.2012
Сообщений: 19,215
05.06.2018, 16:10 2
В каком месте ошибка?
0
_shark
153 / 157 / 25
Регистрация: 11.10.2016
Сообщений: 506
06.06.2018, 14:18 3
Цитата Сообщение от igorazanov1 Посмотреть сообщение
Sqr((h0 - hn) / (4 * R - (h0 - hn)))
Sqr(R * (h0 - hn))
возможно, пытаетесь получить корень из отрицательного числа
0
АЕ
70 / 38 / 7
Регистрация: 13.12.2016
Сообщений: 227
07.06.2018, 10:06 4
Попробуйте поставить пузу и пробежаться по значениям переменных, и продвигать понемногу точку останова пока не вылезет ошибка... (ну я так в запутанных случаях делаю)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2018, 10:06

Горит UltraText и пишет : "Argument not optional"
Private Sub cmdText_Click() 'end/dec text Call LockKeys Me.txtSource.Text =...

Готовый код не компилируется из-за ошибки "Procedure declaration does not match description"
Доброго времени суток! Ребята, написал программу, появляется ошибка...

Не работает консольное приложение ("invalide outside procedure")
Доброго вечера! Basic я не знаю совсем, нужно сделать простой пример программы....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru