Пример 4.4.2-2.Дополнить проект Пример 3.4-3 из Темы 3, предусмотрев в нем проверку исходных данных.



По результату проверки исходных данных программа должна выдавать предупреждающее сообщение, если вводятся значения сторон треугольника, при которых треугольник не существует.

 

Sub PsPr(ByVal A As Single, ByVal B As Single, ByVal C As Single) Dim P, S As Single If (A + B > C) And (B + C > A) And (C + A > B) Then PS(A, B, C, P, S):vivodSng3(P, TextBox4):vivodSng3(S,TextBox5) Else MsgBox("Ошибка!" &vbNewLine&, _ "Сумма двух сторон треугольника" _ &" должна быть больше третьей.")      TextBox1.Text = ""'Очистка текстовых полей      TextBox2.Text = ""'Очистка текстовых полей      TextBox3.Text = ""'Очистка текстовых полей      TextBox1.Focus()  'В фокусе оказывается 'текстовое поле для(ввода)значения стороны А        '(в нем будет мигать курсор),        'после чего можно повторить ввод   EndIf EndSub

 

Рис. 4.4.2-3. Процедура PsPR()Проекта 3.4-3
 проверкой исходных данных

 

Для того чтобы можно было построить треугольник, необходимо и достаточно выполнения следующих неравенств (A, B,С – длины сторон треугольника, & – операция логического умножения):
(А + В > С) &(А + C> В) & (В + C> А).

Открыть проект Пример 3.4-3 и внесите изменения в процедуру,
SubPSPr() (рис. 4.4.2-3).В окне функцииMsgBox()текст сообщения выводится в две строки. Обратить внимание, что для перевода на новую строку используется текстовая константаvbNewLine.

 

Рассмотрим конструкциюSelectCase.

Конструкция SelectCase аналогична конструкции If...Then, но она более эффективна в тех ситуациях, когда ветвление за­висит от одной ключевой переменной.

Оператор Select Case позволяет осуществить разветвление по любому фиксированному числу ветвей. Он имеет следующий формат:

 

Select Caseвыражение Case тест1                 [блок_операторов1]      [Case тест2                  [блок_операторов2] ] . . .      [Case Else                  [блок_операторовn] ] End Select

 

Здесь выражение – арифметическое или строковое, а тестi может иметь следующую форму:

 

выражение [,выражение . . .] выражениеToвыражение Isоперация_отношениявыражение

 

Например, Case могут содержать следующиетесты:

 

Case Is > 3      ' проверка на превышение значения 3; Case x^2         ' проверка на равенство значению выражения; Case 5 To 7      ' проверка на принадлежность отрезку [5,7]; Case 1 To 4, 7 To 9, 11, 13, Is > Max

 

В последнем примере через запятую перечисляются несколько тестов, при этом результат проверки выражения считается ис­тинным, если выполняется, хотя бы один тест.

Порядок выполнения оператора Select Case следующий: если значение выражения удовлетворяет тесту, расположенному после конструк­ции Case, то выполняется данный блок_операторов, а затем управление передается оператору, следующему после конструкции EndSelect. В противном случае проверяется следующий тест и так далее. Все конструкции Select Caseрабо­тают аналогично. Блок_операторов, расположенный после CaseElse, выполняется в том случае, если последовательные проверки всех тестов выше дали значе­ние False(т.е. ни один тест не выполнился).

Оператор имеет следующие особенности: тест1, тест2 и так далее должны быть последними в строке, а конструкция CaseElseдолжна быть единственной в строке.

Следующий пример показывает, как работает конструкция SelectCase

 

Dim Age As Integer= 18 Select Case Age Case16 Label1.Text="Теперь Вы можете водить машину!" Case18 Label1.Text="Теперь Вы можете участвовать в выборах!" Case21 Label1.Text="Теперь Вы можете еще кой-чего." Case65 Label1.Text="Пора уходить на пенсию." End Select

 

исполь­зуется в программе для вывода нужного сообщения о возрасте и куль­турных вехах в жизни человека. Если переменная Ageсодержит значе­ние 18, то в свойство Textобъекта надписи записывается строка «Теперь Вы можете участвовать в выборах!».

Также конструкция SelectCaseподдерживает оператор CaseElse, который может использоваться для отображения сообщений, если ни одно из предшествующих значений не совпадает со значением переменной Аgе.


Dim Age As Integer Age = 25 Select Case Age Case 16 Label1.Text = "ТеперьВыможетеводитьмашину!" Case 18 Label1.Text = "Теперь Вы можете участвовать в выборах!" Case21 Label1.Text = "Теперь Вы можете еще кое-чего" Case65 Label1.Text = "Пора уходить на пенсию" CaseElse Label1.Text = "У Вас замечательный возраст! Наслаждайтесь!" EndSelect

 

Чтобы включить в конструкцию SelectCase диапазон проверяемых зна­чений, можно использовать операции отношения =, <>, >, <, >= и<=. Чтобы использовать опе­рации отношения, требуется включить в оператор ключевое слово Isили ключевое слово То, определяющие производимое сравнение. Ключевое слово Is говорит компилятору о том, что требуется сравнить переменную с выражением, указанным после ключевого слова Is. Ключевое слово Тоопределяет диапазон значений. Следующая конструкция использует Is, Тои несколько операций отношения для того, чтобы проверить значе­ние переменной Ageи отобразить одно из пяти сообщений:

 

Select Case Age Case Is< 13 Label1.Text=" Наслаждайтесьдетством!" Case 13 To 19 Label1.Text =" Наслаждайтесьюностью!" Case21 Label1.Text =" Теперь Вы можете еще кое-чего" Case Is> 100 Label1.Text =" Здорововыглядите!" Case Else    Label1.Text =" Отличныйвозраст." End Select

 

Если значение переменной Аgеменьше 13, отображается сообщение «Наслаждайтесь детством!». Для возраста от 13 до 19 лет отображается сообщение «Наслаждайтесь юностью!» и так далее.

Условная конструкция SelectCase обычно гораздо яснее, чем конст­рукция If...Then, и более эффективна, в случае если в зависимости от значения или свойства перемен­ной следует образовать три или более ветвей программы. Однако, когда делается два или менее сравнений или, когда используется несколько различных значений, то лучше использовать условную конструкцию If...Then.

В следующем примере вы увидите, как использовать структуру SelectCase для обработки ввода из поля списка. Для получения ввода будут использоваться свойства ListBox1.Text и ListBox1.Selected.IndexChanged, а затем для отображения приветствия на одном из четы­рех языков будет использоваться конструкция SelectCase.

 


Дата добавления: 2018-05-09; просмотров: 312; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!