Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для ooze1
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
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
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru