47600

ПРАКТИКУМ ПРОГРАММИРОВАНИЯ В СИСТЕМЕ VISUAL BASIC (Часть 2). МЕТОДИЧЕСКИЕ УКАЗАНИЯ

Книга

Информатика, кибернетика и программирование

В методических указаниях разбирается ряд основных задач на численные методы, часто используемых в курсовых работах, приводятся варианты заданий для самостоятельного решения, рассматриваются основы создания меню и программа-шаблон Windows-приложения для курсовой работы

Русский

2013-11-30

1.06 MB

33 чел.

12

Министерство общего и профессионального образования

Российской Федерации

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра  информатики

ПРАКТИКУМ  ПРОГРАММИРОВАНИЯ
В  СИСТЕМЕ
VISUAL BASIC

(Часть 2)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к  выполнению  курсовых  работ  по  дисциплине

"Информатика"

Уфа  2004


Составители: В.А. Лебедев, Г.В. Осипова, Е.А. Кузьмина

УДК 681.03.06 (035.5)

Практикум программирования в системе Visual Basic (Часть 2): Методические указания к  выполнению  курсовых  работ  по  дисциплине «Информатика» /Уфимск. гос. авиац. техн. ун-т; Сост. В.А. Лебедев, Г.В. Осипова, Е.А. Кузьмина - Уфа. 2004. - 69 с.

В методических указаниях разбирается ряд основных задач на численные методы, часто используемых в курсовых работах, приводятся варианты заданий для самостоятельного решения, рассматриваются основы создания меню и программа-шаблон Windows-приложения для курсовой работы.

Указания предназначены для студентов всех специальностей 1 и 2-го курсов.

Табл. 7. Ил. 4. Библиогр.: 3 назв.

Рецензенты:

докт. техн. наук, профессор    Мартынов В.В.

канд. техн. наук, доцент     Каримов Р.Р.;


Содержание

[1]
Введение

[2] 1. Практические работы на численные методы

[2.1] 1.1 Решение нелинейных уравнений

[2.2] 1.2 Вычисление определенных интегралов

[2.3] 1.3 Вычисление несобственных интегралов

[2.4] 1.4 Решение дифференциальных уравнений второго порядка
(задача Коши)

[2.4.0.1] Эйлера

[2.5] 1.5 Решение систем нелинейных уравнений

[2.6] 2. Теоретические основы проектирования меню

[2.7] 2.1 Программа-шаблон SDI-приложения для курсовой работы

[3] Список литературы


Введение

Цель работ

Приобретение практических навыков решения задач на численные методы и создания Windows-приложений с использованием в проектах меню и других элементов управления системы Visual Basic.

Отчетность

Оформление каждой практической работы заканчивается отчетом, содержащим:

  1.  постановку задачи (конкретный вариант задания);
  2.  результат выполнения программы в главном окне формы;
  3.  файлы программ с расширениями vbp, frm, exe.

1. Практические работы на численные методы

1.1 Решение нелинейных уравнений

  •  Постановка задачи.

Решить уравнение f(x)=x2- 8x+15=0 на заданном отрезке [a, b] с точностью  методами: деления отрезка пополам, касательных- Ньютона, простой итерации. Допускается, что отрезок [a, b] содержит единственный корень.

  •  Решение уравнения методом деления отрезка пополам

Алгоритм вычисления корня методом деления отрезка пополам предусматривает циклическое вычисление значений функций f(a) и f(b) соответственно для левой и правой границ интервала и деления его пополам (определение точки х), до тех пор, пока не будет достигнута заданная точность . После определения половины текущего интервала, содержащей корень , переменным a или b присваиваем значение х, которое определяем из условия, заданного в операторе IF f(a)*f(x)>0 then A:=x Else B:=x. Условием же окончания цикла является истинное значение логического выражения (Abs(b-a)<= ) and (Abs(f(x))<= ) 

  •  Код программы

Function f(x As Single) As Single

f = x * x - 8 * x + 15

End Function

Private Sub Form_Load()

Dim ss As String

Caption = "Метод деления отрезка пополам"

e! = InputBox("введите погрешность",,0.00001)

Do

a! = InputBox("введите левую границу аргумента" ,, 1)

b! = InputBox("введите правую границу аргумента" ,, 4)

If f(a) * f(b) > 0 Then

MsgBox "На отрезке корны нет", , "Введите новые значения"

End If

Loop Until f(a) * f(b) < 0

Do

x! = (a + b) / 2

If f(a) * f(x) > 0 Then

a = x

Else

b = x

End If

ss = ss & Format(x, "#0.0000000") & vbCrLf

Loop Until Abs(b - a) <= e And Abs(f(x)) <= e

Text1 = ss & vbCrLf & "Корень=" &_

Format(x, "#0.000") & "   Функция в корне = " & Format(f(x), "#0.0000000")

End Sub

  •  Решение уравнения методом Ньютона (касательных)

В методе касательных корень уравнения на отрезке [a, b] получаем как предел последовательности:

.

Уточняем корень с точностью до тех пор, пока не будет выполняться условие . Для сходимости метода достаточно, чтобы отрезок
[
a, b] содержал единственный корень, а функция f(x) имела на этом отрезке непрерывные производные f(x), f(x) отличные от нуля. Начальное приближение x0  выбирается так, чтобы произведение f(x0)*f(x0)>0.

  •  

Код программы

Function f(x As Single) As Single

f = x * x - 8 * x + 15

End Function

Function df(x As Single) As Single

df = 2 * x - 8

End Function

Function d2f(x As Single) As Single

d2f = 2

End Function

Private Sub Form_Load()

Dim ss As String, t1 As Boolean, t2 As Boolean

Caption = "Метод касательных"

e! = InputBox("введите погрешность", , 0.00001)

Do

a! = InputBox("введите левую границу аргумента", , 1)

b! = InputBox("введите правую границу аргумента", , 4)

t1 = f(a) * d2f(a) > 0

t2 = f(b) * d2f(b) > 0

If t1 Then x! = a

If t2 And Not t1 Then x! = b

Loop Until t1 Or t2

Do

d! = f(x) / df(x)

x = x - d

ss = ss & Format(x, "#0.000") & vbCrLf

Loop Until Abs(d) < e

Text1 = ss & vbCrLf & "Корень=" & Format(x, "#0.000") & " Функция в корне = " &_ Format(f(x), "#0.000")

End Sub

  •  Решение уравнения методом простой итерации

В методе итераций уравнения f(x)=0 преобразуем к виду x=(x). Корень определяем как предел последовательности:

Уточняем корень с точностью до тех пор, пока не выполнится условие . Условием сходимости процесса итераций является неравенство  для всех  х  в интервале определения корня.

  •  

Код программы

Function f(x As Single) As Single

f = x * x - 8 * x + 15

End Function

Function fi(x As Single) As Single

fi = (x * x + 15) / 8

End Function

Function dfi(x As Single) As Single

dfi = x / 4

End Function

Private Sub Form_Load()

Dim ss As String, x1 As Single

