Алгоритм и его свойства 3 страница
If F > 20 Then
a2 = MsgBox("Действительно ли это крепость породы," & Chr(13) & Chr(10) & "а не напитка?", 36, "Вопрос")
If a2 = 7 Then Text1.Text = ""
В данном случае значения А + В + С = 32 + 4 + 0 = 36, поэтому на ок не сообщения отобразится пиктограмма «Вопрос» и дв е кнопки «Да» и «Нет», при этом по умолчанию будет приниматься первая из них. В случае нажатия на кнопку «Нет» (т.е. признания пользователем своей ошибки) переменная a2 принимает значение 7 (см. последнюю таблицу) и в этом случае те к с то в о е окно Text1 обнуляется. Если же пользователь нажал кнопку «Да», т.е. под-тв е р д ил заданное значение крепости свыше 20, то окно ав то м а тич ес к и за-крывается и расчет производится с этим значением крепости.
End If
Следующее сообщение об ошибке появится при неверном задании площади поперечного сечения. Здесь мы используем сложное условие, объединенное логическими операторами OR (ИЛ И) и AND (И):
If S <> 0 And (S < 6 Or S > 20) Then
a3 = MsgBox("Для указанной площади сечения" & Chr(13) & Chr(10) & "данная программа не рассчитана", 48, "предупреждение")
Text2.Text = ""
End If
Данное сообщение появится тольк о в то м случае, если площадь S будет меньше 6 ИЛ И (OR) больше 20, И (AND) при этом вообще будет за-дана (т.е. значение S не равно нулю). На сообщении будет пиктограмма «Предупреждение» (А=48) и одна кнопка ОК (В=0).
И пос леднее сообщение появится в то м случае, ес л и пользователь за-был выбрать диаметр патрона, т.е. не выбран ни один из элементов Option:
If Option1.Value = False And Option2.Value = False And Option3.Value = False And Option4.Value = False Then a4 = MsgBox("Не задан диаметр патрона!", 16, "Ошибка") End If
Пос л е проверки корректности исходных данных приступаем к непо-средственному расчету требуемых параметров и выводу р ез ул ь та то в на форму.
По значению крепости определяем КИШ: Rem расчет
If F <= 4 Then KISH = 0.9 If F > 4 And F <= 10 Then KISH = 0.85 If F > 10 Then KISH = 0.8
и последовательно рассчитываем коэффициент зажима, нормальный
удельный расход ВВ, удельный расход ВВ и количество шпуров на забой:
NU = 6.5 / Sqr(S)
Q1 = 0.1 * F
Q = Q1 * F1 * NU * E
N = 12.7 * Q * S * KISH / (GAMMA * D ^ 2 * RO)
Пос л едн ие два параметра выводим на форму в приго товленные для
них те к с то в ые окна Text3 и Text4: Rem Вывод результатов на экран Text3.Text = Format(Q, "0.000") Text4.Text = Format(N, "###") End Sub
Пр и выводе по формату в скобках задается имя выводимой перемен-ной и через запятую в кавычках собственно формат вывода – сколько зна-ков выделяется до и после запятой. Так, для удельного расхода Q выделен 1 знак для целой и 3 знака для дробной части, при этом в случае появления нуля в целой части или в конце дробной части он будет отображаться. Ес-ли вместо символа «0» в формате указать символ «#», то нули в вышена-званных позициях будут опущены. Так, для переменной N, определяющей число шпуров выделено 3 знака в целой части и в случае получения в ре-зультате одно- или двузначного числа первые нули отображаться не будут. Оператор End Sub закрывает подпрограмму, которая выполнится при однократном щелчке мыши по командной кнопке Command1.
Третье событие – щелчок пользовател я по командной кнопке Com-mand2 (Выход). Пр и этом необходимо выполнить запрос на подтверждение выхода из программы, который можно организовать с помощью уже из-вестного окна сообщения MsgBox:
Private Sub Command2_Click() a4 = MsgBox("Неужели Вы хотите выйти" & Chr(13) & Chr(10) & "из этой прекрасной программы?", 36, "Вопрос")
If a4 = 6 Then Unload Me End Sub
В данном случае при нажатии пользователем на кнопку «Да» пере-менная а4 принимает значение 6 и происходит выгрузка формы (Unload Me), в противном случае – сообщение закрывается, а выполнение програм-мы продолжается.
Четвертое событие – щелчок пользователя по командной кнопке Command3 («Сохранить»). В этом случае у пользователя нуж но запросить дополнительную информацию о том , на какой диск и в файл с каким име-нем следует сохранить исходные данные и результаты, а так ж е фамилию и инициалы пользователя для их последующего вывода в файл.
Для этого следует отобразить все ранее «спрятанные» (при загрузке формы) объекты:
Private Sub Command3_Click() Label10.Visible = True Label11.Visible = True Label12.Visible = True Combo2.Visible = True Text5.Visible = True Text6.Visible = True Command4.Visible = True End Sub
На форме появятся окна для ввода всех необходимых данных и ко-мандная кнопка ОК для подтверждения сохранения результатов.
Пятое событие – щелчок пользователя по командной кнопке Com-mand4 («ОК»). В р ез у л ь та те этого события все исходные данные и резуль-та ты должны быть сохранены в файл. Но сначала дублируем задание ос-
новных исходных данных и расчет показателей, которые затем будут вы-водиться в файл и сохраняться:
Private Sub Command4_Click()
Dim F, D, N As Integer
Dim S, F1, GAMMA, KISH, E, RO, NU, Q1, Q As Single
Dim TIPVV, DISK, NAMEFILE, FIO As String
Rem ввод исходных данных
If Option1.Value = True Then D = 2.8
If Option2.Value = True Then D = 3.2
If Option3.Value = True Then D = 3.6
If Option4.Value = True Then D = 4.5
If Combo1.Text = "Аммонит скальный №1" Then
E = 0.8
RO = 1.1
TIPVV = "Аммонит скальный №1" ElseIf Combo1.Text = "Детонит М" Then
E = 0.82
RO = 1.15
TIPVV = "Детонит М" ElseIf Combo1.Text = "Аммонит АП-5ЖВ" Then
E = 1.17
RO = 1.15
TIPVV = "Аммонит АП-5ЖВ" ElseIf Combo1.Text = "Аммонит 6ЖВ" Then
E = 1
RO = 1.2
TIPVV = "Аммонит АП-5ЖВ" End If
Затем производим считывание данных о том , куда и под каким име-нем будет производиться сохранение: сначала проверяем из выпадающего списка имя диска (С ил и D), из те к с то в о г о окна Text5 считываем имя фай-ла и из те к с то в о г о окна Text5 – фамилию и инициалы пользователя:
If Combo2.Text = "C" Then DISK = "C" If Combo2.Text = "D" Then DISK = "D" NAMEFILE = Text5.Text FIO = Text6.Text
По с л е этого про изводим непосредственное сохранение р е з у л ь та то в , предварительно открыв нуж ный файл с помощью оператора OPEN, после которого указывается путь к файлу (в данном случае э то только выбран-ный пользователем диск) и заданное им я файла, к которому программа до-бавит расширение txt (тек с то в ый). Если к моменту сохранения такого фай-ла не окажется на указанном диске, он будет автоматически создан. В кон-це строки указывается, для чего и под каким номером открыт файл. В дан-ном случае – For Output (для вывода) As #1 (под номером 1):
Rem вывод результатов в файл
Open DISK + ":\" + NAMEFILE + ".txt" For Output As #1
Print #1, Tab(20), "Расчет количества шпуров на забой"
Print #1,
Print #1, Tab(20), "Исходные данные"
Print #1,
Print #1, Tab(20),"Крепость пород - "; Text1.Text
Pri nt #1 , T ab (20 ), "Пл ощ адь п опе ре чно го се че ния - "; Te xt2 .T ext ;" м кв ."
Print #1, Tab(20), "Характеристика ВВ:"
Print #1, Tab(50), "- тип ВВ - "; TIPVV
Print #1, Tab(50), "- диаметр патрона - "; 10 * D; " мм"
Print #1, Tab(50), "- коэффициент работоспособности - "; E
Pr in t #1 , Ta b( 50 ), " - пл от но ст ь па тр он ир ов ан ия - " ; RO ; " кг /м куб."
Print #1,
Print #1, Tab(20), "Результаты расчета"
Print #1,
Pr in t #1 , Ta b( 20 ), " Уд ел ьн ый расход ВВ - " ; Te xt 3. Te xt ; " кг /м куб"
Pr in t #1 , Ta b( 20 ), " Ко ли че ст во шпуров на забой - " ; Te xt 4. Te xt ;" шт."
Print #1,
Print #1, Tab(20), "Расчет выполнил студент "; FIO
Close #1
End Sub
Формирование строк вывода внутри файла осуществляется операто-ром Print #1, после которого указываются строки и перем енные вывода. Вспомога тел ьный оператор Tab показывает, с какой позиции от начал а строки необходимо начинать вывод.
Если все вышеописанные фрагменты слить воедино, получится сле-дующий программный код, который обеспечит работу всего приложения:
Private Sub Form_Load() Combo1.AddItem "Аммонит скальный №1" Combo1.AddItem "Детонит М" Combo1.AddItem "Аммонит АП-5ЖВ" Combo1.AddItem "Аммонит 6ЖВ" Combo2.AddItem "C" Combo2.AddItem "D" Label10.Visible = False Label11.Visible = False Label12.Visible = False Combo2.Visible = False Text5.Visible = False Text6.Visible = False Command4.Visible = False End Sub
Private Sub Command1_Click()
Rem описание переменных
Dim F, D, N, a1, a2, a3, a4, a5 As Integer
Dim S, F1, GAMMA, KISH, E, RO, NU, Q1, Q As Single
Dim TIPVV, DISK, NAMEFILE, FIO As String
Rem ввод исходных данных F = Val(Text1.Text) S = Val(Text2.Text)
If Option1.Value = True Then D = 2.8 If Option2.Value = True Then D = 3.2 If Option3.Value = True Then D = 3.6 If Option4.Value = True Then D = 4.5 If Combo1.Text = "Аммонит скальный №1" Then
E = 0.8
RO = 1.1
TIPVV = "Аммонит скальный №1" ElseIf Combo1.Text = "Детонит М" Then
E = 0.82
RO = 1.15
TIPVV = "Детонит М" ElseIf Combo1.Text = "Аммонит АП-5ЖВ" Then
E = 1.17
RO = 1.15
TIPVV = "Аммонит АП-5ЖВ" ElseIf Combo1.Text = "Аммонит 6ЖВ" Then
E = 1
RO = 1.2
TIPVV = "Аммонит АП-5ЖВ" End If F1 = 1.3 GAMMA = 0.5
Rem проверка корректности исходных данных If F < 1 Then
a1 = MsgBox("Такой крепости не бывает." & Chr(13) & Chr(10) & "Подумайте лучше", 16, "Ошибка")
Text1.Text = "" End If If F > 20 Then
a2 = MsgBox("Действительно ли это крепость породы," & Chr(13) & Chr(10) & "а не напитка?", 36, "Вопрос")
If a2 = 7 Then Text1.Text = ""
End If End If If S <> 0 And (S < 6 Or S > 20) Then
a3 = MsgBox("Для указанной площади сечения" & Chr(13) & Chr(10) & "данная программа не рассчитана", 48, "предупреждение")
Text2.Text = ""
End If If Option1.Value = False And Option2.Value = False And Option3.Value = False And Option4.Value = False Then
a4 = MsgBox("Не задан диаметр патрона!", 16, "Ошибка") End If
Rem расчет
If F <= 4 Then KISH = 0.9
If F > 4 And F <= 10 Then KISH = 0.85
If F > 10 Then KISH = 0.8
NU = 6.5 / Sqr(S)
Q1 = 0.1 * F
Q = Q1 * F1 * NU * E
N = 12.7 * Q * S * KISH / (GAMMA * D ^ 2 * RO)
Rem Вывод результатов на экран Text3.Text = Format(Q, "0.000") Text4.Text = Format(N, "###")
End Sub
Private Sub Command2_Click()
a4 = MsgBox("Неужели Вы хотите выйти" & Chr(13) & Chr(10) & "из этой прекрасной программы?", 36, "Вопрос")
If a4 = 6 Then Unload Me End Sub
Private Sub Command3_Click() Label10.Visible = True Label11.Visible = True Label12.Visible = True Combo2.Visible = True Text5.Visible = True Text6.Visible = True Command4.Visible = True End Sub
Private Sub Command4_Click()
Dim F, D, N As Integer
Dim S, F1, GAMMA, KISH, E, RO, NU, Q1, Q As Single
Dim TIPVV, DISK, NAMEFILE, FIO As String
Rem ввод исходных данных If Option1.Value = True Then D = 2.8 If Option2.Value = True Then D = 3.2 If Option3.Value = True Then D = 3.6 If Option4.Value = True Then D = 4.5
If Combo1.Text = "Аммонит скальный №1" Then
E = 0.8
RO = 1.1
TIPVV = "Аммонит скальный №1" ElseIf Combo1.Text = "Детонит М" Then
E = 0.82
RO = 1.15
TIPVV = "Детонит М" ElseIf Combo1.Text = "Аммонит АП-5ЖВ" Then
E = 1.17
RO = 1.15
TIPVV = "Аммонит АП-5ЖВ" ElseIf Combo1.Text = "Аммонит 6ЖВ" Then
E = 1
RO = 1.2
TIPVV = "Аммонит АП-5ЖВ" End If
If Combo2.Text = "C" Then DISK = "C" If Combo2.Text = "D" Then DISK = "D" NAMEFILE = Text5.Text FIO = Text6.Text
Rem вывод результатов в файл
Open DISK + ":\" + NAMEFILE + ".txt" For Output As #1
Print #1, Tab(20), "Расчет количества шпуров на забой"
Print #1,
Print #1, Tab(20), "Исходные данные"
Print #1,
Print #1, Tab(20), "Крепость пород - "; Text1.Text
Print #1, Tab(20), "Площадь поперечного сечения - "; Text2.Text; " м кв."
Print #1, Tab(20), "Характеристика ВВ:"
Print #1, Tab(50), "- тип ВВ - "; TIPVV
Print #1, Tab(50), "- диаметр патрона - "; 10 * D; " мм"
Print #1, Tab(50), "- коэффициент работоспособности - "; E
Print #1, Tab(50), "- плотность патронирования - "; RO; " кг/м куб."
Print #1,
Print #1, Tab(20), "Результаты расчета"
Print #1,
Print #1, Tab(20), "Удельный расход ВВ - "; Text3.Text; " кг/м куб"
Print #1, Tab(20), "Количество шпуров на забой - "; Text4.Text; " шт."
Print #1,
Print #1, Tab(20), "Расчет выполнил студент "; FIO
Close #1
End Sub
Пример окна выполняемого приложения приведен на рис. 6.12.
Рис. 6.12. Пример работы приложения
Контрольные задания
Разработать Windows-приложения по определению заданных пара-метров. Программный код должен обеспечивать расчет для любых вариан-то в исходных данных. Предусмотреть возможность вывода р ез у л ь та тов выполнения программы на экран и в файл.
1. По заданно й производственной мощности шахты определить нор-мативную продолжительность подготовительного периода строительства согласно приведенно й та б л и це :
Производственная мо щнос ть шахты, мл н т / год | 0,6 | 0,9 | 1,2 | 1,5 | 1,8 | 2,1 | 2,4 | 3,0 | 3,6 |
Нормативная продолжитель-ность подготовительного периода, мес. |
Для случая задания пользователем производственной мощности, о т-личной от типовой, предусмотреть выдачу сообщения о некорректности исходных данных и возможность повторного выбора про изводственной мощности шахты.
2. Проверить соблюдение запаса прочности каната подъем ной маши-ны по условию:
,
где Z1 – запас прочности каната, принять Z1 = 10;
– суммарное разрывное ус илие вс ех проволок в канате, Н; Qг – масса породы и воды в бадье, кг,
;
Vб – вместимость бад ьи, м3;
– плотность породы в разрыхленном состоянии, кг/м3; kр – к оэффициен т разрыхления породы, kр = 1 , 8 ÷ 2;
– плотность воды, кг/м3; kз – коэффициент заполнения пустот водой, kз = 0,5;
mк – масса 1м каната, определяемая из соотношения, кг,
– пределпрочности материала проволок каната при растяжении,
МПа, = 1500; – фиктивный объемный вес материала каната, кН/м3, = 90; H0 – максимальная длина отвеса каната, м, H0 = Hст + hк; Hст – конечная глубина ствола, м; hк – высота копра, м;
Qс – масса бадьи с направл яющей рамой и прицепным устройством, кг, Qс = Qб + Qн.р + Qп.у, определяемая по следующей таблице в зави-симости от ти п а бадьи:
Расчет произвести для следующих данных: ZFр = 268000 Н, Hст = 450 м, hк = 25 м, уп = 1600 кг/м3. Предусмотреть ручной ввод типа применяемой бадьи. На экран вывести тип бадьи, концевую нагрузку, величину запаса прочности и сообщение о соблюдении или несоблюдении требуемого запаса прочности.
3. Произвести выбор вместимости проходческой бадьи Vб, м3, по продолжительности полного цикла подъема бадьи по стволу и производительности подъемной установки, используя формулу
|
|
Расчет произвести для следующих ис ходных данных: tц = 400 с; t = 14 ч; m = 25. Предусмотреть ручной ввод параметров , Dпр и Pр. На пе-чать вывести расчетное и принятое из ти по в о г о ряда значения вместимости бадьи и значения производительности подъема Pп1 и Pп2.
4. Рассчитать производительность погрузочной машины Q, м3/ч, при различных технологических схемах транспортирования горной массы из забоя и определить схему, при которой производительность будет макси-мальной:
,
где Qв, Qп, Qк – производительность погрузочной машины с оо тв е тс тв ен но при погрузке породы в одиночные вагонетки, при пр именении перегружа-тел ей и при транспортировании породы конвейером, м3/ч. Данные пара-метры определяются следующими формулами:
; ;
,
где – коэффициент, учитывающий технологические простои машины, = 1,15÷1,20; – доля объема породы первой фазы, = 0,85÷0,90; Qт – техническая производительность погрузочной машины, м3/ч; Vв – объем вагонетки, м3; kз – коэффициент заполнения вагонетки, kз = 0,9; tз – время замены груженой вагонетки на порожнюю, ч; tс – время замены груженой партии вагонеток на порожнюю, ч; nс – число вагонеток, установленных под перегружателем; nр – число рабочих, занятых на подкидке породы; Pп – производительность рабочего на подк идке породы, м3/ч, прини-маемая по следующей таблице в зависимости от крепости пород:
f | < 4 | 4÷7 | >7 |
Pп, м3/ч | 1,1 | 0,9 | 0,8 |
Расчет выполнить для следующих ис ходных данных: tз = 0,02 ч; tс = 0,03 ч; nс = 5; nр = 2. Предусмотреть ручной ввод параметров Qт, Vв, f. На печать вывести тр и значения производительности и сообщение о спо-собе транспортировки породы, при котором получена максимальная про-изводительнос ть.
5. Сравнить сменную производительность скреперной установки, при разгрузке горной массы на конвейер Qк и в одиночные вагонетки Qв и вы-брать схему транспорта, обеспечивающую максимальную производитель-нос ть Q, м3/смен:
,
где Qк и Qв определяются формулами:
,
;
T – продолжительность смены, мин, T = 360;
tп.з – продолжительность подготовительно-заключительных операций,
мин, tп.з = 40; tл – продолжительность опробования лебедки, мин, tл = 10; V – объем скрепера, м3;
kз.с – коэффицие н т заполнения скрепера, принима емый равным: для крупнокусковатой горной массы – 0,5÷0,7, для средней – 0,7÷0,8, для мелкой – 0,8÷1; l – расстояние скреперования, м;
и – с о о тв е тс тв е нно скорости движения груженого и порожнего скрепера, м/мин; tз.р – время загрузки и разгрузки скрепера с учетом пауз на переклю-
чение и неравномерности хода, мин; kр – коэффициент разрыхления породы, kр =1,8÷2; Vв – объем вагонетки, м3;
kз.в – коэффициент заполнения вагонетки, kз.в = 0,9; L – длина транспортировки породы в вагонетке, м;
– скорость движения вагонетки, м/мин; tр – время разгрузки вагонетки, мин.
Расчет произвести для следующих исходных данных: l = 30 м, = 66 м/мин, = 90 м/мин, tз.р = 0,7 мин, L = 50 м, vв = 120 м/мин, tр =
1 мин. Организовать ручной ввод параметров V, Vв и степень кусковатости горной массы (крупная, средняя, мелкая). На печать вывести значения производительности для обеих схем транспортирования горной массы и сообщение о более эффективной схеме.
6. Определить необходимое количество воздуха Qз.п, м3/мин, для проветривания тупиковой выработки по всем указанным факторам. В ка-честве расчетного принять максимальное из полученных значений
,
где Q1 – расход воздуха в забое по выделению метана, м3/мин,
;
Iз.п – суммарное метановыделение с обнаженной поверхности уголь-
ного пласта и из отбитого угля, м3/мин; С – максимально допустимое по ПБ содержание метана в исходящей
вентиляционной струе, %, С = 1; С0 – содержание метана в поступающей в ентиляц ионной струе, %;
Q2 – расход воздуха в забое по максимальному числу людей, одновре-менно работающих в забое выработки, м3/мин,
nл – максимальное число людей, одновременно работающих в забое выработки;
Q3 – расход воздуха в забое по минимальной скорости движения воз-духа, м3/мин,
Vmin – минимально допус тимая скорость движения воздуха в приза-
бойном пространстве, м/с, Vmin = 0,15; Sсв – площадь поперечного сечения выработки в свету, м2;
Q4 – расход воздуха в забое по тепловому фактору, м3/мин,
;
Vп.min – минимально допус тимая скорость движения воздуха в выработ-ке по тепловому фактору, м/с;
Q5 – расход воздуха в забое по количеству одновременно взрываемого ВВ, м3/мин,
; T – время проветриваниявыработки после взрывания, мин;
VВВ – объем вредных газов, образующихся после взрывания, л,
;
Вуг, В пор - масса одновременно взрываемых ВВ по углю и породе,
соответственно, кг;
lп - длина тупиковой выработки, м, для горизонтальных и наклонных выработок протяженностью 500 м и более вместо lп подставляется ее критическая длина l кр = 500;
Kобв - коэффициент, учитывающий обводненность выработки и принимаемый равным 0,8 - при проведении выработки по сухим породам, 0,6 - по влажным и 0,3 - по обводненным или с применением водяных завес;
Kут.тр - коэффициент утечек воздуха в вентиляционных трубопроводах.
Расчет произвести для следующих исходных данных: Iз. п = 1 м3/мин, С0 = 0,05%, nл = 6 чел., Vпmin = 0,5 м/с, T = 20 мин, Kут.тр = 1,41.
Организовать ручной ввод параметров lп, S св, Вуг, Впор, степени обводненности проходимой выработки (сухая, влажная, обводненная). На печать вывести значения расхода воздуха по всем факторам, принятое значение Qзп и сообщение об определяющем факторе.
7. Рассчитать толщину Вп, м, и количество ступеней N тампонажной подушки, сооружаемой при цементации пород из забоя ствола, если
Дата добавления: 2015-02-16; просмотров: 790;