Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_po_VBA3_20_06.doc
Скачиваний:
27
Добавлен:
20.11.2019
Размер:
1.79 Mб
Скачать

Лабораторная работа №6 Тема: Разработка программ смешанной структуры в среде vba

Цель работы:

  • Научиться составлять алгоритмы смешанной структуры в виде блок-схемы.

  • Получить навыки составления программ смешанной структуры.

  • Получение дальнейших навыков по отладке и тестированию программ.

Ход работы:

1) Понятие смешанного вычислительного процесса. К смешанным вычислительным процессам может быть отнесен, например, разветвляющийся вычислительный процесс, в одной или нескольких ветвях которого имеют место циклы.

Более того, выбор ветви вычислений может определяться критерием, который сам не определен, а требует предварительного расчета.

Пример 8. Вычислить:

, где T = c - d

Решение: В задаче реализуется разветвляющийся вычислительный процесс, в одной ветви которого имеет место цикл, при этом критерий выбора ветви t сам требует предварительного расчета по формуле

t = c - d.

При решении задачи следует иметь в виду, что в зависимости от параметров c и d, а, следовательно, критерия t может иметь место два случая.

Первый случай, когда c < d или c=d и, следовательно, t<0 или t=0. При этом реализуется линейный вычислительный процесс Х=А*В.

Второй случай, когда t>0 при этом реализуется циклический процесс накопления суммы X массива чисел Y.

Б лок-схема алгоритма такого вычислительного процесса представлена на рис. 24.

Рис. 24 Блок-схема алгоритма Пример 8

2) Реализовать данную программу в среде vba Microsoft Excel:

Sub Пример8( )

Dim Y( ) As Single

Dim C, D, T, A, B, X As Single

Dim n, i As Integer

C = InputBox("Введите переменную C")

D = InputBox("Введите переменную D")

T = C - D

If T > 0 Then

X = 0

n = InputBox("Введите количество элементов массива Y")

ReDim Y(n) As Single

For i = 1 To n

Y(i) = InputBox("Введите" & i & "элемент массива")

Debug.Print "Y("; i; ")", Y(i)

X = X + Y(i)

Next i

Else

A = InputBox("Введите переменную A")

B = InputBox("Введите переменную B")

Debug.Print "A= "; A, "B= "; B

X = A * B

End If

Debug.Print "X= "; X

End Sub

Выполним задачу вначале для первого случая, когда t<0 и реализуется левая ветвь, т.е. линейный вычислительный процесс:

1. Запустить программу на счёт.

2. В диалоговое окно с подсказкой:

«Введите переменную C»

ввести с клавиатуры число 2.

3. В диалоговое окно с подсказкой:

«Введите переменную D»

ввести с клавиатуры число 3.

4. В диалоговое окно с подсказкой:

«Введите переменную A»

ввести любое число, например, 20.

5. В диалоговое окно с подсказкой:

«Введите переменную B»

ввести любое число, например, 30.

Результаты работы программы будут выведены в окно Immediate:

Рис. 25 Результаты работы программы Пример 8 при T<=0

Выполним задачу для второго случая, когда t>0 и реализуется правая ветвь, т.е. циклический процесс:

1. Снова запустить программу на счёт.

2. В диалоговое окно с подсказкой:

«Введите переменную C»

ввести с клавиатуры число 3.

3. В диалоговое окно с подсказкой:

«Введите переменную D»

ввести с клавиатуры число 2.

4. В диалоговое окно с подсказкой:

«Введите количество элементов массива Y»

ввести любое число, например, 5.

5. В диалоговое окно с подсказкой:

«Введите 1 элемент массива»

набрать любое число, например, 1.

6. На последующие запросы элементов, а их будет еще четыре, ввести любые числа, например, как указано на рис. 26.

После ввода последнего числа результаты работы программы будут выведены в окно Immediate:

Рис. 26 Результаты работы программы Пример 8 при T>0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]