Caption = "Метод итераций"

e! = InputBox("введите погрешность", , 0.00001)

Do

x! = InputBox("введите нач. приближение корня, например", , 4)

If Abs(dfi(x)) > 1 Then

MsgBox "Измените начальное приближение"

End If

Loop Until Abs(dfi(x)) <= 1

Do

x1 = x

x = fi(x1)

ss = ss & Format(x, "#0.000000") & vbCrLf

Loop Until Abs(x1 - x) < e

Text1 = ss & vbCrLf & "Корень=" & Format(x, "#0.000") & " Функция в корне = " &_ Format(f(x), "#0.000")

End Sub

  •  Варианты заданий

Таблица 3

Уравнения

Отрезок, содержащий

корень

Метод

численного решения

Приближенное значение

1

[2;3]

Итераций

2,2985

2

[0;2]

Ньютона

1,0001

3

[0,4;1]

Ньютона

0,7376

4

[0;0,85]

Итераций

0,2624

5

[1;2]

Ньютона

1,1183

6

[0;0,8]

Половинного деления

0,3333

7

[0;1]

Итераций

0,5629

8

[2;4]

Ньютона

3,2300

9

[1;2]

Половинного деления

1,8756

10

[0;1]

Итераций

0,7672

11

[0;1]

Ньютона

0,8814

12

[1; 3]

Половинного деления

1,3749

13

[1,2; 2]

Итераций

1,3077

14

[3; 4]

Ньютона

3,5265

15

[1; 2]

Половинного

деления

1,0804

16

[0; 1,5]

Итераций

1,1474

17

[1; 3]

Ньютона

2,0692

18

[0; 1]

Половинного

деления

0,5768

19

[0,5; 1]

Итераций

0,9892

20

[1; 3]

Ньютона

1,8832

21

[0; 1]

Половинного

деления

0,1010

22

[2; 3]

Итераций

2,0267

23

[0,4; 1]

Ньютона

0,6533

24

[-1; 0]

Половинного

деления

- 0,2877

25

[2; 3]

Итераций

2,8459

26

[0,2; 1]

Ньютона

0,5472

27

[1; 2]

Половинного

деления

1,0769

28

[1; 2]

Итераций

1,2388

29

[0; 1]

Ньютона

0,4538

30

[2; 3]

Половинного

деления

2,4200

1.2 Вычисление определенных интегралов

  •  Постановка задачи.

Вычислить значение определенного интеграла  методом Симпсона с точностью и по формуле Ньютона - Лейбница y=F(b)-F(a), где F(х)=. Метод Симпсона основан на замене подынтегральной функции кусочными параболами. Для вычисления интеграла используется следующая формула  где  f0 =f(a);  f2N = f(b); fi - значение функции внутри отрезка, 2N - первоначальное число разбиений отрезка [a, b], для гладких кривых точность связана с шагом интегрирования отношением   h4 .

  •  Решение определенного интеграла методом Симпсона с переменным шагом интегрирования.

Оценить зависимость точности вычисления определенного интеграла от величины шага интегрирования для подынтегральной функции любой формы достаточно сложно. Ошибка в выборе шага интегрирования либо не обеспечивает нужной точности, либо приводит к необоснованным затратам машинного времени. Поэтому в следующем примере реализован алгоритм интегрирования с автоматическим выбором величины шага. В качестве исходного значения шага можно задать h. После вычисления значения интеграла y(h) с шагом h, значение шага делится пополам и вычисление интеграла y(h/2) ведется для шага h/2. Дробление шага и соответственно вычисление интеграла выполняется пока условие y(h) - y(h/2) >= не станет истинно.

  •  Код программы

Function F(x As Single) As Single

F = Sin(x)

End Function

Function FF(x As Single) As Single

FF = -Cos(x)

End Function

Private Sub Form_Load()

Dim ss As String

Caption = "Метод Симпсона"

a! = InputBox("введите левую границу интеграла", , 0)

b! = InputBox("введите правую границу интеграла", , 3.1415926)

e! = InputBox("введите погрешность", , 0.000001)

n& = InputBox("введите количество шагов", , 20)

pf! = FF(b) - FF(a)

i1! = 0 :

i2! = 1

p! = (F(a) - F(b)) / 2

h! = (b - a) / (2 * n)

Do While Abs(i2 - i1) > e

x! = a + h

s1! = 0 : s2! = 0

Do While x < b

s1 = s1 + F(x)

s2 = s2 + F(x + h)

x = x + 2 * h

Loop

i1 = i2

i2 = 2 * h / 3 * (p + 2 * s1 + s2)

h = h / 2

ss = ss & Format(i2, "#0.00000000") & vbCrLf

Loop

Text1 = ss & vbCrLf & "Integral = " & Format(i2, "#0.00000000") & vbCrLf &_

"Первообразная = " & Format(pf, "#0.00000000")

End Sub

  •  Решение определенного интеграла методом трапеций/

Алгоритм основан на замене подынтегральной функции ломанными линиями. Для вычисления интеграла используется формула , где a и b пределы интегрирования; h = (b-a)/2 – шаг интегрирования; n - количество шагов; f(x) – интегрируемая функция. Точность связана с шагом интегрирования отношением   h2 .

  •  Код программы

Function F(x As Single) As Single

F = Sin(x)

End Function

Function FF(x As Single) As Single

FF = -Cos(x)

End Function

Private Sub Form_Load()

Dim ss As String

Caption = "Метод трапеций"

a! = InputBox("введите левую границу интеграла", , 0)

b! = InputBox("введите правую границу интеграла", , 3.1415926)

e! = InputBox("введите погрешность", , 0.00001)

n& = InputBox("введите количество шагов", , 20)

i1! = 0 : i2! = 1 ‘ Начальные значения интегралов

y0! = F(a)/2 :

yn! = F(b)/2

h! = (b - a) / n

Do While Abs(i2 - i1) > e

x! = a

y! = 0

For i& = 1 To n - 1

x! = x + h

y! = y + F(x)

Next i

i1 = i2

i2 = h * (y + y0 + yn)

h = h / 2 : n = n * 2

ss = ss & Format(i2, "#0.00000000") & vbCrLf

Loop

ss = ss & vbCrLf & "Integral = " & Format(i2, "#0.0000000")

Text1 = ss & vbCrLf & "Первообразная = " & Format(FF(b) - FF(a), "#0.0000000")

End Sub

  •  Варианты заданий 

Таблица 4

Подынтегральная
функция
f(x)

Промежуток интеграла [а; b]

Метод численного решения

Точное значение первообразной

1

[1;4]

Трапеций

2

[1;  3,5]

Симпсона

3

Трапеций

4

[2; 3]

Симпсона

5

[0; ln2]

Симпсона

6

[0; 1]

Трапеций

7

[0; 2]

Симпсона

8

[0;2]

Трапеций

9

[1;2,5]

Симпсона

10

[0;]

Трапеций

11

[1;3]

Трапеций

12

[0;3]

Симпсона

13

[0;1]

Симпсона

14

