Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Пример 4.4.2-1. Написать процедуры ввода/вывода, которые будут использоваться в алгоритмах разветвляющихся структур.





Требуемыми процедурами являются процедуры vvodDbl1() и
ViodDbl1() ввода и вывода данных типа Double в текстовые поля, процедуры vvodSng3() и vivodSng3() ввода и вывода данных типа Single в текстовые поля и процедуры vvodInt4() и vivodInt4() ввода и вывода данных типа Integer в текстовые поля.

Процедуры vvodDbl1(), vivodDbl1(), vvodSng3() и vivodSng3() приведены в Теме 4.4.3, а процедуры vvodInt4() и vivodInt4() представлены на рис. 4.4.2-1 и 4.4.2-2.

 

'процедура-Function ввода данных типа Integer 'из текстового поля TextBox Function vvodInt4(ByVal T As TextBox) As Integer Return CInt(T.Text) End Function

 

Рис. 4.4.2-1. Процедура ввода данных типа Integer из поля TextBox

 

'Процедура-Sub вывода данных типа Integer в TextBox Sub vivodInt4(ByVal Z As Integer, ByVal T As TextBox) T.Text = CStr(Z) End Sub

 

Рис. 4.4.2-2. Процедура вывода данных типа Integer в TextBox

Пример 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() 'В фокусе оказывается 'текстовое поле для(ввода)значения стороны А '(в нем будет мигать курсор), 'после чего можно повторить ввод End If End Sub

 

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

 

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

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

 

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

Конструкция Select Case аналогична конструкции 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, то выполняется данный блок_операторов, а затем управление передается оператору, следующему после конструкции End Select. В противном случае проверяется следующий тест и так далее. Все конструкции Select Case рабо­тают аналогично. Блок_операторов, расположенный после Case Else, выполняется в том случае, если последовательные проверки всех тестов выше дали значе­ние False (т.е. ни один тест не выполнился).

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

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

 

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

 

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

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


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

 

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

 

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

 

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

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

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

 







ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.