Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ зао4.doc
Скачиваний:
14
Добавлен:
26.03.2015
Размер:
2.73 Mб
Скачать

4.5 Содержание заданий

1. Создать командную кнопку с заголовком «Пример расчета». Набрать для этой командной кнопки приведенный выше текст линейной программы и выполнить программу щелчком мыши по кнопке.

2. Создать командную кнопку c заголовком «Расчет по формулам» и записать для нее программу по условию, приведенному в табл. 4.2.

Выполнить программу и проанализировать результаты.

Таблица 4.2

Формула для вычислений

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

5 Циклы в инженерных расчетах

Если в программе необходимо повторить один оператор или последовательность операторов несколько раз, используются операторы циклов. Операторы циклов заключают такой оператор или группу операторов между ключевыми словами начала и конца цикла и определяют условия повтора выполнения. Параметром цикла называется переменная, которая используется при проверке условия цикла и принудительно изменяется на каждой итерации. Если параметр цикла целочисленный, он называется счетчиком цикла. Имеется большой выбор средств организации циклов, которые можно разделить на две группы: циклы For ... Next и циклы Do ... Loop

5.1 Циклы For ... Next

Циклы ForNext используются, когда заранее определено, сколько раз должны выполняться операторы цика.

For <счетчик> = <нач. значение> То <кон. значение> Step <приращение>

<операторы>

Next

В роли счетчика количества повторений в цикле может выступать любая переменная числового типа. Приращение может быть как положительным, так и отрицательным числом. Если приращение равно единице, то конструкция Step может быть опущена. Если приращение отрицательно, то начальное значение, естественно, должно быть больше конечного.

Например, в следующей программе счетчиком является переменная целого типа, увеличивающаяся на каждом шаге цикла на 1:

For i = 1 To 10

C=i^2

MsgBox C

Next

В результате выполнения программы будут выведены в окно сообщений квадраты целых чисел от 1 до 10.

В другом примере значения функции Sin(x) полученные на интервале от 0 до 1 с приращением аргумента 0,1, будут выведены в ячейки первого столбца рабочего листа Лист1 начиная с первой строки:

i=1 ‘ номер строки, в ячейки которой осуществляется вывод

For x = 0 To 1 Step 0.1

y=Sin(x)

Worksheets(“Лист1”).Cells(i, 1)=y

i=i+1 ‘номер строки увеличивается на 1

Next

5.2 Циклы Do...Loop

Циклы Do...Loop используются в тех случаях, когда заранее неизвестно, сколько раз должна выполняться расположенная в теле цикла группа операторов. Такой цикл продолжает работу до тех пор, пока не будет выполнено определенное условие. Существуют 4 типа операторов цикла Do...Loop:

1) Цикл с ключевым словом While продолжает свою работу, пока условие остается истинным, т.е. пока условие выполняется, и задается в двух вариантах, представленных ниже.

Do While <условие>

<операторы >

Loop

Условие проверяется до того, как выполняется группа операторов, образующих тело цикла.

Do

<операторы>

Loop While <условие>

Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз.

2) Цикл с ключевым словом Until продолжает свою работу, пока условие является ложным, т.е. условие не выполняется, и задается в двух вариантах, представленных ниже.

Do Until <условие>

<операторы>

Loop

Условие проверяется до того, как выполняется группа операторов, образующих тело цикла.

Do

<операторы>

Loop Until <условие>

Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз.

Если условие постоянно будет ложно, то программа зациклится. Чтобы этого не произошло, значения переменных, входящих в условие, должны изменяться в теле цикла. Если произошло зацикливание (зависание машины), надо прервать программу нажатием Ctrl + Break и исправить ошибку.

Пример 1. На складе ежедневно происходит обновление товара. Все данные о видах товара заносятся в таблицу рис. 5.1. Необходимо определить, какое количество видов товара находится на складе.

Для решения этой задачи необходимо подсчитать, количество записей в таблице. Для этого создадим командную кнопку и напишем для нее следующую процедуру:

Private Sub CommandButton1_Click()

i = 3строка с которой начинаются записи в таблице

Do Until Worksheets("Склад").Cells(i, 3) = "" проверяется условие – не являеся ли строка пустой

i = i + 1подсчитывается количество заполненных строк

Loop

Worksheets("Склад").Cells(i + 4, 1) = "Общее количество видов"

Worksheets("Склад").Cells(i + 4, 3) = i

End Sub

Рис. 5.1 − Образец оформления рабочего листа для примера 1

Цикл будет работать до тех пор, пока не встретится пустая строка. В переменной i после окончания цикла будет записан номер строки, следующей за последней заполненной строкой таблицы. Результат выведется в первый и третий столбец на 4 строки ниже последней строки таблицы.

Пример 2. Пусть необходимо вычислить значения на интервалеx=3 (0,1) 4 (х меняется от 3 до 4 с шагом 0,1).

Создадим командную кнопку и напишем для нее следующую процедуру:

Private Sub CommandButton1_Click()

x=3 : n=1

Do While x<=4

t=Sin(x)^2+Exp(3-x)

Worksheets(“Лист1”).Cells (1, n) =t

x=x+0.1 : n=n+1

Loop

End Sub

Перед началом цикла переменной x присваивается начальное значение 3. Затем в начале цикла проверяется условие x<=4, где 4 − конечное значение x. Если это условие верно, то выполняются все операторы, входящие в тело цикла и вычисляется значение x, увеличенное на величину шага. Как только условие x<=4 станет неверным, циклический процесс и выполнение программы завершается.

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

Пример 3. Пусть нужно вычислить значение q по формуле: для z={1; 4; 7,5; 9; 15} и a=3, а также для значений z=0 (0,5) 5. Ввод исходных данных должен осуществляться из ячеек рабочего листа. Вывод результатов надо организовать в ячейки на рабочем листе Excel.

Составим две процедуры. Первую с использованием оператора цикла For ... Next и вторую с использованием оператора цикла Do...Loop. Для решения задачи оформим рабочий лист согласно образцу:

Рис. 5.2 − Образец оформления рабочего листа для примера 3

Для кнопки «Расчет For ... Next» составим следующую процедуру:

Private Sub CommandButton1_Click()

a = 3

j = 18 ' j − этономер строки, в которую введено первое значение z

For i = 1 To 5 счетчик количества значений переменной z

z = Worksheets("Лист4").Cells(j, 2)

q = Sqr(z ^ 2 + 8 * a) * Log(z + 0.5)

Worksheets("Лист4").Cells(j, 3) = q

j = j + 1

Next i

End Sub

Для кнопки «Расчет Do...Loop» процедура может иметь вид:

Private Sub CommandButton2_Click()

a = 3 : j = 18 : z = 1

Do While z <= 5

q = Sqr(z ^ 2 + 8 * a) * Log(z + 0.5)

Worksheets("Лист4").Cells(j, 8) = q

z = z + 0.5

j = j + 1

Loop

End Sub

Для проверки результатов вычислений с помощью формул Excel в ячейку D15 можно поместить формулу:

=КОРЕНЬ(B15^2+8*$J$7)*LN(B15+0,5).

Её надо скопировать в ячейки D16:D19 и в ячейки I15:I23. Результат расчета с помощью VBA и Excel должен совпасть.