[1;2]

Трапеций

15

[0;1]

Трапеций

16

[0,2]

Симпсона

17

[0;/2]

Трапеций

18

[0;1,9999]

Симпсона

19

[0;]

Трапеций

20

[1;e]

Симпсона

21

[0;3]

Трапеций

22

[0;1]

Симпсона

23

[1;1,5]

Трапеций

24

[0;1,5]

Симпсона

25

[0; 3/4]

Трапеций

26

[0;1]

Симпсона

27

[0;1]

Симпсона

28

[1;2]

Трапеций

29

[1;2]

Симпсона

30

[1;2]

Трапеций

1.3 Вычисление несобственных интегралов

  •  Постановка задачи.

Вычислить значение  несобственного интеграла, используя формулу Симпсона, а также аналитическое (точное) решение y = ln(2).

  •  Решение несобственного интеграла с использованием метода Симпсона

Для вычисления несобственного интеграла , где f(x) – функция, непрерывная на интервале Ax и сходящаяся на этом интервале, представим его в виде суммы интеграла с конечным пределом B и несобственного интеграла

.

При этом число B выбираем достаточно большим, чтобы выполнялось неравенство

.

Тогда несобственный интеграл определяем как сумму частичных определенных интегралов

,

вычисленных одним из существующих методов, например, методом Симпсона с переменным шагом. Где AN - нижний предел интегрирования;
BN  - верхний предел интегрирования. Для вычисления первого частичного интеграла A1 равняется исходному значению A, B1 - число большее A1. Для последующих вычислений частичных интегралов пределы определяем как:

.

Прекращаем суммирование частичных интегралов, когда выполняется неравенство

  }

  •  Код программы

Private Const e = 0.000001

Function F(x As Single) As Single

F = 4 * x / (Exp(x) + Exp(-x)) ^ 2

End Function

Function Integral(ByRef a1 As Single, ByRef b1 As Single) As Single

i1! = 0 : i2! = 1 ‘ Начальные значения интегралов

p! = (F(a1) - F(b1)) / 2

h! = (b1 - a1) / 20

Do While Abs(i2 - i1) > e

x! = a1 + h

s1! = 0

s2! = 0

Do While x < b1

s1 = s1 + F(x)

s2 = s2 + F(x + h)

x = x + 2 * h

Loop

i1 = i2

i2 = 2 * h / 3 * (p + 2 * s1 + s2)

h = h / 2

Loop

Integral = i2

End Function

Private Sub Form_Load()

Dim ss As String

Caption = "Несобственный интеграл"

a! = InputBox("введите левую границу интеграла", , 0.001)

s! = 0

b! = 2 * a

Do

z! = Integral(a, b)

s = s + z

a = b

b = 2 * a

ss = ss & Format(s, "#0.000000") & vbCrLf

Loop Until Abs(z) <= e

ss = ss & vbCrLf & "Численное решение интеграла= " & Format(s, "#0.000000")

tf = Log(2)

Text1 = ss & vbCrLf & "Точное решение= " & Format(tf, "#0.000000")

End Sub

  •  Варианты заданий

Таблица 5

Несобственный интеграл

Точное решение

Исходные данные

1

ai=1,2,3

2

3

4

ai=1,2,3...10

5

,   ai=1,2,3...10,

bi=2,3...20

6

b=20,

ai=1,2,3...10

7

8

9

10

11

a>0,  b>0,

ab

12

a=1,2,3...5

13

a=1,2,3...5,

b=3,4...10

14

a=2,3,4

15

a=2,3...8

16

a=1,2,3...5,

b=1,2,3...5

17

18

a>0

19

20

1.4 Решение дифференциальных уравнений второго порядка
(задача Коши)

  •  Постановка задачи.

Решить дифференциальное уравнение 2-го порядка  на отрезке [1; 1,5], удовлетворяющее начальным условиям: y(1)=5 и y(1) = -1. На этом же отрезке вычислить точное (аналитическое) решение  y= 5 - ln(x).

  •  Решение дифференциального уравнения 2-го порядка методом Рунге-Кутта. Задача Коши

Исходное уравнение сведем к системе дифференциальных уравнений
1-го порядка, обозначив
y=z  , тогда получим систему следующего вида:

с начальными условиями y0 =y(1)= 5   и  z0 =z(1)= -1.

Воспользуемся формулами интегрирования по методу Рунге-Кутта

yi = yi-1 +1/6(k1 +2k2 +2k3 + k4 );

zi = zi-1+1/6(l1 +2l2 +2l3 + l4 )  ,

точность вычисления которых на каждом шаге оценивается величиной   h5. Здесь    k1=h*f(xi-1 , yi-1 , zi-1);

  l1=h*g(xi-1 , yi-1 , zi-1);

k2 =h*f(xi-1+h/2 , yi-1+k1/2 , zi-1+l1/2);

l2 =h*g(xi-1+h/2 , yi-1+k1/2 , zi-1+l1/2);

k3 =h*f(xi-1+h/2 , yi-1+k2/2 , zi-1+l2/2);

l3 =h*g(xi-1+h/2 , yi-1+k2/2 , zi-1+l2/2);

k4 =h*f(xi-1+h , yi-1+k3 , zi-1+l3);

l4 =h*g(xi-1+h , yi-1+k3 , zi-1+l3)

  •  Код программы

Dim ymax As Double, ymin As Double, xmax As Double, xmin As Double

Dim ax() As Double, ay() As Double, a As Double, b As Double, n As Double

Private Function f(x As Double, y As Double, z As Double) As Double

f = z

End Function

Private Function g(x As Double, y As Double, z As Double) As Double

g = -z / x

End Function

Private Sub Form_Load()

ss$ = ""

a = InputBox("Нижняя граница Х", , 1)

b = InputBox("Верхняя граница Х", , 1.5)

n = InputBox("Число точек на границе", , 10)

y0# = InputBox("Начальное зн.функции", "У", 5)

z0# = InputBox("Начальное зн.производной", "У", -1)

y# = y0

z# = z0

x# = a : h# = (b - a) / n

ReDim ax(n)

ReDim ay(n)

i = 0

Do While x < b + h

yy# = 5 - Log(x)

ss = ss & "X=" & Format(x, "#0.000") & Space(5) & _

"Точ. решение = " & Format(yy, "#0.00000000") & Space(5) & _

" Y = " & Format(y, "#0.00000000") & vbCrLf

k1# = h * f(x, y, z)

i1# = h * g(x, y, z)

k2# = h * f(x + h / 2, y + k1 / 2, z + i1 / 2)

i2# = h * g(x + h / 2, y + k1 / 2, z + i1 / 2)

k3# = h * f(x + h / 2, y + k2 / 2, z + i2 / 2)

i3# = h * g(x + h / 2, y + k2 / 2, z + i2 / 2)

k4# = h * f(x + h, y + k3, z + i3)

i4# = h * g(x + h, y + k3, z + i3)

ax(i) = x

ay(i) = y

y = y + (k1 + 2 * k2 + 2 * k3 + k4) / 6

