Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная_работа_2-1(2_семестр)0

.pdf
Скачиваний:
10
Добавлен:
25.03.2016
Размер:
615.04 Кб
Скачать

Ключевое слово Public указывает на то, что процедура является глобальной, если она сохранена в файле модуля. То есть, её можно будет вызвать из любой процедуры обработки событий или из другой общей процедуры, сохраненной в файле формы или в файле модуля..

Ключевое слово Sub означает “процедура”.

Имя Надпись служит для вызова этой общей процедуры из других процедур. Имя может состоять не более чем из 40 символов, начинаться с буквы и включать только буквы, цифры и символы подчеркивания.

В круглых скобках записываются аргументы, позволяющие заменять заменить фактические переменные формальными. Объявим символьную переменную Сообщение в списке аргументов

Public Sub Надпись(ByVal Сообщение As String)

Таким образом, переменной Сообщение будет передаваться некоторое

конкретное (фактическое)

значение из других процедур. Здесь слово ByVal (by value -

по значению) говорит о

том, что общей процедуре в качестве аргумента передается

именно значение переменной Сообщение, но не сама переменная. При этом создается отдельная копия переменной Сообщение и общая процедура работает только с копией. Это делается во избежании повреждения или удаления данных, передаваемых общим процедурам. Если необходимо предусмотреть возможность внесения изменений в переменную Сообщение, то вместо слова ByVal следует записать ByRef ( by reference - по ссылке).

В качестве кода общей процедуры запишем строку присвоения содержимому

текстового поля

значения переменной Сообщение (TextBox1.Text = Сообщение). В

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

 

Public Sub Надпись(ByVal Сообщение As String)

 

TextBox1.Text = Сообщение

 

End Sub

 

Фактические

значения переменной

Сообщение передаются из других процедур.

По условию задачи это процедуры

обработки событий: одинарный щелчок и

двойной щелчок.

Для вызова общей

процедуры существует два способа. Можно

только указать её имя, а

в скобках указать фактическое значение передаваемого

параметра (переменная

Сообщение) Например,

в процедуре обработки

события

“одинарный щелчок”

имя

процедуры - Надпись, а

значение передаваемого

параметра

- Одинарный щелчок:

 

 

 

 

.

 

 

 

 

Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click

Надпись("Одинарный щелчок") End Sub

Либо можно ещё добавить оператор Call. Например, для вызова процедуры обработки события “двойной щелчок” имеем

Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick

Call Надпись("Двойной щелчок")

End Sub

Ниже приведен полный текст программы. Общая процедура Надпись запускается процедурами обработки событий. Из них переменной Сообщение передается фактические значение (либо Одинарный щелчок либо Двойной щелчок), которое присваивается свойству Text текстового поля TextBox1.

Public Sub Надпись(ByVal Сообщение As String)

TextBox1.Text = Сообщение

End Sub

Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click

Надпись("Одинарный щелчок") End Sub

Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick

Call Надпись("Двойной щелчок") End Sub

Задание 5

Вычислить гипотенузу прямоугольного треугольника по катетам

Задание 6

 

 

 

Вычислить функцию z = th(a)th2 (a b)

, где th(x)=

1e 2 x

.

 

th(a 2 b2 )

 

1+e 2 x

Imports System.Math

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim a As Double : Dim b As Double : Dim c As Double : Dim x As Double Dim y As Double : Dim z As Double

a= InputBox("a")

b= InputBox("b")

x= th(a)

y= th(a - b)

z= Sqrt(th(a * a - b * b))

c= (x - y) / z

ListBox1.Items.Add(a)

ListBox1.Items.Add(b)

ListBox1.Items.Add(z)

ListBox1.Items.Add(c) End Sub

Function th(ByVal x As Double) As Double Dim t As Single

t = (1 - Exp(-2 * x)) / (1 + exp(-2 * x)) Return t

End Function

End Class

Задание 7

Вычислить полярные координаты точки по известным декартовым координатам.

y

 

r =

x2 + y2

 

 

 

 

r

ϕ

A(x,y)

y

 

 

 

 

ϕ = arctg

 

 

 

 

 

 

 

 

x

x

 

Imports System.Math

Public Class Form1

Dim R As Double, Fi As Double

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim x As Single, y As Single, c As Single REM a= b =

x= InputBox("x")

y= InputBox("y") POLAR(x, y)

REM Вывод(c, a, b)

REM ListView1.Text = Str(c) ListBox1.Items.Add(x) ListBox1.Items.Add(y) ListBox1.Items.Add(R) ListBox1.Items.Add(Fi)

End Sub

Sub POLAR(ByVal x As Single, ByVal y As Single)

R = Sqrt(x * x + y * y)

If x > 0 And y > 0 Then Fi = 57 * Atan(y / x)

If x < 0 And y > 0 Then Fi = 180 + 57 * Atan(y / x)

If x > 0 And y < 0 Then Fi = 57 * Atan(y / x)

If x < 0 And y < 0 Then Fi = -180 + 57 * Atan(y / x)

End Sub

End Class

Задание 6

2. Выполните 1 вариант домашнего задания.

 

1. Вычислить u =

min(x, y) + max(x + y, xz)

 

 

(max(min(x, z), x + z))2

 

 

 

 

 

 

 

 

 

2. Написать функцию для вычисления частичной суммы заданного числового ряда n

ak

 

 

 

 

 

 

 

 

k =1

 

3. Вычислить для заданных a и b z = 0,5 f (a,2b) + f (a 3,b), где

 

 

 

x + y

 

,

если x = y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если x < y

 

f (x, y) = x 2 ,

 

 

 

y

 

 

 

 

 

,

 

 

 

если x > y

 

2

 

 

 

 

4. Написать процедуру для вычисления факториала числа n!. Используйте созданную вами процедуру в приложении для вычисления факториала числа, введенного пользователем.

5. Написать процедуру - функцию, возвращающее значение функции n 1 . Используйте

k =0 a k

созданную вами функцию в приложении для вычисления суммы чисел (количество чисел n и основание а указывается пользователем).

6. Написать процедуру – функцию, возвращающее минимальное значение из 3 чисел. Используйте созданную вами функцию в приложении для нахождения минимального числа и 3 введенных пользователем чисел.

7. Написать процедуру для нахождения максимального числа из K случайных чисел в интервале, введенным пользователем. Используйте созданную процедуру в приложении для нахождения максимального числа из K случайных чисел в интервале, введенными пользователем.

Контрольные вопросы:

1.Дайте определение понятиям процедуры и функции. В чем сходство и различие между этими понятиями.

2.Что такое модификатор доступа. Каково основное предназначение.

3.Дайте характеристику следующим обозначениям: ByRef и ByVal. Каково различие между этими понятиями.

4.Какой модификатор доступа у функции:

Function Max (ByVal a as Integer, ByVal b as Double)

End function

5.Найдите в коде ошибку:

Private Function MyFunction(ByVal icount as integer) msgbox(icount)

return icount End Function ….

MyFunction(“icount”)