powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Упрощение кода
25 сообщений из 93, страница 2 из 4
Упрощение кода
    #38910198
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProvdekameronНу я понял что не нужно стесняться делать отступы, вот и делаю их так, чтобы мне удобно было быстро пробежать по кодуя говорил, что не надо делать отступы там, где операторы идут последовательно и не подчинены друг другу. Разве
RememberVSB = RememberVSB + intVSB
как-то подчинен
intVSB = -0.16516 * VB ^ 2 + 14.052 * VB - 187.3005
разве он не будет выполнен в любом случае после первого?
Ну значит в прошлый раз не до конца понял.
Теперь понял, что если операторы идут последовательно то отступы лишние. (если они не подчинены друг-другу)


Shocker.Proтогда зачем нужен столбец таблицы "Какие щиты нужно открыть"?
Я когда строчил это сообщение еще не видел вашего 17405947
...
Рейтинг: 0 / 0
Упрощение кода
    #38910727
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день ,Shocker.Pro!
Что скажете на это? Сделал с учетом того что вы сказали. И понял насколько это может упростить и сузить код.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Option Explicit
Dim A1(1 To 5) As Single
Dim A2(1 To 5) As Single
Dim A3(1 To 5) As Single
Dim B1(1 To 5) As String

Private Sub Form_Load()
 A1(1) = -0.1578: A1(2) = -0.16516: A1(3) = -0.1553: A1(4) = A1(1): A1(5) = A1(1)
 A2(1) = 13.443: A2(2) = 14.052: A2(3) = 13.17: A2(4) = A2(1): A2(5) = A2(1)
 A3(1) = -179.19: A3(2) = -187.3005: A3(3) = -175.57: A3(4) = A3(1): A3(5) = A3(1)
 B1(1) = "ОткрытьЗатвор7_1": B1(2) = "ОткрытьЗатвор5_1": B1(3) = "ОткрытьЗатвор3_1": B1(4) = "ОткрытьЗатвор4_1": B1(5) = "ОткрытьЗатвор6_1"
End Sub

Private Sub Open_Gates(ByVal VB As Single, ByVal Raznica As Integer)
 Dim RememberVSB As Integer, intVSB As Integer
 Dim i As Integer
  For i = 1 To 5
   intVSB = A1(i) * VB ^ 2 + A2(i) * VB + A3(i)
   RememberVSB = RememberVSB + intVSB
   Debug.Print B1(i)
     If RememberVSB > Raznica + Con1 Then Exit For
  Next
End Sub
...
Рейтинг: 0 / 0
Упрощение кода
    #38910747
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если работает как надо, значит ок. Разница в том, что у меня была рекурсия, а ты реализовал плоский цикл.
Ну я бы еще убрал текст "ОткрытьЗатвор" - чего его 72 раза повторять? Достаточно только индекс затвора хранить.

Следующим шагом по идее должен быть перенос всех констант во внешнее хранилище.
...
Рейтинг: 0 / 0
Упрощение кода
    #38910800
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProСледующим шагом по идее должен быть перенос всех констант во внешнее хранилище. Так делается? Я хотел их хранить все в проекте, это не правильно?
...
Рейтинг: 0 / 0
Упрощение кода
    #38910861
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как ты их будешь менять, если понадобится? Перекомпилировать заново?

Не, ну если это незыблемые вечные константы, то, конечно можешь зашить в код.
Я не знаю специфики технологий, но что будет, если один из затворов встанет на капремонт? Опять программу переписывать и перекомпилировать?
...
Рейтинг: 0 / 0
Упрощение кода
    #38910880
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProИ как ты их будешь менять, если понадобится? Перекомпилировать заново?
Мда. Вопрос отпал
...
Рейтинг: 0 / 0
Упрощение кода
    #38910888
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProРазница в том, что у меня была рекурсия, а ты реализовал плоский цикл.
Кстати из книги, которую прочел, я понял что рекурсия не плохая штука, но до опр. момента, когда она начинает тормозить проект. Если в рекурсия большая, то цикл быстрее работает. Ну может я не так понял.
...
Рейтинг: 0 / 0
Упрощение кода
    #38910961
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в твоем случае 2мс никакого значения не имеют )
...
Рейтинг: 0 / 0
Упрощение кода
    #38910966
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proв твоем случае 2мс никакого значения не имеют )Есть еще одно зло в программировании, называется оно "преждевременная оптимизация". Не нужно заниматься оптимизацией, если она реально не требуется, на это уходят время и силы, которые можно потратить на дело.
...
Рейтинг: 0 / 0
Упрощение кода
    #38910970
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proесли она реально не требуется
Мне кажется , что сегодня не требуется, а завтра вполне может потребоваться. А завтра уже будет сложнее оптимизировать
...
Рейтинг: 0 / 0
Упрощение кода
    #38910996
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronМне кажетсявот это и называется "преждевременной оптимизацией".