z = z + (i1 + 2 * i2 + 2 * i3 + i4) / 6

x = x + h

i = i + 1

Loop

Text1 = ss

i = 0

ymax = ay(i)

ymin = ay(i)

xmin = a

xmax = b

Do

If ay(i) > ymax Then ymax = ay(i)

If ay(i) < ymin Then ymin = ay(i)

i = i + 1

Loop Until i > UBound(ay) '>n

If ymin > 0 Then ymin = 0

If ymax < 0 Then ymax = 0

If xmin > 0 Then xmin = 0

If xmax < 0 Then xmax = 0

Picture1.Scale (xmin - 0.05, ymax + 0.1)-(xmax + 0.05, ymin - 0.1)

End Sub

Private Sub Picture1_Click()

Label1.Visible = False

Picture1.Cls

Picture1.BackColor = vbWhite

Picture1.DrawWidth = 2

Picture1.Line (xmin, ymin)-(xmax, ymin) 'ОСИ: x, y

Picture1.Line (xmin, ymin)-(xmin, ymax)

i& = 0

Picture1.DrawWidth = 3

Do   'Graphic

If i <= n - 1 Then

Picture1.Line (ax(i), ay(i))-(ax(i + 1), ay(i + 1)), vbRed

End If

i = i + 1

Loop Until i > UBound(ay)

Picture1.DrawWidth = 1

Picture1.DrawStyle = 2

For j# = xmin To xmax Step 0.5  'Grid

Picture1.Line (j, ymin)-(j, ymax), vbBlack

Next

For j# = ymin To ymax Step 0.5

Picture1.Line (xmin, j)-(xmax, j), vbBlack

Next

Picture1.FontBold = True

Picture1.CurrentX = xmin + 0.05  'Label's

Picture1.CurrentY = ymax - 0.1

Picture1.Print "Y"

Picture1.CurrentX = xmax - 0.1

Picture1.CurrentY = ymin + 0.5

Picture1.Print "X"

Picture1.ForeColor = vbBlue

Picture1.CurrentX = xmax - 0.03

Picture1.CurrentY = ymin + 0.5

Picture1.Print Format(b, "#0.0")

Picture1.CurrentX = xmax - 0.53

Picture1.CurrentY = ymin + 0.5

Picture1.Print Format(a, "#0.0")

Picture1.CurrentX = xmin - 0.05

Picture1.CurrentY = ymax - 0.01

Picture1.Print Format(ymax, "#0")

Picture1.CurrentX = xmin - 0.05

Picture1.CurrentY = ymin + 0.5

Picture1.Print Format(ymin, "#0")

End Sub

  •  Для решения дифференциального уравнения 2-го порядка методом Эйлера можно воспользоваться формулами интегрирования:

yi  = yi-1 + h*f(xi-1 , yi-1 , zi-1);

zi = zi-1 + h*g(xi-1 , yi-1 , zi-1).

  •  Для решения дифференциального уравнения 2-го порядка модифицированным методом Эйлера следует воспользоваться формулами интегрирования:

yi = yi-1 +(k1+k2)/2 ;

zi = zi-1 +(l1+l2)/2 ;

где k1=h*f(xi-1 , yi-1 , zi-1);  l1=h*g(xi-1 , yi-1 , zi-1);

k2=h*f(xi-1+h , yi-1+k1 , zi-1+l1); l2=h*g(xi-1+h , yi-1+k1 , zi-1 +l1).

  •  Варианты заданий

Таблица 6

Дифференциальное уравнение

Н. у.

Интервал

Шаг

Метод

Точное решение

1

y(0)=1

y'(0)=0

[0; 0,5]

0,1

Эйлера

2

y(0)=1

y'(0)=1

[0; 0,5]

0,05

Рунге-Кутта

3

y(0)=1

y'(0)=0

[0; 0,5]

0,05

Эйлера

4

y(0)=0

y'(0)= - 4

[0; 0,2]

0,02

Рунге-Кутта

5

y(0)=1

y'(0)= - 1

[0; 1]

0,1

Эйлера

6

y(0)=1,8

y'(0)= - 0,5

[0; 2]

0,2

Рунге-Кутта

7

y(0)=2,2

y'(0)=0,8

[0; 0,2]

0,02

Эйлера

8

y(0)=0,8

y'(0)=2

[0; 1]

0,1

Рунге-Кутта

9

y(0)=1,433

y'(0)= -0,367

[0; 1]

0,1

Эйлера

10

y(0)=1

y'(0)=2

[0; 1]

0,1

Рунге-Кутта

11

y(0)= - 0,9

y'(0)=3,2

[0; 1]

0,1

Эйлера

12

y(0)=1

y'(0)=2

[0; 0,5]

0,05

Рунге-Кутта

13

y(0)=2,6

y'(0)=3,2

[0; 1]

0,1

Эйлера

14

y(1)=2

y'(1)=3,5

[1; 2]

0,1

Рунге-Кутта

15

y(1)=1,38

y'(1)= - 0,15

[1; 2]

0,1

Эйлера

16

y(1)=1,433

y'(1)=2,3

[1; 2]

0,1

Рунге-Кутта

17

y(0)=11/9

y'(0)= - 11/ 9

[0; 1]

0,1

Эйлера

18

y(0)=1,95

y'(0)=2,7

[0; 0,5]

0,05

Рунге-Кутта

19

y(0)= - 4

y'(0)= - 2,5

[0; 1]

0,1

Эйлера

20

y(0)= - 1/4

y'(0)= -1/2

[0; 0,5]

0,05

Рунге-Кутта

21

y(0)= 1

y'(0)= 0

[0; 1]

0,1

Эйлера

22

y(0)=1

y'(0)= -23/12

[0; 1]

0,1

Рунге-Кутта

23

y(0)=1/9

y'(0)= -7/12

[0; 1]

0,1

Эйлера

24

y(1)=5/6

y'(1)=2/3

[1; 2]

0,1

Рунге-Кутта

25

y(0)=1,48

y'(0)=3,6

[0; 0,5]

0,05

Эйлера

26

y(0)=0

y'(0)=0

[0; 0,2]

0,02

Рунге-Кутта

27

y(0)=5,1

y'(0)=4,2

[0; 1]

0,1

Эйлера

28

y(0)=2,5

y'(0)=1,5

[0; 1]

0,1

Рунге-Кутта

29

y(1)=4

y'(1)=4

[1; 1,5]

0,05

Эйлера

30

y(1) = 5

y'(1)=  - 1

[1; 1,5]

0,05

Рунге-Кутта

1.5 Решение систем нелинейных уравнений

  •  Постановка задачи.

Решить систему нелинейных уравнений 2 - го порядка:

методом простой итерации.

Исходную систему преобразуем к виду   .

Последовательные приближения к решению системы (определению корня) осуществляется по итерационным формулам

.

Решение уточняем до тех пор, пока не выполнится условие (Abs(xN-xN-1)< ) and (Abs(yN-yN-1)< ). Условие сходимости итерационного процесса будет:

 

