Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Живодерова В В / VB Лабораторный практикум 5 часть.doc
Скачиваний:
72
Добавлен:
26.03.2016
Размер:
1.78 Mб
Скачать

Лабораторно-практическая работа № 9

Тема: Процедуры общего назначения

Цель: Получить навыки использования вызываемых процедур и функций

1 Часть

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

Порядок выполнения:

  1. Установите на форме следующие объекты и измените им свойства:

Объект

Свойство

Значение

Командная кнопка

Name

Cmd

Метки

Caption

Введите числа

Caption

Max

Текстовые окна

Name

Text1

Name

Text2

Name

Text3

Name

Text4

Name

TxtMax

  1. Приведите свою форму в соответствие с образцом

  2. В окне кода процедуры обработки события Click для объекта Cmd набрать:

Dim x1 As Single, x2 As Single

Dim x3 As Single, x4 As Single

x1 = Val(Text1.Text)

x2 = Val(Text2.Text)

x3 = Val(Text3.Text)

x4 = Val(Text4.Text)

TxtMax.Text = max(max(x1, x2), max(x3, x4))

  1. Создать функцию нахождения максимума из двух значений, для этого:

  • в окне программного кода в списке Object выбрать General

  • набрать следующий текст

Function max(a As Single, b As Single) As Single

If a > b Then

max = a

Else

max = b

End If

End Function

  1. Проверить работу программы

  2. Изменить программу, для того чтобы она определяла и максимум и минимум (самостоятельно создайте еще одну функцию)

  3. Результат показать преподавателю

2 Часть

Постановка задачи: Разработать приложение, которое строит три вида графика. Для подготовки графического поля перед выводом графика разработать вызываемую процедуру

  1. Добавьте на форму графическое окно (PicDraw) и три командных кнопки (Cmd1, Cmd2, Cmd3 )

  2. Приведите свою форму в соответствие с образцом

  1. Создайте процедуру общего назначения для инициализации графического окна, для этого:

  • в окне программного кода в списке Object выбрать General

  • набрать следующий текст

Sub grafik(z1, z2, z3, z4)

PicDraw.Cls

PicDraw.Scale (z1, z2)-(z3, z4)

PicDraw.Line (z1, 0)-(z3, 0)

PicDraw.Line (0, z2)-(0, z4)

End Sub

  1. В окне кода процедуры обработки события Clickдля объектаCmd1набрать

Call grafik(-10, 100, 10, -10)

For x = -10 To 10 Step 0.1

y = x ^ 2

PicDraw.PSet (x, y)

Next x

  1. В окне кода процедуры обработки события Clickдля объектаCmd2набрать

Call grafik(-10, 2, 10, -2)

For x = -10 To 10 Step 0.1

y = Sin(x)

PicDraw.PSet (x, y)

Next x

  1. В окне кода процедуры обработки события Clickдля объектаCmd3набрать

Call grafik(-10, 10, 10, -10)

For x = -10 To 10 Step 0.1

y = Abs(x)

PicDraw.PSet (x, y)

Next x

  1. Проверьте работу программы

Лабораторно-практическая работа № 10

Тема: Процедуры общего назначения

Цель: Закрепить навыки создания вызываемых процедур и функций

Постановка задачи: По заданным координатам построить два треугольника и определить их площадь, используя вызываемую функцию, цель которой – вычисление площади треугольника

Порядок выполнения:

  1. Установите на форме следующие объекты и измените им свойства:

    Объект

    Свойство

    Значение

    Рамки

    Caption

    Ручная установка точек

    Caption

    Ввод координат вершин

    Caption

    X1,Y1

    Caption

    X1,Y1

    Caption

    X2,Y2

    Caption

    X2,Y2

    Caption

    X3,Y3

    Caption

    X3,Y3

    Caption

    Площадь

    Caption

    Площадь

    Текстовые окна

    Name

    (для правой стороны)

    TxtX1_k TxtY1_k

    TxtX2_k TxtY2_k

    TxtX3_k TxtY3_k

    TxtS_k

    Name

    (для левой стороны)

    TxtX1_m TxtY1_m

    TxtX2_m TxtY2_m

    TxtX3_m TxtY3_m

    TxtS_m

    Графическое окно

    Name

    Picture1

    Командная кнопка

    Name

    Cmd

    Caption

    Вычислить площадь треугольников

  2. Приведите свою форму в соответствие с образцом

  3. В разделе общих объявлений набрать:

