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

УПП1КУРС / 1 семестр / инфа / лекции / Лекция4_VBA(линейный алгоритм)

.doc
Скачиваний:
411
Добавлен:
18.09.2019
Размер:
282.11 Кб
Скачать

Программирование на Visual Basic for Applications

Лекция 4

Линейный алгоритм

Линейным называется такой алгоритм, в котором действия выполняются в естественном порядке, т. е. в том порядке как записаны, и только один раз.

Пример 1. Составить программу решения квадратного уравнения вида ax2 + bx + c = 0. Исходными данными для нахождения корней являются коэффициенты a, b и c. Для вычисления корней вначале можно вычислить дискриминант по формуле d=b2-4·a·c. d в этом случае – промежуточный результат. Наконец, можно вычислить корни по формуле .

Option Explicit

Sub кв_ур()

Dim a, b, c, d, x1, x2

a = InputBox("Введите коэффициент а", "Решение квадратного уравнения")

b = InputBox("Введите коэффициент b", "Решение квадратного уравнения")

c = InputBox("Введите коэффициент c", "Решение квадратного уравнения")

d = b ^ 2 - 4 * a * c 'дискриминант

x1 = (-b + Sqr(d)) / (2 * a)

x2 = (-b - Sqr(d)) / (2 * a)

MsgBox ("x1=" & x1 & Chr(13) & "x2=" & x2)

End Sub

Пример 2. Ввести целое положительное число. Получить сумму цифр этого числа.

Текст макроса:

Sub N8()

'Линейный алгоритм

'Получение суммы цифр двузначного положительного числа

Dim N As String, N1 As Byte, N2 As Byte

N = InputBox("Введите целое положительное двузначное число")

'N1 = Val(N) \ 10 + Val(N) Mod 10

N1 = N \ 10 + N Mod 10

N2 = Val(Mid(N, 1, 1)) + Val(Mid(N, 2, 1))

MsgBox ("N1=" & N1 & Chr(13) & "N2=" & N2)

End Sub

Пример 3

Этапы решения задачи.

  1. Классификация данных:

  1. Исходные данные – x, b, d, с

  2. Промежуточные результаты – a

  3. Окончательные результаты - Y

  1. Блок-схема

  1. Текст макроса

Option Explicit

Sub пример_3()

Dim c As Integer, x As Single, b As Single, d As Single

Dim a As Single, y As Single

c = 2

x = Val(InputBox("Введите x="))

b = Val(InputBox("Введите b="))

d = Val(InputBox("Введите d="))

a = Sqr(x + 9)

y = (Log(100) / Log(10) + Sin(x)) / (a * b - c * d)

MsgBox ("a=" & a & Chr(13) & "y=" & y)

End Sub

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

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

Sub пример_3b()

Dim c As Integer, x As Single, b As Single, d As Single

Dim a As Single, y As Single

c = 2

'x = Val(InputBox("Введите x="))

'b = Val(InputBox("Введите b="))

'd = Val(InputBox("Введите d="))

x = Cells(3, 1)

b = Cells(3, 2)

d = Cells(3, 3)

a = Sqr(x + 9)

y = (Log(100) / Log(10) + Sin(x)) / (a * b - c * d)

' MsgBox ("a=" & a & Chr(13) & "y=" & y)

Cells(3, 5) = a

Cells(3, 6) = y

End Sub

Полученные результаты можно проверить, используя возможность Excel выполнять расчеты по формулам. Для этого необходимо в ячейки рабочего листа записать исходные данные, привести расчетные формулы, в макросе предусмотреть чтение данных с этого листа и запись полученных результатов также в ячейки листа Excel. Полученные двумя разными способами результаты сравнить. Их совпадение – доказательство правильности решения задачи.

Вид с формулами:

6

Соседние файлы в папке лекции