В нашем случае  Условие сходимости выполняется для точек расположенных внутри области (0,5<x<; -0,7<y<0,7). Зададимся начальными значениями корня для последующего уточнения:  x0 =0.9; y0 = -0.45.

  •  Код программы

Private Function f1(x As Double, y As Double) As Double

f1 = x ^ 2 + y ^ 2 - 1

End Function

Private Function f2(x As Double, y As Double) As Double

f2 = Log(x) + 2 * y + 1

End Function

Private Function fi1(x As Double, y As Double) As Double

fi1 = Sqr(1 - y * y)

End Function

Private Function fi2(x As Double, y As Double) As Double

fi2 = (1 + Log(x)) / 2

End Function

Private Sub Form_Load()

ss$ = ""

Caption = "Система нелинейных уравнений"

e# = InputBox("Введите точность вычисления", , 0.000001)

x0# = InputBox("Начальное нач. приближение корня для Х", , 2)

y0# = InputBox("Начальное нач. приближение корня для У", , 0.1)

y# = y0

x# = x0

Do

ss = ss & "X = " & Format(x, "#0.00000000") & Space(5) & _

"Y = " & Format(y, "#0.00000000") & vbCrLf

x0 = fi1(x, y)

y0 = fi2(x, y)

d1# = Abs(x - x0)

d2# = Abs(y - y0)

x = x0

y = y0

Loop Until d1 <= e And d2 <= e

ss = ss + "Корень СИСТЕМЫ" & vbCrLf

ss = ss & "Х = " & Format(x, "#0.00000000") & Space(5) & _

"Y = " & Format(y, "#0.00000000")

Text1 = ss

End Sub

Другой способ решения системы нелинейных уравнений, когда трудно отыскать решение на заданном интервале, состоит в использовании дополнительных коэффициентов a и b, подбираемых путем изменения их знака. При этом исходные уравнения должны быть представлены в виде:

Решим систему нелинейных уравнений 2 - порядка:

с использованием дополнительных переменных a и b. 

  •  Код программы

Private Const a = 0.01, b = 0.01

Private Function f1(x As Double, y As Double) As Double

f1 = x + 3 * Log(x) / Log(10) - y ^ 2

End Function

Private Function f2(x As Double, y As Double) As Double

f2 = 2 * x ^ 2 - y * x + 1 - 5 * x

End Function

Private Function f(x As Double, y As Double) As Double

f = x + a * f1(x, y)

End Function

Private Function p(x As Double, y As Double) As Double

p = y + b * f2(x, y)

End Function

Private Sub Form_Load()

ss$ = ""

Caption = "Система нелинейных уравнений"

e# = InputBox("Введите точность вычисления", , 0.0000001)

x0# = InputBox("Начальное нач. приближение корня для Х", , 4)

y0# = InputBox("Начальное нач. приближение корня для У", , 3)

Do

y# = y0

x# = x0

ss = ss & "X = " & Format(x, "#0.00000000") & Space(5) & _

"Y = " & Format(y, "#0.00000000") & vbCrLf

x0 = f(x, y)

y0 = p(x, y)

d1# = Abs(x - x0)

d2# = Abs(y - y0)

x = x0

y = y0

Loop Until d1 <= e And d2 <= e

ss = ss + "Корень СИСТЕМЫ" & vbCrLf

ss = ss & "Х = " & Format(x, "#0.00000000") &_ Space(5) & "Функция F1(x,y)= " &_

Format(f1(x, y), "#0.00000000") & vbCrLf

ss = ss & "Y = " & Format(y, "#0.00000000") & Space(5) &_

"Функция F2(x,y)= " & Format(f2(x, y), "#0.00000000")

Text1 = ss

End Sub

  •  Варианты заданий

Таблица 7

Система уравнений

Начальное приближение: x0 ; y0; z0

1

1; 0

2

1; 1

3

1; 2,2; 2

4

0; 0; 0

5

0,5; 0,5

6

3,4; 2,2

7

0; 0

8

2; 1

9

0; 0

10

0,65; 0,35

11

0,5; 0,2

12

1,2; 1,7

13

0; 0,5

14

0; 0

15

1; 0,47

16

1,5; 2,5

2. Теоретические основы проектирования меню

Меню команд формы создается в режиме проектирования с помощью редактора меню Menu Editor (Tools/Menu Editor). Элемент меню - это такой же объект, как и другие элементы управления.

В окне редактора вводятся свойства каждого элемента.

  •  Свойство Caption это текст команды или заголовка меню. Символ & в названии команды задает клавишу доступа. Например, &Файл откроет меню Файл комбинацией клавиш Alt.
  •  Свойство Name - это имя процедуры – отклика на выбор пункта меню. Его принято начинать с mnu и включать ссылку на элемент верхнего уровня. Например, для пункта меню MnuFile можно создать команды MnuFileNew, MnuFileOpen, MnuFileSave.
  •  Свойство Checked помещает или удаляет флажок рядом с командой (это необходимо для визуального подтверждения команды). Его значением является переменная логического типа. Используя это свойство, можно создавать команды-переключатели.
  •  Если Свойство Enabled имеет значение False (флажок снят), то команда будет заблокирована (недоступная команда). Например, если в данный момент нельзя сохранить файл, то в коде программы устанавливаем mnuFileSave.Enabled=False. С этой целью можно использовать также свойство Visible. Если свойство Visible=False, то элемент становится невидимым.
  •  Свойство Shortcut определяет альтернативный вызов команды с клавиатуры. Здесь обычно используются клавиши Ctrl и Alt в сочетании с другими клавишами.

Редактор сразу отображает введенные элементы в окне меню. Заголовки меню отображаются с начала строки. Команды меню должны быть сдвинуты на одну позицию вправо. Сдвиг обеспечивают кнопки со стрелками влево и вправо. Линия, разделяющая группу команд, определяется как черточка (-) в строке поля Caption.

После того, как определены свойства элемента меню, нужно нажать кнопку Next и перейти к определению следующего элемента. Кнопки со стрелками вверх/вниз дают возможность переместить элемент, кнопка Delete - удалить текущий элемент, кнопка Insert - вставить элемент перед текущим.

Событие Click - это единственное событие, поддерживаемое элементами меню. Чтобы меню работало, команды выполнялись, для каждого пункта меню нужно написать процедуру обработки события Click.

В Visual Basic существуют два основных стиля пользовательского интерфейса: интерфейс с одним документом (single-document interface, SDI) и интерфейс со многими документами (multiple-document interface, MDI). Текстовый редактор с интерфейсом SDI позволяет открыть только один документ - чтобы открыть другой, следует закрыть предыдущий. В приложении MDI вы можете открыть сразу несколько документов.

С помощью Меню и Стандартных диалоговых окон (InputBox, MsgBox), методов ShowColor, ShowFont, ShowOpen, ShowSave элемента CommonDialog, а также элемента Rich TextBox (усовершенствованное текстовое поле) и инструментальной панели ToolBar можно создать однооконный интерфейс, аналогичный текстовому редактору WordPad. Элемент Rich TextBox дает возможность редактировать не только весь находящийся в нем текст, но и отдельные фрагменты этого текста.

Напомним, что CommonDialog добавляется к проекту через компонент MS Common Dialog Control 6.0. Усовершенствованное текстовое поле  Rich Text Box добавляется к проекту через компонент MS Rich TextBox Control 6.0. Через компонент MS Windows Common Controls 6.0 добавляются к проекту: ToolBar – панель инструментов, StatusBar – строка состояния, ImageList – список изображений и другие элементы.

С помощью элемента Rich TextBox можно форматировать текст, вставлять объекты, редактировать его способом Drag & Drop и сохранять в специальном формате *.rtf.

Объем текста в Rich TextBox в отличие от TextBox не ограничен пределом в 64К и позволяет читать большие текстовые файлы

Открыть и сохранить в файл можно как в rtf формате, так и в обычном текстовом. В последнем случае информация о форматировании теряется. Для чтения/записи текстовых файлов следует указывать свойства TextRTF или SelRTF. Например, чтобы прочитать содержимое только текстового файла достаточно записать:

RichTextBox1.TextRTF = Input(LOF(fn), fn) ‘но не RTF-файлов

‘а чтобы записать в текстовый файл содержимое поля RichTextBox1 -

Print #fn, RichTextBox1.TextRTF

В поле Rich TextBox можно загрузить файл с расширением rtf путем перетаскивания выделенного текста мышью из другого приложения, или перетаскивания файла из папки, либо загрузить его методом LoadFile. Чтобы сохранить на диске необходимо воспользоваться методом SaveFile. Синтаксис методов:

ИмяОбъекта.LoadFile Файл[,Тип файла]

ИмяОбъекта.SaveFile Файл[,Тип файла]

ИмяОбъекта - это имя текстового поля, куда загружается и откуда считывается rtf файл. Файл – путь к файлу. Тип файла – это одно из двух значений: rtfText или rtfRTF.

Некоторые свойства объекта Rich TextBox начинаются с приставки Sel (от слова Select) Все они относятся к выделенной части текста в данном объекте.

Будущие кнопки создаются в режиме проектирования, работая с объектом ImageList1.

Загрузив пиктограммы в ImageList1, вы получаете набор картинок, каждая из которых имеет свой номер, задаваемый свойством Index. Нумерация начинается с единицы.

Доступ к свойствам объектов ToolBar1 и ImageList1 осуществляется через свойство Custom или через команду Properties контекстного меню.

Объект ToolBar1 через закладку General связывается свойством ImageList со списком изображений объекта ImageList1. Объект ToolBar имеет закладку Buttons, на которой посредством кнопки InsertButton последовательно загружаются кнопки из объекта ImageList1, при этом свойство Index получает очередной номер. Каждому номеру свойства Index должен соответствовать номер картинки (свойство Image) на панели инструментов.

Свойство ToolTipText задает всплывающую подсказку под кнопкой на панели инструментов. Свойство Style по умолчанию имеет номер 0 (обычная кнопка). Другие значения номеров свойства Style используются для кнопок переключателей, кнопочных меню.

Событие Button_Click генерируется элементом ToolBar1. Элемент StatusBar может иметь либо стиль sbrNormal, либо sbrSimple (свойство Style). Во втором случае в строке можно выдавать сообщения во время работы приложения. В случае sbrNormal можно разделить строку состояния на ряд панелей. Тогда, кроме сообщений, можно выводить дату, время, различные индикаторы.

Буфер обмена (Clipboard) — это тоже объект Visual Basic, но к этому объекту можно применять два основных метода SetText (помещение фрагмента в «карман») и GetText (извлечение фрагмента из «кармана»).

В Windows выбор параметров выполняется в окнах диалога. Для добавления стандартного диалога в проект используется команда Project\Add Form\Dialog. При этом стандартные диалоги не могут иметь строк меню, а предназначены для отображения текстовой и графической информации. Для добавления в проект нестандартного диалога (форма-диалог) используется команда Project\Add Form\Form.

В проекте могут присутствовать много форм. Между формами необходимо определить отношения. Какая из них вызывающая, а какая вызываемая. Вызывающая форма должна содержать средства для вызова формы-диалога, а вызываемая - средства возврата.

При загрузке любой формы генерируется событие Load, а загрузка форм выполняется оператором Load.

Например,  Load Form2 'Загрузить форму 2

Метод Show вызывает появление формы на экране. При этом, если форма не была загружена ранее, она загружается. Полный синтаксис метода:

<Объект>.Show [<Стиль >, <Связь >]

Параметр стиль принимает значение 0 или 1 и обозначает модальность. Если окно открывается как модальное, то, не закрыв его, нельзя перейти к другому окну. По умолчанию 0, - немодальное. В качестве второго параметра может быть указана вызывающая форма. В этом случае открываемая форма считается подчиненной и выгружается из памяти, если закрывается главная форма.

Например, вывести на экран форму Form2 как модальное окно, подчиненное Form1

Form2.Show  1, Form1

или вывести на экран диалог Dialog как немодальное окно, подчиненное Form1

Dialog.Show  0, Form1

На форму-диалог нужно поместить одну или две командные кнопки: ОК и Отмена (В диалогах они появляются автоматически). В процедуре для кнопки ОК Вам необходимо передать параметры и убрать форму-диалог (или диалог) с экрана.

После того, как параметры переданы, нужно убрать с экрана окно диалога, то есть сделать его невидимым методом Hide. Этот метод убирает форму с экрана, но не выгружает ее из памяти, позволяя не тратить время на загрузку при последующих вызовах.

Form2.Hide  ‘Убрать форму

Dialog.Hide  ‘Убрать диалог

По окончании работы программы все формы и диалоги должны быть выгружены из памяти оператором End. Обычно в приложениях Windows выход выполняется при выборе команды Выход из меню Файл или при закрытии главного окна программы (событие UnLoad).

Каждая загруженная форма поглощает часть системных ресурсов, поэтому рекомендуется выгружать использованные формы по ходу выполнения программы оператором UnLoad.

UnLoad Form2  'Выгрузить форму 2

В одном проекте не может быть двух форм с одинаковыми именами. Это может произойти, если Вы вставляете форму из какого-либо проекта, а у нее то же имя (свойства Name) равно Form1, что и в главной форме.

2.1 Программа-шаблон SDI-приложения для курсовой работы

Представленная ниже программа позволяет создавать, просматривать и редактирует текстовые файлы формата rtf, имеет интерфейс в стиле Windows. В программный интерфейс входит строка меню, панель инструментов ToolBar1, текстовое поле RichTextBox1, строка состояния StatusBar1, CommonDialog1, список изображений ImageList1.

Для объекта ImageList1 с помощью свойства Custom через закладку Images загружаются картинки по маршруту C:\Install\Visual Basic 6.0\COMMON\GRAPHICS\ BITMAPS\TLBR_W95, в том порядке, как они будут расположены на панели инструментов.

Для объекта ToolBar1 (панель инструментов) также открываем диалог Custom. На вкладке General устанавливаем связь свойства ImageList с объектом ImageList1, который содержит картинки для кнопок. На вкладке Buttons вставляем кнопки и задаем их свойства. Для этого:

  •  нажимаем Insert Button (вставить кнопку), при этом автоматически определяется свойство Index (номер кнопки);
  •  вводим порядковый номер в свойство Image, равное свойству Index.

Кнопки панелей инструментов будут дублировать команды меню. Поэтому, чтобы не повторять код в процедурах обработки, нужно создать общие процедуры, например, mnuFileOpen и mnuFileSave.

На панели инструментов кнопки Вырезать и Копировать доступны, только если имеется выделенный текст. Поэтому в режиме проектирования (на вкладке Buttons окна Property Pages) для них снимается флажок Enabled, а в процедуре RichTextBox1_SelChange() - устанавливается.

Меню имеет следующий вид (в скобках указаны процедуры обработки событий).

Файл       (mnuFile)

Создать     (mnuFileNew)

Открыть     (mnuFileOpen)

Сохранить     (mnuFileSave)

Закрыть     (mnuFileClose)

-------------     (любая последовательность символов)

Выход     (mnuExit)

Правка      (mnuEdit)

Вырезать     (mnuCut)

Копировать    (mnuCopy)

Вставить     (mnuPaste)

------------     (любая последовательность символов)

Выделить все    (mnuSelAll)

Вид       (mnuView)

▼Панель инструментов  (mnuViewTb)

▼Строка состояния   (mnuViewTb)

Формат      (mnuFormat)

Шрифт     (mnuFont)

Цвет      (mnuColor)

 Символов    (mnuColorChar)

 Фона     (mnuColorFon)

Дифф. уравнение    (mnuDiff)

Численное решение   (mnuDiff_c)

График     (mnuDiff_g)

Блок-схема    (mnuDiff_b)

Выч. интеграла     (mnuInt)

Численное решение   (mnuInt_c)

График     (mnuInt_g)

Блок-схема    (mnuInt_b)

  •  Код программы:

Private Sub Form_Load()

Toolbar1.DragMode = 0

' Чтобы можно использовать технологию Drag&drop

RichTextBox1.OLEDragMode = rtfOLEDragAutomatic

RichTextBox1.OLEDropMode = rtfOLEDropAutomatic

With CommonDialog1

.CancelError = True

.FontName = "Times New Roman"

.FontSize = 12

.FontBold = True

.FontItalic = True

End With

Form1.Hide

Dialog.Show 1, Form1

End Sub

Private Sub Form_Resize()

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

RichTextBox1.Height = Form1.Height - StatusBar1.Height - 1200

RichTextBox1.Width = Form1.Width - 100

End Sub

Private Sub mnuDiff_c_Click()

Load Form2

Form2.Show 1, Form1

End Sub

Private Sub mnuFileNew_Click()

RichTextBox1.Visible = True

RichTextBox1.TextRTF = ""

End Sub

Private Sub mnuFileOpen_Click()

On Error GoTo 100

With CommonDialog1

.Filter = "RTF-файлы (*.rtf)|*.rtf|Текстовые файлы (*.txt)|*.txt|Все файла (*.*)|*.*|"

.FileName = "*.rtf"

.Flags = cdlOFNHideReadOnly     'Or cdlOFNAllowMultiselect

.ShowOpen      'Открыть диалог Open и ввести имя файла

End With

RichTextBox1.Visible = True

RichTextBox1.LoadFile CommonDialog1.FileName, rtfRTF

mnuEdit = True

mnuView = True

mnuFormat = True

Exit Sub

100:

MsgBox "Ошибка" & Str$(Err.Number) & " при чтении." & _

vbCrLf & Err.Description

End Sub

Private Sub mnuFileClose_Click()

RichTextBox1.Visible = False

mnuEdit = False

mnuView = False

mnuFormat = False

End Sub

Private Sub mnuExit_Click()

End

End Sub

Private Sub mnuFileSave_Click()

fn = FreeFile

On Error GoTo 100

CommonDialog1.ShowSave      'Открыть диалог Save и ввести имя файла

RichTextBox1.SaveFile CommonDialog1.FileName, rtfRTF

Exit Sub

100:

MsgBox "Ошибка" & Str$(Err.Number) & " при записи." & _

vbCrLf & Err.Description

End Sub

Private Sub mnuCopy_Click()

Clipboard.SetText RichTextBox1.SelText

End Sub

Private Sub mnuCut_Click()

Clipboard.SetText RichTextBox1.SelText

RichTextBox1.SelText = ""

End Sub

Private Sub mnuPaste_Click()

RichTextBox1.SelText = Clipboard.GetText

End Sub

Private Sub mnuSelAll_Click()

RichTextBox1.SelStart = 0

RichTextBox1.SelLength = Len(RichTextBox1.TextRTF)

End Sub

Private Sub mnuFont_Click()

On Error GoTo 100

With CommonDialog1

.Flags = cdlCFScreenFonts Or cdlCFEffects 'Or cdlCFNoStyleSel

.ShowFont

End With

With RichTextBox1

.SelFontName = CommonDialog1.FontName

.SelBold = CommonDialog1.FontBold

.SelItalic = CommonDialog1.FontItalic

.SelFontSize = CommonDialog1.FontSize

.SelStrikeThru = CommonDialog1.FontStrikethru

.SelUnderline = CommonDialog1.FontUnderline

.SelColor = CommonDialog1.Color

End With

Exit Sub

100:

MsgBox "Ошибка" & Str$(Err.Number) & " при выборе шрифта." & _

vbCrLf & Err.Description

End Sub

Private Sub mnuColorFon_Click()

CommonDialog1.ShowColor

RichTextBox1.BackColor = CommonDialog1.Color

End Sub

Private Sub mnuColorChar_Click()

CommonDialog1.Flags = cdlCCPreventFullOpen

CommonDialog1.ShowColor

RichTextBox1.SelColor = CommonDialog1.Color

End Sub

Private Sub mnuTitul_Click()

Dialog.Show 1, Form1

End Sub

Private Sub mnuViewStat_Click()

StatusBar1.Visible = Not StatusBar1.Visible

mnuViewStat.Checked = Not mnuViewStat.Checked

End Sub

Private Sub mnuViewTb_Click()

Toolbar1.Visible = Not Toolbar1.Visible

mnuViewTb.Checked = Not mnuViewTb.Checked

End Sub

Private Sub RichTextBox1_SelChange()

If RichTextBox1.SelLength > 1 Then

Toolbar1.Buttons(4).Enabled = True

Toolbar1.Buttons(5).Enabled = True

Else

Toolbar1.Buttons(4).Enabled = False

Toolbar1.Buttons(5).Enabled = False

End If

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.Index

Case 1

mnuFileNew_Click

Case 2

mnuFileOpen_Click

Case 3

mnuFileSave_Click

Case 4

mnuCut_Click

Case 5

mnuCopy_Click

