Аватар для ooze1
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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2011, 16:24
Ответы с готовыми решениями:

Как сделать некоторые фрагменты в проге прозрачными?
Слуште. Поиск на форуме не пашет почмуто поэтому решил тему создать. Как сделать некоторые фрагменты в проге прозрачными? к примеру хочу...

Вопросы по тестирующей проге
Нужна помощь, столкнулся с некоторыми проблемами в следующей функции void read_questions (vector &lt;Questions&gt; &amp;Q) { string...

Не понятны некоторые строчки в проге(
Вот есть код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class A {private: //закритий...

2
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
20.01.2011, 16:48
Цитата Сообщение от ooze1 Посмотреть сообщение
СО ШРИФТОМ КАКОЙ_ТО БРЕД
попробуй копировать при русской раскладке
0
 Аватар для ooze1
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.01.2011, 09:56
Помогаю со студенческими работами здесь

как реализовать базу данных и зашитить от копирования. Общие вопросы по дедко-проге
Всем привет. Начну с истории. Меня попросил отец сделать программку для книжного магазинчика, в ней должна быть некая книжная база(что есть...

Некоторые вопросы
Всем привет ! Я недавно начал изучать Паскаль, и у меня возникло несколько вопросов, которые я бы хотел прояснить. И так, вопрос :) : 1....

Некоторые вопросы по синтаксису
Будьте так добры, пожалуйста. Помогите чуток)). Я сам сишник, а тут мне тест по учебе дали на паскаль. многое сделал уже. Но во многом еще...

Некоторые вопросы по ucoz'у
Хотелось бы вот эту форму заполнения сделать по центру. Изначально она была растянута и была очень длинной, но через html я ее сжал. Теперь...

Некоторые вопросы по flowLayoutPanel
Можно ли добавить в flowLayoutPanel 3 рядом стоящие компонента по горизонтали но при этом чтобы свойство FlowDirection = TopDown? ...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
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
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru