17. Процедуры и функции (основные отличия).
основные отличия функции от процедуры состоят в следующем. 1. Функция имеет тип (аналогично переменной) и может возвращать в программу значение, которое присваивается функции при помощи оператора: <Имя функции> = значение 2. Вызов функции, как правило, осуществляется посредством указания в правой части какого-либо оператора ее имени и параметров. С другой стороны, процедура вызывается при помощи отдельного оператора: Call <Имя процедуры> (Параметры) Или <Имя процедуры> (Параметры) Если при вызове процедуры используется ключевое слово Call, то список параметров должен быть указан в скобках. Если же процедура вызывается без использования Call, то ее параметры перечисляются без скобок. Необходимо отметить, что вызываемая процедура может не иметь параметров. В этом случае (если использовалось служебное слово Call) после имени процедуры следует ставить пустые скобки. Пользовательские процедуры обычно используются при необходимости выполнения одной и тоже последовательности операций. Например, в программе требуется неоднократно вводить в цикле значения массива arrA, состоящего из пяти элементов. В этом случае заполнение массива лучше всего оформить в виде процедуры. Команда Add Procedure меню Tools позволяет добавить процедуру или функцию. Пусть процедура Cir вычерчивает эллипс с координатами x, y, которые передаются в процедуру как параметры. Создавая процедуру Cir командой Add Procedure, нужно указать имя процедуры и выбрать область видимости Public или Private. Завершив диалог, получим объявление процедуры:
Код Visual Basic |
|||
|
|
18. Теперь нужно вписать параметры в скобки и написать текст процедуры. В списке параметров рекомендуется указывать тип переменных.
Код Visual Basic |
|||
|
|
1. Разработать приложение для математической обработки данных с помощью операторов, кнопки завершения приложения, кнопки очистки данных на форме. Озаглавить форму. Обеспечить переход от одной формы к загрузке другой.
1)Создаем кнопки textbox (пустые окна для ввода переменных), command button (+ - / * корень очистить) и label (действие результат)
2) переходим к окну кодов (щелкая на форму)
1. Ну меняем заголовок формы и убираем некрасивые записи в леблах и тексте. В теле процедуры пишем:
Form1.Caption = "Калькулятор"
2.каждую кнопку command button кодируем . к примеру операцию +:
Пишем строку для обработки операции сложения. Однако надо учесть, что в текстбоксах содержится строковая информация, а сложение двух строк приводит к их сцеплению, т.е. если в Text1 у нас будет 10, а в Text2 – 5, то результатом сложения в Text3 станет "10" + "5" = 105 (10 & 5), а не 15, как нам бы хотелось. Поэтому придется преобразовать каждое значение в числовое с помощью функции Val(строка):Text3.Text = Val(Text1.Text) + Val(Text2.Text)
Кроме того, чтобы пользователь видел, какую операцию он произвел, мы будем программно, "на лету" менять содержимое верхнего лейбла:Label2.Caption = "Плюс"
И так продолжаем все остальные операции. Вот что должно получиться:
Кнопка сложения
Private Sub Command1_Click() ‘процедура нажатия кнопки Command1 Text3.Text = Val(Text1.Text) + Val(Text2.Text) 'операция сложения Label2.Caption = "Плюс" 'указаваем в метке математическую операцию End Sub
Кнопка умножения
Private Sub Command2_Click() ‘процедура нажатия кнопки Command2 Text3.Text = Val(Text1.Text) * Val(Text2.Text) 'операция умножения Label2.Caption = "Умножить" End Sub
Кнопка вычитания
Private Sub Command3_Click() ‘процедура нажатия кнопки Command3 Text3.Text = Val(Text1.Text) - Val(Text2.Text) 'операция вычитания Label2.Caption = "Вычесть" End Sub
Кнопка деления
Private Sub Command4_Click() ‘процедура нажатия кнопки Command4 Text3.Text = Val(Text1.Text) / Val(Text2.Text) 'операция деления Label2.Caption = "Разделить" End Sub
Кнопка очистки данных
Private Sub Command5_Click() ‘процедура нажатия кнопки Command5 Text1.Text = "" 'присвоим текстбоксам значение пустой строки Text2.Text = "" 'для очистки всех текстбоксов Text3.Text = "" End Sub
Кнопка корня
Private Sub Command6_Click() ‘процедура нажатия кнопки Command6 Text3.Text = Sqr((Text1.Text)) 'функция вычисления корня Text2.Text = "" 'очистка Text2, так как он не нужен при этой операции Label2.Caption = "Кв. корень" End Sub
Озаглавить форму
Private Sub Form_Load() ‘процедура загрузки формы Form1.Caption = "Калькулятор" 'меняем заголовок формы Text1.Text = "" 'присвоим текстбоксам значение пустой строки Text2.Text = "" Text3.Text = "" Label2.Caption = "Действие" 'присвоим лейблам Label1.Caption = "Результат:" 'нужные значения End Sub
Закрыть форму
Private Sub Command7_Click() ‘процедура нажатия кнопки Command7
End ‘закрываем программу
End Sub
Возвести число в квадрат
Private Sub Command8_Click() процедура для нажатия кнопки сommand8
Text3.Text = Val(Text1.Text) ^ 2 операция возведения в квадрат
Text2.Text = ""
Label2.Caption = "возведение в кв." присвоение лейбла
End Sub
Переход из одной формы в другую
Private Sub Command9_Click() процедура нажатия кнопки command9
Form2.Show ‘ переходим к форме №2
Form1.Hide ‘ переходим из формы №1
End Sub
Private Sub Command1_Click()процедура нажатия кнопки command1
Form1.Show переходим к форме №1
Form2.Hide переходим из формы №2
End Sub
И кстати «=» в vb явл оператором присваивания а не «равно»
6. Создать приложение для вычисления по формуле вида .
1.Для начала нарисуем рисунок подобной формулы и через image перенесем в форму
2. сделаем из command button кнопку далее и перейдем на другую форму
Переход из одной формы в другую
Private Sub Command1_Click() процедура нажатия кнопки command1
Form2.Show ‘ переходим к форме №2
Form1.Hide ‘ переходим из формы №1
End Sub
Private Sub Command1_Click()процедура нажатия кнопки command1
Form1.Show переходим к форме №1
Form2.Hide переходим из формы №2
End Sub
3. на второй форме вставим кнопки command button (закрыть, назад, очистить, ответ) text box (с пустыми полями) и label ( переменная Х)
Закрыть форму
Private Sub Command3_Click() ‘процедура нажатия кнопки Command3
End ‘закрываем программу
End Sub
Кнопка очистки данных
Private Sub Command2_Click() ‘процедура нажатия кнопки Command2 Text1.Text = "" 'присвоим текстбоксам значение пустой строки Text2.Text = "" 'для очистки всех текстбоксов Text3.Text = "" End Sub
Для кнопки «ответ» пишем следующий код
Private Sub Command4_Click()процедура нажатия кнопки command button4
Dim x As Single задаем переменную X
Text2.Text = (Val(Text1.Text) - 1) / (Sqr((Text1.Text) - 2)) ^ 2 это формула
End Sub
9.Разработать приложение для определения площади фигур с выводом изображения на форму или в объекты типа Image или Picture.
1. Вставляем frame (в инструментах) и называем «типы фигур»
2. В него вставляем три option button, каждому даем name- vibor1 (vibor2, vibor3), напротив св-ва value нужно поставить true, и так же проверить index –у каждого д/б свой от 0 до 2, ну и каждый назвать caption – треугольник(круг, прямоугольник).
3. Далее переходим к другим формам с соответствующими рисунками
Для первого кружочка переход к форме1
Private Sub vibor1_Click(Index As Integer)
Form2.Show
Form1.Hide
End Sub
Для 2-го кружочка переход к форме2
Private Sub vibor2_Click(Index As Integer)
Form3.Show
Form1.Hide
End Sub
И для 3-го кружочка переход к форме3
Private Sub vibor3_Click(Index As Integer)
Form4.Show
Form1.Hide
End Sub
Разберу на примере формы2 – треугольник:
1) В форме2 вставляем картинку треугольника и кнопки command button (высота, основание, результат, очистить, назад), label (пустое поле результата) и text box (пустые поля). Далее вводим коды:
Для кнопки результат
Private Sub Command3_Click()
Dim h, w As Single
h = Text1.Text – вводим переменную h
w = Text2.Text – вводим переменную w
label1 = h * w / 2 - формула
End Sub
Для кнопки очистить
Private Sub Command4_Click()
Text1.Text = ""
Text2.Text = ""
label1 = ""
End Sub
Для кнопки назад
Private Sub Command5_Click()
Form1.Show
Form3.Hide
End Sub
2) В форме3 все тоже самое только прямоугольник
Для кнопки результат
Private Sub Command3_Click()
Dim h, w As Single
h = Text1.Text
w = Text2.Text
Label1 = h * w
End Sub
Для кнопки назад
Private Sub Command4_Click()
Form1.Show
Form3.Hide
End Sub
3) В форме 4 круг – здесь попробую всякие кнопки text1 и label назвать в св-ве name. Пусть text1=visota, label1=otvet, command button1 = result, command button2 = nazad – тогда коды такие:
Для кнопки результат
Private Sub rezult_Click()
Dim h, r As Single
h = visota.Text
r = 3.14 * h * h
otvet.Caption = r
End Sub
Для кнопки назад
Private Sub nazad_Click()
Form1.Show
Form4.Hide
End Sub