Тема 2. Основы алгоритмизации и программирования
Тема 2.1. Базовые понятия программирования.
Приложение: project2_b_vvod_ vuvod; project3_calc.rar; project3_msg.rar; project3_msg_input.rar
Занятие 13. Ввод и вывод данных во время исполнения проекта
В рассмотренных ранее примерах при реакции на события выполняются одни и те же команды процедуры, а следовательно, каждый раз одинаково будут изменяться значения указанных в командах процедуры свойств объектов.
Если необходимо во время исполнения проекта каждый раз по-разному изменять значения свойств указанных объектов, то нужно значения этих свойств каким-то образом вводить в программу во время ее исполнения.
I. Ввод данных. Элемент управления TextBox. (пример, проект project2_b_vvod_ vuvod )
Для ввода данных во время исполнения проекта можно использовать элемент управления -TextBox ( текстовое поле). Вы уже знаете, что текст, который находится в поле, является значением его свойства Text. Воспользуемся этим.
Пример 1
Создадим такую процедуру Button1_Click - обработчик события Click, исполнение которой дает возможность установить произвольный цвет окна и увеличить его высоту на произвольное целое количество пикселей.
Для этого нужно:
1. Разместить на форме четыре Текстовых поля (TextBox1, TextBox2, TextBox3 , TextBox4 ); первые три для ввода значения составляющих (r, g, b) цвета окна формы, а четвертое для ввода количества пикселей - значение изменения высоты формы от первоначальной.
- Изменить значение свойства Text этих полей на пустое ("").
2. Разместить слева от каждого поля Надписи(Label1, Label2, Label3 , Label4 ).
- Изменить значение свойства Text надписей: "Введите значение красной составляющей цвета(0-255)" и т.д.
3. Разместить на форме справа кнопку, изменить значение ее свойства Text на "Изменить".
4. Создать заготовку процедуры Button1_Click, которая будет выполняться после выбора кнопки.
5. Ввести текст процедуры Button1_Click:
Dim r, g, b, i As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
r = Val(TextBox1.Text)
g = Val(TextBox2.Text)
b = Val(TextBox3.Text)
Me.BackColor = System.Drawing.ColorTranslator.FromOle(RGB(r, g, b))
Me.Height = Me.Height + Val(TextBox4.Text)
End Sub
Таким образом, при каждом запуске проекта на исполнение или перед каждым выбором кнопки можно вводить в поля разные значения, достигая тем самым установки нужного цвета окна и увеличения его высоты.
PS!!! Задание.
Провести самостоятельно анализ выполнения команд программного кода обработчика события Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click:
Пример 2 Создание проекта вычисления объема куба и сферы по известной грани и радиусу соответственно указанных фигур.
(Элемент TextBox применяется для ввода и вывода информации)
Интерфейс проекта.
Программный код.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a, r, v1, v2 As Single
a = Val(TextBox1.Text)
r = Val(TextBox2.Text)
v1 = a * a * a
v2 = 4 / 3 * Math.PI * r * r * r
TextBox3.Text = Str(v1)
TextBox4.Text = Str(v2)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox3.Text = ""
TextBox4.Text = ""
TextBox1.Text = ""
TextBox2.Text = ""
TextBox1.Focus()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
End
End Sub
II. Вывод данных. Элемент управления Label. (пример, проект project3_calc.exe)
Надписи можно использовать не только для оформления подписей объектов, но и для вывода результатов исполнения проекта.
Создадим простой калькулятор, который будет складывать два произвольных действительных числа. Во время исполнения проекта пользователь будет вводить по одному произвольному действительному числу в каждое поле и выбирать кнопку с заголовком Сложить. При выборе кнопки наступит событие Click, и в результате выполнится процедура Button1_Click, которая будет складывать эти числа и выводить сумму в надпись. Для создания такого проекта нужно:
1. Разместить на форме:
- два текстовых поля (TextBox1, TextBox2) ⇒ для ввода данных;
- надпись (Label4) ⇒ для вывода результата;
- три надписи (Label1, Label2, Label3) для формирования текстовых сообщений в окне формы;
- две кнопки (Button1, Button2).
2. Установить пустые значения свойства Text двух текстовых полей и свойства Text надписи для вывода суммы.
3. Установить соответствующие значения свойства Text для других трех надписей и кнопок.
4. Создать заготовку процедуры Button1_Click, которая будет исполняться после выбора кнопки.
5. Ввести текст процедуры Button1_Click.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, y, z As Single
x = Val(TextBox1.Text)
y = Val(TextBox2.Text)
z = x + y
Label4.Text = Str(z)
End Sub
Рассмотрим назначение каждой команды приведенной процедуры.
Как мы уже отмечали выше, число, которое вводится в поле, становится значением его свойства Text и воспринимается программой как текст.
- Поэтому первые две команды процедуры являются командами присваивания, которые предназначены для преобразования текстового представления действительных чисел в сами действительные числа (для этого использована функция Val() и присваивания этих чисел переменным х и у соответственно.
- Третья команда складывает эти числа и присваивает результат переменной z .
- Четвертая команда устанавливает красным цвет символов, которым будет выводиться результат в надпись.
- Пятая команда преобразовывает результат сложения (значение переменной z) из числа в текст, используя функцию Str () и присваивает этот текст значению свойства Text надписи с именем Label4 для вывода результата.
Во время исполнения созданного проекта пользователь вводит в поля числа , выбирает кнопку Сложить и получает результат .
Не закрывая проект, пользователь может ввести в поля другие числа, опять выбрать кнопку Сложить и получить новый результат. И так можно повторять произвольное количество раз.
Это иллюстрирует такое свойство алгоритма как массовость.
III. Вывод данных. Окно сообщений MessageBox. (пример, проект project3_msg.rar)
Иногда удобно выводить сообщение не в надписи на форме, а в специальное отдельное окно - окно сообщений MessageBox..
Вид окна сообщений встроен в Visual Basic.Net .
Синтаксис вызова окна сообщений:
- MessageBox.Show("текстовые сообщения" ) 'вывод текстовой информации.
- MessageBox.Show("текстовое сообщение " & str(c) ) ' вывод как текстовых сообщений так и данных из адресов памяти.
По этой команде открывается специальное окно вывода сообщения, в котором выводится текст, указанный в команде.
Если такую команду включить в рассмотренную выше процедуру вывода суммы двух введенных действительных чисел вместо последней команды вывода результата в надпись или после этой команды, то она будет выглядеть так:
MessageBox.Show("Сумма чисел = " & Str(z))
Результат выполнения этой команды представлен на рисунке:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, y, z As Single
x = Val(TextBox1.Text)
y = Val(TextBox2.Text)
z = x + y
MessageBox.Show("Сумма чисел = " & Str(z))
End Sub
При использовании окна сообщения для завершения исполнения проекта сначала следует закрыть окно сообщения, а затем - окно проекта.
IV. Ввод данных. Окно запроса информации InputBox. (пример, проект project3_msg_input.rar )
Для ввода данных пользователем через системное окно применяют системную функцию InputBox.
Синтаксис записи функции InputBox:
InputBox("приглашение","заголовок окна") |
Пример.
Интерфейс проекта.
Программный код.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, y, z As Single
x = Val(InputBox("Введите первое число", "Ввод чисел"))
y = Val(InputBox("Введите второе число", "Ввод чисел"))
z = x + y
MessageBox.Show("Сумма чисел = " & Str(z))
End Sub