Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 45

Что не так с этим кодом?

12.07.2019, 00:57. Показов 2840. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код должен производить pacчeт траектории движeния капель щелока в excel.
В vba к сожалению практически ничего не понимаю.

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
Dim M(20, 20)
Dim N(20, 20)
Print "T="
Input T
Print "T1="
INPUT T1
Print "T2="
INPUT T2
Print "V2="
INPUT V2
Print "V3="
INPUT V3
Print "D="
INPUT D
Print "ВВЕДИТЕ ИМЯ ФАЙЛА ДАННЫХ R*.KAT"
INPUT A
Print "ИМЯ ИСХОДНЫХ ДАННЫХ ДЛЯ ЧТЕНИЯ S*.KAT "
INPUT S
Print "ВВЕДИТЕ ИМЯ ФАЙЛА ДЛЯ ЗАПИСИ РЕЗУЛЬТАТОВ STF*.KAT"
INPUT M
OPEN M FOR OUTPUT AS FILE 2
OPEN S FOR INPUT AS FILE 1
For Y = 0 To 12
For X = 0 To 8
INPUT 1, M (X , Y) , N (X , Y)
Next X
Next Y
INPUT 1, L1, L2, X1, Y1
Close 1
OPEN A FOR OUTPUT AS FILE 3
Print 3, "-----------------------------------------------"
Print 3, "  T  !  X1  !  Y1  !  V1  !  V2  !  V3  "
Print 3, "-----------------------------------------------"
I = Int(X1 / L1)
J = Int(Y1 / L2)
Z1 = (X1 - IxL1) / L1
Z2 = (Y1 - JxL2) / L2
Z3 = M(I, J) + (M(I + 1, J) - M(I, J)) * Z1
Z4 = M(I, J + 1) + (M(I + 1, J + 1) - M(I, J + 1)) * Z1
W1 = Z3 + (Z4 - Z3) * Z2
Z5 = N(I, J) + (N(I + 1, J) - N(I, J)) * Z1
Z6 = N(I, J + 1) + (N(I + 1, J + 1) - N(I, J + 1)) * Z1
W2 = Z5 - (Z6 - Z5) * Z2
T = T + T1
If T > T2 Then GoTo 1000
If D = 1 Then GoTo 340
If D = 2 Then GoTo 350
If D = 3 Then GoTo 355
If D = 4 Then GoTo 370
If D = 5 Then GoTo 380
V1=.36*T^2-2.37*T+4.96\GO TO 390
V1=.216*T^2-2.23*T+6.65\GO TO 390
V1=.135*T^2-2.33*Y+11.1\GO TO 390
GoTo 390
GoTo 390
IF V1<=0 GO TO 1000
C1 = 9.8 / V1 ^ 2
C2 = 1 / C1
C3 = -19 / V1
C4 = Exp(C3)
If C4 < 0.0000001 Then C4 = 0
If W1 < 0 Then GoTo 455
If V2 > W1 Then GoTo 530
If V2 < W1 Then GoTo 700
V2 = (V2 + W1) / (1 + T * (V2 + W1) * C1) - W1
X2 = C2 * Log(1 + C1 * T1 * (V2 + W1)) - W1 * T1
GoTo 755
V2 = W1 + ((V2 - W1) / (1 + T * (V2 - W1) * C1))
X2 = W1 * T1 + C2 * Log(1 + C1 * T1 * (V2 - W1))
GoTo 755
V2 = W1 + (V2 - W1) / (1 + T * (V2 - W1) * C1)
X2 = W1 * T1 + C2 * Log(1 + C1 * T1 * (W1 - V2))
X1 = X1 + X2
If W2 > V1 Then GoTo 855
K1 = V1 + W2
K2 = V1 - V3 - W2
K3 = V1 - W2
K4 = V1 + V3 + W2
V3 = (K1 * K2 * C4 ^ T - K3 * K4) / (K4 + K2 * C4 * T)
Y2 = C2 * Log(Abs(K4 / (2 * V1) + K2 * C4 ^ T1 / (2 * V1))) - K3 * T1
GoTo 930
K1 = V1 + W2
K2 = V1 - W2 + V3
K3 = W2 - V1
K4 = V1 + W2 - V3
V3 = (K3 * K4 + K1 * K2 * C4 ^ T) / (K4 + K2 * C4 ^ T)
Y2 = K3 * T1 - C2 * Log(Abs(K4 / (2 * V1) + K2 * C4 ^ T1 / (2 * V1)))
Y1 = Y1 + Y2
Print T, X1, Y1, W2
If Y1 < 0 Then GoTo 1100
If Y1 > 12 Then GoTo 1100
F = "    !    !    !    !    !    "
Print USING; F, T; X1; Y1; V1; V2; V3
Print T; ","; X1; ","; Y1; ","; V1; ","; V2; ","; V3; ","; W2; ","; W1
If Y1 > 7 Then GoTo 960
GoTo 190
W1 = 0
W2 = 3
GoTo 260
Close
Close
End
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.07.2019, 00:57
Ответы с готовыми решениями:

