|
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 73
|
|
Некоторые вопросы по проге20.01.2011, 16:24. Показов 747. Ответов 2
Метки нет (Все метки)
В теме 3 дня, поэтому прошу сильно не пинать. Был конечно школьный опыт в qb и tp на xt-шках, но было давно...
Посмотрите код, есть пара вопросов: 1. Начиная с логических операторов пошел какой-то бред, хотя вроде рабочий . Все было бы ок, если бы было 2 условия (первый If) Но у меня есть 3 условие, которое в свою очередь ссылается на подусловие.... "со строчки x2=..." Да и по остальным участкам кода думаю много чего не так... В связи с этим прошу помочь привести код к нормалному виду. 2. Надоо сделать чтоб на форме все значения: и вписываемые и вычисляемые выводились в формате два знака после запятой. 3. Чтобы не вылетала прога когда вводишь вместо 1,0 - 1.0 или вместо цифры букву. Надо чтобы писала что-то типа недопустимый ввод и давала возможность исправить, ибо долго приходится перебивать заново. Собственно форма и код Private Sub Command1_Click() Dim h, b, a1, a2, Rb, Md, Ys, Yb1, Yb3, Yb4, d1, d2, n1, n2, As1, As2, Rs, Rsc, Es As Single ' ââîä ïåðåìåííûõ è êîíñòàíò Dim h0, x, Eps, Epsr, Mult, k, Esel, Mult1, Mult2, Mult3, x2 As Single Const pi = 3.14159 h = Text1.Text ' Ñ÷èòûâàíèå èñõîäíûõ äàííûõ èç ôîðìû b = Text2.Text a1 = Text3.Text a2 = Text4.Text Rb = Text6.Text Md = Text27.Text d1 = Text7.Text n1 = Text8.Text Rs = Text10.Text Es = Text11.Text d2 = Text12.Text n2 = Text13.Text Rsc = Text15.Text Ys = Text16.Text Yb1 = Text17.Text Yb3 = Text18.Text Yb4 = Text19.Text h0 = h - a1 ' Âû÷èñëåíèÿ âñïîìîãàòåëüíûõ âåëè÷èí Esel = Rs / Es Epsr = 0.8 / (1 + Esel / 0.0035) As1 = n1 * ((pi * d1 ^ 2) / 4) As2 = n2 * ((pi * d2 ^ 2) / 4) x = (Rs * As1 * Ys - Rsc * As2) / (Rb * b * Yb1 * Yb3 * Yb4) Eps = x / h0 Text22 = h0 'Âûâîä âñïîìîãàòåëüíûõ âåëè÷èí â ôîðìó Text23 = Epsr Text24 = x Text25 = Eps Text9 = As1 Text14 = As2 ' Âû÷èñëåíèå Mult ïðè 1-îì óñëîâèè (íà îñíîâàíèè ñðàâíåíèÿ Eps è Epsr) If Eps <= Epsr Then Mult = 0.01 * (0.1 * Rb * Yb1 * Yb3 * Yb4 * b * x * (h0 - 0.5 * x) + 0.1 * Rsc * As2 * (h0 - a2)) Else Mult = 0.01 * (0.1 * Rb * Yb1 * Yb3 * Yb4 * b * Epsr * h0 * (h0 - 0.5 * Epsr * h0) + 0.1 * Rsc * As2 * (h0 - a2)) End If ' Âû÷èñëåíèå çíà÷åíèé Mult ïðè 2-îì óñëîâèè (Rs*As1=Rsc*As2) x2 = (Rs * As1 * Ys) / (Rb * b * Yb1 * Yb3 * Yb4) If x2 <= 2 * a2 Then Mult2 = Rs * As1 * Ys * 0.001 * (h0 - x2 / 2) Else Mult2 = Rs * As1 * Ys * 0.001 * (h0 - a2) End If ' Âûáîð îêîí÷àòåëüíîãî çíà÷åíèÿ Mult: Mult2 ïðè óñëîâèè Rs*As1=Rsc*As2 èëè Mult â ñëó÷àå íåðàâåíñòâà If Rs * As1 = Rsc * As2 Then Mult = Mult2 Else Mult = Mult End If Text26 = Mult ' çàïîëíåíèå ÿ÷ååê ôîðìû Text28 = Md k = Md / Mult Text29 = k If k <= 1 Then Text30 = "Íåñóùàÿ ñïîñîáíîñòü ïî íîðìàëüíîìó ñå÷åíèþ îáåñïå÷åíà" Else Text30 = "Íåñóùàÿ ñïîñîáíîñòü ïî íîðìàëüíîìó ñå÷åíèþ íå îáåñïå÷åíà" End If End Sub Private Sub Command2_Click() Cls End Sub Private Sub Command3_Click() End End Sub СО ШРИФТОМ КАКОЙ_ТО БРЕД, КАК ИСПРАВИТЬ?
0
|
|
| 20.01.2011, 16:24 | |
|
Ответы с готовыми решениями:
2
Как сделать некоторые фрагменты в проге прозрачными? Вопросы по тестирующей проге Не понятны некоторые строчки в проге( |
|
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
|
|
| 20.01.2011, 16:48 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 73
|
|
| 21.01.2011, 09:56 [ТС] | |
|
Private Sub Command1_Click()
Dim h, b, a1, a2, Rb, Md, Ys, Yb1, Yb3, Yb4, d1, d2, n1, n2, As1, As2, Rs, Rsc, Es As Single ' ввод переменных и констант Dim h0, x, Eps, Epsr, Mult, k, Esel, Mult1, Mult2, Mult3, x2 As Single Const pi = 3.14159 h = Text1.Text ' Считывание исходных данных из формы b = Text2.Text a1 = Text3.Text a2 = Text4.Text Rb = Text6.Text Md = Text27.Text d1 = Text7.Text n1 = Text8.Text Rs = Text10.Text Es = Text11.Text d2 = Text12.Text n2 = Text13.Text Rsc = Text15.Text Ys = Text16.Text Yb1 = Text17.Text Yb3 = Text18.Text Yb4 = Text19.Text h0 = h - a1 ' Вычисления вспомогательных величин Esel = Rs / Es Epsr = 0.8 / (1 + Esel / 0.0035) As1 = n1 * ((pi * d1 ^ 2) / 4) As2 = n2 * ((pi * d2 ^ 2) / 4) x = (Rs * As1 * Ys - Rsc * As2) / (Rb * b * Yb1 * Yb3 * Yb4) Eps = x / h0 Text22 = h0 'Вывод вспомогательных величин в форму Text23 = Epsr Text24 = x Text25 = Eps Text9 = As1 Text14 = As2 ' Вычисление Mult при 1-ом условии (на основании сравнения Eps и Epsr) If Eps <= Epsr Then Mult = 0.01 * (0.1 * Rb * Yb1 * Yb3 * Yb4 * b * x * (h0 - 0.5 * x) + 0.1 * Rsc * As2 * (h0 - a2)) Else Mult = 0.01 * (0.1 * Rb * Yb1 * Yb3 * Yb4 * b * Epsr * h0 * (h0 - 0.5 * Epsr * h0) + 0.1 * Rsc * As2 * (h0 - a2)) End If ' Вычисление значений Mult при 2-ом условии (Rs*As1=Rsc*As2) x2 = (Rs * As1 * Ys) / (Rb * b * Yb1 * Yb3 * Yb4) If x2 <= 2 * a2 Then Mult2 = Rs * As1 * Ys * 0.001 * (h0 - x2 / 2) Else Mult2 = Rs * As1 * Ys * 0.001 * (h0 - a2) End If ' Выбор окончательного значения Mult: Mult2 при условии Rs*As1=Rsc*As2 или Mult в случае неравенства If Rs * As1 = Rsc * As2 Then Mult = Mult2 Else Mult = Mult End If Text26 = Mult ' заполнение ячеек формы Text28 = Md k = Md / Mult Text29 = k If k <= 1 Then Text30 = "Несущая способность по нормальному сечению обеспечена" Else Text30 = "Несущая способность по нормальному сечению не обеспечена" End If End Sub Private Sub Command2_Click() Cls End Sub Private Sub Command3_Click() End End Sub Добавлено через 16 часов 41 минуту Немного переделал код используя инструкцию ElseIf для упрощения x2 = (Rs * As1 * Ys) / (Rb * b * Yb1 * Yb3 * Yb4) ' Вычисление вспомогательных величин для случая 3 If x2 <= 2 * a2 Then Mult2 = Rs * As1 * Ys * 0.001 * (h0 - x2 / 2) Else Mult2 = Rs * As1 * Ys * 0.001 * (h0 - a2) End If ' Вычисление Mult (выбор из 3-х условий) If Eps <= Epsr Then Mult = 0.01 * (0.1 * Rb * Yb1 * Yb3 * Yb4 * b * x * (h0 - 0.5 * x) + 0.1 * Rsc * As2 * (h0 - a2)) ElseIf Eps > Epsr Then Mult = 0.01 * (0.1 * Rb * Yb1 * Yb3 * Yb4 * b * Epsr * h0 * (h0 - 0.5 * Epsr * h0) + 0.1 * Rsc * As2 * (h0 - a2)) ElseIf Rs * As1 * Ys = Rsc * As2 Then Mult = Mult2 End If
0
|
|
| 21.01.2011, 09:56 | |
|
Помогаю со студенческими работами здесь
3
как реализовать базу данных и зашитить от копирования. Общие вопросы по дедко-проге Некоторые вопросы Некоторые вопросы по синтаксису Некоторые вопросы по ucoz'у Некоторые вопросы по flowLayoutPanel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|