У тебя что, эта программа работает в режиме реального времени и затворы щелкают с миллисекундной скоростью?
...
Рейтинг: 0 / 0
Упрощение кода
    #38911032
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProУ тебя что, эта программа работает в режиме реального времени и затворы щелкают с миллисекундной скоростью?
Спорить глупо с тем, кто скушал уже много всего в этой области.
Хранить константы пофиг где? Или и тут есть предпочтения? Я планирую в excel.
...
Рейтинг: 0 / 0
Упрощение кода
    #38911067
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и в экселе. Вопрос, каким способом ты их будешь загружать в программу?
Лучше использовать тогда ODBC, чтобы было быстрее и не зависеть от наличия экселя на машине.

Но я бы делал в текстовом файле. В CSV например. Его можно и экселем редактировать.
...
Рейтинг: 0 / 0
Упрощение кода
    #38911133
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProНо я бы делал в текстовом файле. В CSV например. Его можно и экселем редактировать.
Я в excel сохранил как CSV. Как оттуда доставать эти данные?
...
Рейтинг: 0 / 0
Упрощение кода
    #38911149
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
укрощение кода
...
Рейтинг: 0 / 0
Упрощение кода
    #38911151
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
строптивого
...
Рейтинг: 0 / 0
Упрощение кода
    #38911153
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariyукрощение кода
Это к чему?
...
Рейтинг: 0 / 0
Упрощение кода
    #38911202
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronЯ в excel сохранил как CSV. Как оттуда доставать эти данные?тут два варианта. Можно использовать ADO, чтобы подключиться к файлу через ODBC как к базе данных. Это как бы проще в принципе, но сложнее для новичка.

Можно просто открыть файл как текстовый (смотри Open, Input#, Close), построчно прочитать и разобрать на запчасти в массив
...
Рейтинг: 0 / 0
Упрощение кода
    #38911207
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот как сохранились данные в CSV.
как мне считать с него по столбцам. Сначала константу из одного столбца, потом из другого.....
...
Рейтинг: 0 / 0
Упрощение кода
    #38911209
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Упрощение кода
    #38911210
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronAntonariyукрощение кода
Это к чему?к слову
...
Рейтинг: 0 / 0
Упрощение кода
    #38911252
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProМожно просто открыть файл как текстовый (смотри Open, Input#, Close), построчно прочитать и разобрать на запчасти в массив

Что то на подобии? или снова не в ту степь?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Option Explicit

Private Sub Form_Load()
Dim A1(1 To 5) As String
Dim A2(1 To 5) As String
Dim A3(1 To 5) As String
Dim B(1 To 5) As String
Dim i As Integer
  
  Open App.Path & "\Òåñò.txt" For Input As #1

    For i = 1 To 5
      Line Input #1, A1(i)
    Next
      For i = 1 To 5
        Line Input #1, A2(i)
      Next
        For i = 1 To 5
          Line Input #1, A3(i)
        Next
          For i = 1 To 5
            Line Input #1, B(i)
          Next
End Sub
...
Рейтинг: 0 / 0
Упрощение кода
    #38911323
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять непонятно, что у тебя с отступами, что за ступеньки

Считываешь одну строку, делишь функцией Split и записываешь в массив
...
Рейтинг: 0 / 0
Упрощение кода
    #38911342
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProСчитываешь одну строку, делишь функцией Split и записываешь в массив
Чем так плохо? Те же яйца.
Только не могу понять почему когда задаю А1,А2,А3 типа single выдает ошибку Type mismach , подсвечивая A1
...
Рейтинг: 0 / 0
Упрощение кода
    #38911345
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
25 сообщений из 93, страница 2 из 4
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Упрощение кода
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]