Dim X1, Y1, X2, Y2, X3, Y3 As Single

Dim N As Integer

  1. В окне кода процедуры обработки события Paint для объекта Form набрать

'заполнение формы после ее загрузки. сетка в графическом поле

Picture1.Refresh

Picture1.Scale (0, 20)-(20, 0)

For I = 1 To 20

Picture1.Line (I, 0)-(I, 20), RGB(200, 200, 200)

Next I

For I = 1 To 20

Picture1.Line (O, I)-(20, I), RGB(200, 200, 200)

Next I

  1. В окне кода процедуры обработки события MouseDown для объекта Picture1 набрать

If N = 0 Then

X1 = CInt(X * 10) / 10

Y1 = CInt(Y * 10) / 10

Picture1.PSet (X, Y)

N = N + 1

ElseIf N = 1 Then

X2 = CInt(X * 10) / 10

Y2 = CInt(Y * 10) / 10

Picture1.PSet (X, Y)

N = N + 1

Else

X3 = CInt(X * 10) / 10

Y3 = CInt(Y * 10) / 10

Picture1.PSet (X, Y)

N = N - 2

End If

  1. В окне кода процедуры обработки события Click для объекта Cmd набрать

' очистим поле построим сетку

Picture1.Refresh

Picture1.Scale (0, 20)-(20, 0)

For I = 1 To 20

Picture1.Line (I, 0)-(I, 20), RGB(200, 200, 200)

Next I

For I = 1 To 20

Picture1.Line (O, I)-(20, I), RGB(200, 200, 200)

Next I

'построим треугольник по указанным точкам и вычислим площадь

Picture1.Line (X1, Y1)-(X2, Y2), RGB(0, 0, 255)

Picture1.Line (X1, Y1)-(X3, Y3), RGB(0, 0, 255)

Picture1.Line (X3, Y3)-(X2, Y2), RGB(0, 0, 255)

'покажем координаты

TxtX1_m.Text = X1: TxtY1_m.Text = Y1

TxtX2_m.Text = X2: TxtY2_m.Text = Y2

TxtX3_m.Text = X3: TxtY3_m.Text = Y3

TxtS_m.Text = S_Tr(X1, Y1, X2, Y2, X3, Y3)

'построим треугольник по указанным точкам и вычислим площадь

X1 = Val(TxtX1_k.Text)

Y1 = Val(TxtY1_k.Text)

X2 = Val(TxtX2_k.Text)

Y2 = Val(TxtY2_k.Text)

X3 = Val(TxtX3_k.Text)

Y3 = Val(Txty3_k.Text)

Picture1.Line (X1, Y1)-(X2, Y2), RGB(255, 0, 0)

Picture1.Line (X1, Y1)-(X3, Y3), RGB(255, 0, 0)

Picture1.Line (X3, Y3)-(X2, Y2), RGB(255, 0, 0)

TxtS_k.Text = S_Tr(X1, Y1, X2, Y2, X3, Y3)

  1. Создайте вызываемую функция, которая по координатам вершин треугольника вычисляет площадь треугольника по формуле Геррона, для этого:

  • откройте окно программного кода (для любого объекта;

  • в списке Object выберите General

  • наберите следующее:

Function S_Tr(a1, b1, a2, b2, a3, b3 As Single) As Single

'определяем длины сторон

dlina1 = Sqr((a1 - a2) ^ 2 + (b1 - b2) ^ 2)

dlina2 = Sqr((a1 - a3) ^ 2 + (b1 - b3) ^ 2)

dlina3 = Sqr((a3 - a2) ^ 2 + (b3 - b2) ^ 2)

'определяем полупериметр

p = (dlina1 + dlina2 + dlina3) / 2

S_Tr = Sqr(p * (p - dlina1) * (p - dlina2) * (p - dlina3))

End Function

  1. Проверьте работу программы:

  • введите координаты вершин треугольника с клавиатуры (текстовые окна справа)

  • щелчком мышки в графическом окне отметьте вершины другого треугольника

  • для построения треугольников и определения площади каждого, щелкните по командной кнопке