Case 6

mnuPaste_Click

End Select

End Sub

Private Sub Toolbar1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

Dim ms(5) As String, n As Single

ms(0) = "Создать новый файл"

ms(1) = "Открыть существующий файл"

ms(2) = "Сохранить файл в окне"

ms(3) = "Вырезать в БО выделенный фрагмент"

ms(4) = "Копировать в БО выделенный фрагмент"

ms(5) = "Вставить из БО выделенный фрагмент"

n = x \ Toolbar1.ButtonWidth

If n < Toolbar1.Buttons.Count Then

StatusBar1.ToolTipText = ms(n)

StatusBar1.SimpleText = ms(n)

End If

End Sub

‘___________________ Программный код Form2__________________________

Dim x As Double, y As Double, z As Double, x0 As Double, y0 As Double, z0 As Double

Dim a As Double, b As Double, n As Double, h As Double, k1 As Double, k2 As Double

Dim i1 As Double, i2 As Double, i3 As Double, i4 As Double, k4 As Double, k3 As Double

Private Function f(x As Double, y As Double, z As Double) As Double

f = z

End Function

Private Function g(x As Double, y As Double, z As Double) As Double

g = -z / x

End Function

Private Sub Form_Load()

<Здесь должно следовать решение дифференциального уравнения методом Рунге-Кутта>

End Sub

Private Sub Form_Unload(Cancel As Integer)

Unload Form2

End Sub

‘__________________ Программный код Dialog_______________

Private Sub OKButton_Click()

Me.Hide

Form1.Show

Form1.Caption = Label5.Caption

End Sub

Список литературы

  1.  Литвиненко Т.В. Visual Basic. Учебное пособие для высших учебных заведений. М.: 2001 г.
  2.  Волченков Н.Г. Программирование на Visual Basic 6. Учебное пособие. Кн.2. М.: 2002 г.
  3.  Карпов Б. Visual Basic 6. Специальный справочник. С.-П. 2000 г.


Составители
: ЛЕБЕДЕВ Валерий Александрович,

ОСИПОВА Галина Витальевна,

КУЗЬМИНА Елена Алексеевна

ПРАКТИКУМ  ПРОГРАММИРОВАНИЯ
В  СИСТЕМЕ
VISUAL BASIC

(Часть 2)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к  выполнению  курсовых  работ  по  дисциплине

"Информатика"

Редактор Г.Р. Юнусова

ЛР № 020258 от 08.01.98

Подписано в печать 10.09.2001. Формат 60х84 1/16. Бумага офсетная.

Печать плоская. Гарнитура Times New Roman. Усл. печ.л. 4,2.

Усл. кр.- отт. 4,2. Уч.-изд.л. 4,1. Тираж 150 экз. Заказ  

Уфимский государственный авиационный технический университет

Редакционно-издательский комплекс УГАТУ Республики Башкортостан

450000, Уфа-центр, К.Маркса,12

ПРАКТИКУМ ПРОГРАММИРОВАНИЯ
В  СИСТЕМЕ
VISUAL BASIC

(Часть 2)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к  выполнению  курсовых  работ  по  дисциплине

"Информатика"

Разрешается в печать:

Уфа 2004


 

А также другие работы, которые могут Вас заинтересовать

16312. Определение деформации при косом изгибе 5.06 MB
  ОПРЕДЕЛЕНИЕ ПРОГИБОВ ПРИ КОСОМ ИЗГИБЕ Цель работы Ознакомление с косым изгибом консольного бруса и сравнение опытных значений прогиба с теоретическим. Содержание работы Если плоскость действия изгибающего момента возникающего в поперечном сечении бруса не сов...
16313. Определение модуля сдвига при кручении 97 KB
  ОПРЕДЕЛЕНИЕ МОДУЛЯ СДВИГА ПРИ КРУЧЕНИИ Цель работы Экспериментальная проверка закона Гука при сдвиге и определение модуля сдвига материала вала.
16314. Определение прогибов балки на двух опрах 95 KB
  ОПРЕДЕЛЕНИЕ ПРОГИБОВ БАЛКИ НА ДВУХ ОПОРАХ Цель работы Приобретение практических навыков по измерению прогибов балки. Содержание работы. Балка – это стержень нагруженный силами действующими в направлении перпендикулярном его оси. В инженерной практике часто воз
16315. ИЗУЧЕНИЕ ЗАКОНОВ ГЕОМЕТРИЧЕСКОЙ ОПТИКИ 321.5 KB
  ИЗУЧЕНИЕ ЗАКОНОВ ГЕОМЕТРИЧЕСКОЙ ОПТИКИ Теоретические основы эксперимента Геометрическая лучевая оптика Согласно электромагнитной теории диапазон видимого света представляет собой электромагнитные волны определенной длины : от 40105 см до 7...
16316. ОПРЕДЕЛЕНИЕ НЕИЗВЕСТНОЙ КОНЦЕНТРАЦИИ ОКРАШЕННОГО РАСТВОРА ПРИ ПОМОЩИ КОЛОРИМЕТРА КФО 290.5 KB
  Лабораторная работа ОПРЕДЕЛЕНИЕ НЕИЗВЕСТНОЙ КОНЦЕНТРАЦИИ ОКРАШЕННОГО РАСТВОРА ПРИ ПОМОЩИ КОЛОРИМЕТРА КФО Теоретические основы эксперимента Физика взаимодействия света с веществом Взаимодействие света и среды в общих чертах можно представить следующим
16317. ИССЛЕДОВАНИЕ СОСТОЯНИЯ ПОЛЯРИЗАЦИИ ЛАЗЕРНОГО ИЗЛУЧЕНИЯ 66.5 KB
  Лабораторная работа ИССЛЕДОВАНИЕ СОСТОЯНИЯ ПОЛЯРИЗАЦИИ ЛАЗЕРНОГО ИЗЛУЧЕНИЯ Практическая часть Упражнение №1. Изучение состояния поляризации лазерного излучения Оптическая схема лаб
16318. ИЗУЧЕНИЕ ЗАКОНОВ ФОТОМЕТРИИ 194 KB
  ИЗУЧЕНИЕ ЗАКОНОВ ФОТОМЕТРИИ Теоретическая часть Разнообразные действия света обусловлены наличием определенной энергии излучения световой энергии. Непосредственное восприятие света обусловлено действием световой энергии на любой приемник способный реагиро...
16319. Дифракция Фраунгофера 231.5 KB
  Лабораторная работа № 7 Дифракция Фраунгофера Теоретические основы эксперимента Многие явления наблюдаемые в обыденной жизни говорят о том что свет распространяется прямолинейно. Солнечный свет луч прожектора луч лазера ассоциируются в нашем сознании с п...
16320. Дифракция Френеля 292 KB
  Лабораторная работа № 8 Дифракция Френеля Теоретические основы эксперимента Многие явления наблюдаемые в обыденной жизни говорят о том что свет распространяется прямолинейно. Солнечный свет луч прожектора луч лазера ассоциируются в нашем сознании с прямы...