Что не так с этим кодом?
Что не так с этим кодом? #include &lt;stdio.h&gt; struct Texture { unsigned int tex; Texture() { tex = 0; } };

Что не так с этим кодом ?
В PyCharm все работает, а если из командной строки python-e файл давать, то ошибку выдает ! from selenium import webdriver ...

Что не так с этим кодом? Массивы
Подскажите, пожалуйста, что здесь неправильно. Дан массив из 20 элементов. Массив заполняется с клавиатуры. Вывести массив на экран....

9
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
12.07.2019, 01:18
код не весь
вот эти goto - это переход на строку
если предположить что нумерация строк проставлена автоматически
и учесть что в Basic нумерация проводилась (обычно через 10 т.е. 10 20 30 40)
то должно быть более 110 строк
1
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 45
12.07.2019, 01:57  [ТС]
Код тут весь.
Но вы правы. Некоторые строки подписаны как 80-81-82-90-100-101-110-120-130.
Пошел думать как это все структурировать и запихать в excel.
Спасибо.
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
12.07.2019, 02:06
но номера строк вы не предоставили
1
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 45
12.07.2019, 02:13  [ТС]
Visual Basic
1 Dim М(20, 20)
2 Dim N(20, 20)
10 Print "Т="
20 Input T
30 Print "Т1="
40 INPUT Т1
50 Print "Т2="
60 INPUT Т2
70 Print "V2="
80 INPUT V2
81 Print "V3="
82 INPUT VЗ
90 Print "D="
100 INPUT D
101 Print "ВВЕДИТЕ ИМЯ ФАЙЛА ДАННЫХ R*.KAT"
102 INPUT А*
103 Print "ИМЯ ИСХОДНЫХ ДАННЫХ ДЛЯ ЧТЕНИЯ S*.KAT "
104 INPUT S*
105 Print "ВВЕДИТЕ ИМЯ ФАЙЛА ДЛЯ ЗАПИСИ РЕЗУЛЬТАТОВ STF*.KAT"
106 INPUT М*
107 OPEN М* FOR OUTPUT AS FILE 2
110 OPEN S* FOR INPUT AS FILE 1
120 For Y = 0 To 12
130 For X = 0 To 8
140 INPUT 1, M (X , Y) , N (X , Y)
150 Next X
160 Next Y
170 INPUT 1, L1, L2, X1, Y1
180 Close 1
181 OPEN A* FOR OUTPUT AS FILE 3
182 Print 3, "-----------------------------------------------"
183 Print 3, "  T  !  X1  !  Y1  !  V1  !  V2  !  V3  "
184 Print 3, "-----------------------------------------------"
190 I = Int(X1 / L1)
200 J = Int(Y1 / L2)
210 Z1 = (X1 - IxL1) / L1
220 Z2 = (Y1 - JxL2) / L2
230 Z3 = M(I, J) + (M(I + 1, J) - M(I, J)) * Z1
240 Z4 = M(I, J + 1) + (M(I + 1, J + 1) - M(I, J + 1)) * Z1
250 W1 = Z3 + (Z4 - Z3) * Z2
255 Z5 = N(I, J) + (N(I + 1, J) - N(I, J)) * Z1
257 Z6 = N(I, J + 1) + (N(I + 1, J + 1) - N(I, J + 1)) * Z1
259 W2 = Z5 - (Z6 - Z5) * Z2
260 T = T + T1
280 If T > T2 Then GoTo 1000
290 If D = 1 Then GoTo 340
300 If D = 2 Then GoTo 350
310 If D = 3 Then GoTo 355
320 If D = 4 Then GoTo 370
330 If D = 5 Then GoTo 380
340 V1=.36*T^2-2.37*T+4.96\GO TO 390
350 V1=.216*T^2-2.23*T+6.65\GO TO 390
355 V1=.135*T^2-2.33*Y+11.1\GO TO 390
370 GoTo 390
380 GoTo 390
390 IF V1<=0 GO TO 1000
395 C1 = 9.8 / V1 ^ 2
400 C2 = 1 / C1
410 C3 = -19 / V1
420 C4 = Exp(C3)
425 If C4 < 0.0000001 Then C4 = 0
430 If W1 < 0 Then GoTo 455
440 If V2 > W1 Then GoTo 530
450 If V2 < W1 Then GoTo 700
455 V2 = (V2 + W1) / (1 + T * (V2 + W1) * C1) - W1
470 X2 = C2 * Log(1 + C1 * T1 * (V2 + W1)) - W1 * T1
520 GoTo 755
530 V2 = W1 + ((V2 - W1) / (1 + T * (V2 - W1) * C1))
540 X2 = W1 * T1 + C2 * Log(1 + C1 * T1 * (V2 - W1))
590 GoTo 755
700 V2 = W1 + (V2 - W1) / (1 + T * (V2 - W1) * C1)
710 X2 = W1 * T1 + C2 * Log(1 + C1 * T1 * (W1 - V2))
755 X1 = X1 + X2
770 If W2 > V1 Then GoTo 855
780 K1 = V1 + W2
790 K2 = V1 - V3 - W2
810 K3 = V1 - W2
820 K4 = V1 + V3 + W2
830 V3 = (K1 * K2 * C4 ^ T - K3 * K4) / (K4 + K2 * C4 * T)
840 Y2 = C2 * Log(Abs(K4 / (2 * V1) + K2 * C4 ^ T1 / (2 * V1))) - K3 * T1
850 GoTo 930
855 K1 = V1 + W2
870 K2 = V1 - W2 + V3
890 K3 = W2 - V1
900 K4 = V1 + W2 - V3
910 V3 = (K3 * K4 + K1 * K2 * C4 ^ T) / (K4 + K2 * C4 ^ T)
920 Y2 = K3 * T1 - C2 * Log(Abs(K4 / (2 * V1) + K2 * C4 ^ T1 / (2 * V1)))
930 Y1 = Y1 + Y2
931 Print T, X1, Y1, W2
932 If Y1 < 0 Then GoTo 1100
933 If Y1 > 12 Then GoTo 1100
935 F = "    !    !    !    !    !    "
940 Print USING; F, T; X1; Y1; V1; V2; V3
941 Print T; ","; X1; ","; Y1; ","; V1; ","; V2; ","; V3; ","; W2; ","; W1
950 If Y1 > 7 Then GoTo 960
951 GoTo 190
960 W1 = 0
970 W2 = 3
980 GoTo 260
1000 Close
1010 Close
1100 End
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
12.07.2019, 06:49
Цитата Сообщение от Despair089 Посмотреть сообщение
В vba к сожалению практически ничего не понимаю.
Это ни коим образом не относится к VBA. Изначально код был написан для весьма древнего Бейсика, типа GW-BASIC или BASICA под управлением DOS.
Код можно исправить для работы с относительно менее древним QBasic. В основном нужно исправить кодировку под DOS ASCII.
Для того, чтобы код заработал в VBA нужно его полностью переписать заново.
1
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 45
12.07.2019, 06:55  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Изначально код был написан для весьма древнего Бейсика. Для того, чтобы код заработал в VBA нужно его полностью переписать заново.
Да я уже так и понял.
Еще на том моменте, когда мне это смесью бейсика и паскаля показалось.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
12.07.2019, 07:27
Цитата Сообщение от Despair089 Посмотреть сообщение
мне это смесью бейсика и паскаля показалось.

