|
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 73
|
|
Некоторые вопросы по проге20.01.2011, 16:24. Показов 757. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|