Тема 5. циклическая структура алгоритма. табулирование. построение графиков и сплайнов функций.
Циклом называется алгоритм, который обеспечивает повторение каких либо действий. В Visual Basic существует три разновидности операторов цикла – цикл со счетчиком (или параметром), условный оператор цикла и перечислимый оператор цикла. Рассмотри цикл со счетчиком, реализуется при помощи оператора For .
Циклы со счетчиком называются также циклами For/Next, поскольку их операторы должны быть размещены между ключевыми словами For и Next. Этот цикл применяется тогда, когда число повторений цикла известно до начала его работы. При создании такого цикла надо определить его переменную, которая служит счетчиком числа повторений цикла, и задать ее начальное и конечное значение. В качестве дополнительного параметра можно указать величину изменения счетчика, который добавляется к нему или вычитается из него после завершения каждого шага цикла. Эта величина указывается в операторе For после ключевого словаStep, и она не является обязательным параметром. Если начальное значение счетчика больше конечного значения, а значение параметра записанного после слова Step, положительно, то цикл For не выполняется ни разу. Счетчик (или параметр) цикла может быть любого числового типа, и его можно использовать в выражениях программы, однако его значение при этом не должно изменяться пользователем, поскольку это нарушает правильное функционирование цикла.
Структура цикла For/Next имеет вид:
For i |
= |
to n |
Задание начальных значений |
Операторы цикла |
В общем виде оператор записывается следующим образом:
For счетчик=начальное значениеTOконечное значение[Stepшаг изменения]
Операторы цикла
Next i
Счетчик (или параметр) цикла предназначен для обеспечения повторений операторов цикла. Он принимает начальное значение, которое затем увеличивается на величину шага, и работает до тех пор, пока не будет достигнуто его окончательное значение. Шаг изменения параметра цикла должен быть указан после слова Step. Если шаг равен 1, то его можно не писать. После ключевого слова Next обычно указывается имя параметра цикла (Next i), например:
For I =1 to n
……..
Next i
Если обозначить начальное значение a, конечное значение bи шаг изменения h,тогда количество повторений цикла, необходимое для вычисления всех значений функции
1. Задача
Дан массив действительных чисел A(n). Найти среднее арифметическое и среднее геометрическое его элементов.
Sub sra()
Dim i As Integer
Dim k As Integer
Dim n As Integer
Dim Sr As Single
Dim Sg As Single
Dim p As Single
Dim S As Single
Dim a() As Single
n = Val(InputBox("n="))
ReDim a(1 To n)
Debug.Print "Ìàññèâ:"
For i = 1 To n Step 1
a(i) = Val(InputBox("Ââåäèòå î÷åðåäíîé ýëåìåíò ìàññèâà"))
Debug.Print a(i)
Next i
Debug.Print
S = 0
k = 0
p = 1
For i = 1 To n Step 1
S = S + a(i)
k = k + 1
p = p * a(i)
Next i
For i = 1 To n Step 1
Sr = S / k
Sg = Sqr(p ^ (1 / k))
Next i
Debug.Print "Sr="; Sr
Debug.Print "Sg="; Sg
End Sub
1. Дан массив целых чисел A(n). Найти сумму и количество тех элементов, которые делятся на 3, не делятся на 5.
Sub qwe()
Dim i As Integer
Dim k As Integer
Dim n As Integer
Dim a() As Single
n = Val(InputBox("n="))
ReDim a(1 To n)
Debug.Print "Массив:"
For i = 1 To n Step 1
a(i) = Val(InputBox("введите элемент"))
Debug.Print a(i)
Next i
Debug.Print
k =0
For i = 1 To n Step 1
If a(i) > 5 Then
k = k + 1
End If
Next i
Debug.Print "k="; k
End Sub
Вычисление суммы
Для построения алгоритма решения таких задач используется цикл с параметром, т. к. число шагов цикла известно.
Суммирование
При вычислении суммы используется прием накопления.
,
,
и т. д.
где – значение суммы на каждом шаге вычисления,
– начальное значение суммы
– очередное слагаемое.
Вычисление суммы сводится к ее накоплению в виде значения переменной в цикле, в котором вычисляются соответствующие слагаемые. При этом вновь вычисленное слагаемое прибавляется к сумме предыдущих слагаемых, т. е. в цикле последовательно вычисляются все промежуточные суммы. После первого выполнения цикла первая промежуточная сумма должна быть равна значению первого слагаемого. Следовательно, начальное значение должно быть равно нулю.
Правило суммирования: начальное значение суммы = 0 в теле циклической конструкции выполняется команда S = S + <слагаемое>.
Формула для накопления суммы S = S + a,где – очередное слагаемое; – промежуточная сумма.
Задача 1. Составить алгоритм вычисления общей суммы выплаченной премии всем сотрудникам фирмы. Входные данные: (количество сотрудников фирмы); (размер премии каждого сотрудника); (параметр). Выходные данные: (общая сумма выплат).
Вычисление произведения
P=a1*a2*a3*a4*…..
При вычислении произведения используется тот же прием накопления.
P1=P*a1
P2=P*a1*a2=P1*a2
P3=a1*a2*a3=P2*a3
и т. д.
P – начальное значение произведение
Pi – значение произведения на каждом шаге вычисления
аi – очередной множитель
Вычисление произведения сводится к его накоплению в цикле в виде значения переменной, при этом в цикле вычисляются последовательно все промежуточные произведения.
После первого выполнения цикла первая промежуточная величина должна быть равна значению первого множителя. Следовательно, начальное значение P, которое задается перед циклом, должно быть равно единице.
Правило умножения:
начальное значение произведения Р=1 в теле циклической конструкции выполняется команда Р = Р * <множитель>