Я его запустил на QBasic, предварительно исправив некоторые моменты. Вроде работает, но точно сказать не могу, потому как нет файла с исходными данными, да и другие параметры, которые надо вводить мне не известны.
0
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 45
12.07.2019, 07:37  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я его запустил на QBasic, предварительно исправив некоторые моменты.
Удивительно!
Должен получиться график.
Можете скинуть?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
12.07.2019, 09:13
Цитата Сообщение от Despair089 Посмотреть сообщение
Должен получиться график.
Нет, график точно не должен. Там по идее должна быть таблица на выходе.
Но на входе запрашивается файл с данными типа R*.KAT, которого нет, потому не могу проверить.
Цитата Сообщение от Despair089 Посмотреть сообщение
Можете скинуть?
От самого файла толку вам точно не будет.
Вот сборка, которую можно запустить на современной Windows системе. Там уже прописан QBasic, который автоматически откроется если запустить файл Qbasic.bat. Дальше из меню Файл->Открыть выбирайте kapl.bas и запускайте при помощи клавиши F5
Для работы этого кода надо в ту же папку предварительно записать файл с данными (R*.KAT)
Вложения
Тип файла: zip QB_WIN7.ZIP (2.06 Мб, 4 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.07.2019, 09:13
Помогаю со студенческими работами здесь

Сериализация: что не так с этим кодом?
В курсе Байдачного http://www.microsoftvirtualacademy.com/training-courses/csharp_part_2 в 17 уроке приводится такой код. У автора...

Что не так с этим кодом? В чем его ошибка?
public class CustomMath { public static int multiply(int a, string b) { return a * b; } }

IndexError: list index out of range Что не так с этим кодом
sum = &quot;&quot; a = n = len(a) x,y = 0,0 for i in range(n): x = i-1 y = i+1 print(a + a)

Что не так с кодом? ( пытаюсь понять, что не так? )
Есть исходный код. Hook, работает хорошо, но есть минус огромный - перестаёт писать в лог, при открытии программы\игры Фуллскрином. т.е...

Что не так с этим скриптом?
&lt;?function get_content($hostname, $path) { $line=&quot;&quot;; //станавливаем соединение с узлом $hostname $f=fsockopen($hostname,80,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru