Смекни!
smekni.com

Основы программирования в среде Visual Basic for Application VBA (стр. 14 из 21)

5.3 Между текстом

Private Sub CommandButton1_Click()

End Sub

Дописываем текст

Dim y As Double

Dim x As Double

Const A = 2.5

Const B = 3

x = InputBox("Введите x", "Окно ввода данных")

y = SQR(A * x ^ 2 - B)

Res = MsgBox("y= " & y, , "Результат")

6 Сохраняем программу.

7 Запускаем программу с помощью меню Run (либо клавишей F5, либо соответствующей кнопкой).

8 Если есть ошибки, исправляем (т. е. отлаживаем программу).

9 В отобразившемся окне

нажимаем кнопку Расчет.

10 В InputBox


вводим значение x, например 2.3, и нажимаем кнопку «ОК».

11 В окне MsgBox отображается результат вычисления y.

12 Завершить выполнение программы можно, нажав соответствующую кнопку или в меню Run выбрать пункт Reset.

11.2 Разветвляющийся алгоритм

Задание

Ввести с клавиатуры число, проверить: если оно принадлежит интервалу (-10; 0), вывести его модуль, в противном случае вывести соответствующее сообщение.

1 Присваиваем новой форме название «Иванов И.И. Гр. Д-1-2005 Задача 2».

2 Помещаем кнопку «Ввод числа» (CommandButton1).

3 Помещаем надпись «Разветвляющийся алгоритм» (Label1).

4 Записываем подпрограмму ввода чисел и проверки на принадлежность заданному интервалу:

Private Sub CommandButton1_Click()

Dim x As Double

x = InputBox("Введите x", "Окно ввода данных")

If x > -10 And x < 0 Then

Res = MsgBox("x принадлежит интервалу -10,0", , "Результат")

Res = MsgBox("модуль x =" & Abs(x), , "Результат")

Else

Res = MsgBox("x не принадлежит интервалу -10,0", , "Результат")

End If

End Sub

5 Запускаем программу

6 Вводим число, удовлетворяющее условию.

7 Получаем результаты:


8 Вводим число, не принадлежащее интервалу:

11.3 Циклический алгоритм

Задание

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

1 Присваиваем новой форме название «Иванов И.И. Гр. Д-1-2005 Задача 3».

2 Помещаем кнопку «Ввод числа» (CommandButton1).

3 Помещаем надпись «Цикл с предусловием» (Label1).

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

Private Sub CommandButton1_Click()

x = InputBox("Введите x", "Окно ввода данных")

Do While x >= 0

y =Sqr(x)

Res = MsgBox("y= " & y,, "Результат")

x = InputBox("Введите x","Окно ввода данных")

Loop

MsgBox ("Введено отрицательное число")

End Sub

5 Запускаем программу:

6 Вводим число

7 Получаем результат

8 Продолжаем вводить числа:


И т. д., до тех пор, пока не будет введено отрицательное число:

11.4 Одномерный массив

Задание

Вычислить сумму элементов одномерного целочисленного массива, заданного случайным образом.

1 Даем новой форме название «Иванов И.И. Гр. Д-1-2005 Задача 4».

2 Помещаем надпись «Одномерный массив» (Label1).

3 Помещаем кнопки «Элементы массива» (CommandButton1) «Сумма элементов» (CommandButton2).

4 Помещаем Label2.

5 Записываем программу вычисления суммы элементов массива:

Const n = 12

Dim V(1 To n) As Integer

Dim S As Integer

Private Sub CommandButton1_Click()

Label2.Caption = "Исходный массив "

Randomize

For i = 1 To n

V(i) = Rnd * 10

Label2.Caption = Label2.Caption + Str(V(i))

Next

End Sub

Private Sub CommandButton2_Click()

S = 0

For i = 1 To n

S = S + V(i)

Next

Rez = MsgBox("Сумма элементов массива=" & S,,"Окно результата")

End Sub

6 Запускаем программу. Нажимаем кнопку Элементы массива. В окне формы выводятся значения элементов массива V:

7 Нажимаем кнопку Сумма элементов.

8 В окне MsgBox выводится результат.


11.5 Вложенные циклы. Двумерные массивы

Задание

Задана квадратная матрица 10×10. Подсчитать среднее арифметическое элементов, расположенных на главной диагонали.

1 На новую форму Иванов И.И. Гр. Д-1-2005 Задача 5 помещаем элементы:

1.1 Label1 «Вложенные циклы. Двумерные массивы.

1.2 CommandButton1 «Задать матрицу».

1.3 Label2 «».

1.4 ListBox1 – для размещения элементов матрицы.

1.5 CommandButton2 «Среднее арифметическое».

2 Записываем код программы:

Const N = 10

Dim M(1 To N, 1 To N) As Integer

Private Sub CommandButton1_Click()

Label2.Caption = "Исходный массив "

Randomize

For i = 1 To N

L = ""

For j = 1 To N

M(i, j) = Rnd * 9

L = L + Str(M(i, j))

Next

' Добавить строку матрицы в элемент ListBox1

ListBox1.AddItem (L)

Next

End Sub

Private Sub CommandButton2_Click()

S = 0

For i = 1 To N

S = S + M(i, i)

Next

Sr = S / N

Res = MsgBox("Среднее значение диагональных элементов =" & Sr, , "Результат")

End Sub

3 Запускаем программу на выполнение:

11.6 Файлы произвольного доступа

Задание

Задать файл произвольного доступа, каждая запись которого содержит порядковый номер студента и его фамилию. Организовать возможность добавления информации в файл, а также вывода его содержимого на экран.

1 Создаем форму:

2 Записываем код программы:

Private Type CodeRec

Name As String * 25

Code As Integer

End Type

Const Fil As String = "MyFil"

Dim Trec As CodeRec

Dim FilNum As Integer

'Создание файла

Private Sub CommandButton1_Click()

FilNum = FreeFile()

Open Fil For Random Access Write As FilNum Len = Len(Trec)

For i = 1 To 3

Trec.Name = InputBox("Введите фамилию")

Trec.Code = i

Put FilNum, , Trec

Next

Close FilNum

End Sub

'Добавление в файл

Private Sub CommandButton2_Click()

FilNum = FreeFile()

Dim nbyte As Long

Open Fil For Random Access Read Write As FilNum Len = Len(Trec)

nbyte = LOF(FilNum)

n = CInt(nbyte / Len(Trec))

Trec.Name = InputBox("Введите фамилию")

Trec.Code = n + 1

Put FilNum, n + 1, Trec

Close FilNum

End Sub

'Чтение файла и вывод на экран

Private Sub CommandButton3_Click()

FilNum = FreeFile()

Open Fil For Random Access Read As FilNum Len = Len(Trec)

Do While Not EOF(FilNum)

Get FilNum, , Trec

S = Str(Trec.Code) & " " & Trec.Name

ListBox1.AddItem (S)

Loop

End Sub

'Создание папки для записи в нее файла

Private Sub CommandButton4_Click()

ChDrive "C"

On Error Resume Next

MkDir "Lab"

ChDir "Lab"

End Sub

3 Запускаем программу на выполнение

3.1 Создаем папку (щелчком на соответствующей кнопке).

3.2 Создаем файл. Вводим фамилии (в цикле), программа осуществляет вывод в файл с заданным именем каждой записи.

4 Дополняем файл одной записью

5 Выводим содержимое файла (с помощью компонента ListBox):


12. Практические задания

12.1 Линейный алгоритм: вычисление арифметического выражения

Задание. Вычислить значение функции при А, В и С – константах (задать значения самостоятельно) и произвольном x (ввести с клавиатуры).

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.