Алгоритм и его свойства 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;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.074 сек.