Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сидорова-004.С34.doc
Скачиваний:
4
Добавлен:
06.01.2020
Размер:
3.08 Mб
Скачать

8.3. Вычисление сумм и произведений

На практике часто приходится решать задачи по вычислению математических выражений вида , т. е. накапливать сумму, или – накапливать произведение.

Нахождение суммы заключается в циклическом вычислении промежуточных сумм Si посредством определения очередного слагаемого fi и добавления его к значению суммы предыдущих слагаемых Si-1. Таким образом, накопление суммы можно представить в виде последовательности однотипных вычислений (для наглядности примем n = 1):

(3)

Поскольку в памяти компьютера обычно не требуется сохранять значения всех слагаемых и промежуточных сумм, то их можно представить простыми переменными, т. е. хранить в памяти ЭВМ в одних и тех же ячейках. Тогда общая формула для накопления суммы будет иметь вид:

S = S + fi. (4)

В формуле (4) – и в правой, и в левой частях – указана одна и та же переменная S. Суть формулы заключается в том, что к ранее найденному промежуточному значению суммы S (в правой части формулы) прибавляется очередное слагаемое fi, и полученное текущее значение суммы присваивается этой же переменной S (в левой части). Чтобы формулу (4) можно было использовать и для расчета первого промежуточного значения суммы (равного первому ее слагаемому), следует принять начальное значение суммы S равным нулю.

Пример ЦС1. Вычислить: для произвольного x.

Общая формула накопления суммы для исходного выражения имеет вид: S ix. ГСА решения данной задачи приведена на рис. 30.

Т екст программы:

Sub Пример_ЦС1() 'Накопление суммы

Dim x As Single

Dim S As Single

Dim i As Byte

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

S = 0 'Начальное значение суммы

For i = 1 To 4

S = S + i * x 'Накопление суммы в цикле

Next i

Debug.Print "S = "; S 'Вывод результата

End Sub

Аналогичным образом вычисляется произведение , отличие состоит в том, что общая формула имеет вид , а начальное значение произведения, которое задается перед циклом, должно быть равно единице.

Пример ЦС2. Вычислить: для произвольного x.

По аналогии с примером ЦС1 общая формула накопления произведения имеет вид: P = P ∙ ix. ГСА решения задачи приведена на рис. 31, текст программы имеет вид:

Sub Пример_ЦС2() 'Накопление произведения

Dim x As Single

Dim P As Single

Dim i As Byte

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

P = 1 'Начальное значение произведения

For i = 1 To 4

P = P * i * x 'Накопление произведения в цикле

Next i

Debug.Print "P = "; P 'Вывод результата

End Sub

Таким образом, можно сформулировать общий порядок вычисления суммы или произведения :

– задать перед циклом начальное значение накапливаемой переменной. Если не указано иначе, то в качестве него обычно принимают:

при накоплении суммы: S = 0;

при накоплении произведения: P = 1;

при вычислении количества (счетчик): C = 0;

– организовать цикл (For i = n To k);

– записать в теле цикла закон изменения переменной (накапливаемая переменная обязательно должна быть и в левой, и в правой частях формулы):

при накоплении суммы: S = S + fi ;

при накоплении произведения: P = P * fi ;

при вычислении количества: C = C + 1;

– вывести после цикла итоговое значение накапливаемой переменной.

Пример ЦС3. На вкладе в банке находится 5 тыс. р. Какая сумма будет на вкладе через пять лет, если годовой процент по вкладу составляет 25 %?

Итоговая сумма определяется по формуле:

(5)

где Sg – сумма вклада на конец g-го года;

Dg = 0,25* Sg. – доход по вкладу в g-м году.

Графическая схема алгоритма решения задачи в полной форме приведена на рис. 32. Текст программы аналогичен примеру ЦС1.

П ример ЦС4. Вычислить: при x = 0,5.

Обозначим , тогда

ГСА для вычисления суммы с изображением цикла в полной форме была приведена в примере ЦС1, для вычисления произведения – в примере ЦС2, для данного примера составим ГСА в краткой форме (рис. 33). Текст программы имеет вид:

Sub Пример_ЦС4()

Dim x As Single, i As Byte, k As Byte

Dim S As Single, P As Single, Dim W As Single

x = 0.5

'---- Вычисление суммы ----

S = 0

For i = 1 To 8

S = S + (x – i) ^ 2

Next i

Debug.Print "S="; S

' ---- Вычисление произведения ----

P = 1

For k = 7 To 15

P = P * (k + x ^ 2)

Next k

Debug.Print "P = "; P

'---- Расчет значения W ----

W = 4 * x ^ (1 / 3) + S / (5 * P)

Debug.Print "W = "; W

End Sub

Пример ЦС5. Вычислить:

y = 120 – cos 2x – cos 4x – … – cos 20x

для произвольного x.

Запишем этот пример в виде:

y = 120 – S, где ,

тогда решить задачу можно аналогично примерам ЦС1 и ЦС4. Параметром цикла накопления суммы является переменная i, изменяющаяся с шагом Δi = 2. Текст программы имеет вид:

Sub Пример_ЦС5( )

'Вычисление суммы членов ряда

Dim x As Single, i As Byte

Dim S As Single, y As Single

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

S = 0 'Начальное значение суммы

For i = 2 To 20 Step 2 'Цикл накопления суммы

S = S + Cos(i * x)

Next i

y = 120 – S 'Расчет y

Debug.Print "y = "; y 'Вывод результата

End Sub