Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


јрифметический цикл с рекуррентной зависимостью




–ешение задач с циклическими вычислительными процессами

÷иклы с параметром. ќператор FOR

¬ычисление конечных сумм и произведений

«адача 1. ¬ычислить сумму . «начени€ величин A, B, m и n ввести с клавиатуры.

јлгоритм решени€ этой задачи очевиден, и нагл€дно описываетс€ с приведенной на рис. 4.1 блок-схемой.

 од программы:

Sub pr1()

Dim A As Double, B As Double, S As Double

Dim n As Integer, m As Integer, i As Integer

A = InputBox(УA=У)

B = InputBox(УB=У)

m = InputBox(Уm=У)

n = InputBox(Уn=У)

For i = m To n

S = S + i ^ 2 / (n + i)

Next i

S = A + B * S

MsgBox(УS= У & S)

EndSub


 

 
 


–ис. 4.1. Ѕлок-схема алгоритма решени€ задачи 1

«адача 2. Ќайти сумму S всех целых чисел, кратных 3 на отрезке [M, N].

Ёта задача похожа на предыдущую. ќтличие состоит в том, что, просматрива€ все числа из интервала [M, N], мы должны проверить, делитс€ ли число i без остатка на 3 прежде, чем его суммировать к S. ƒл€ проверки делени€ используетс€ операци€ mod Ц деление с остатком целых чисел, в результате выполнени€ которой получаем остаток от делени€ в виде целого числа. “аким образом, условие делени€ числа i на 3 без остатка будет иметь вид: i mod 3 = 0.

јлгоритм решени€ этой задачи отличен от предыдущего наличием услови€ в теле арифметического цикла, и описан с помощью приведенной ниже блок-схемы (рис. 4.2).


 

 
 


–ис. 4.2. Ѕлок-схема алгоритма решени€ задачи 2

 од программы:

Sub pr2()

Dim M As Double, N As Double, S As Double

Dim i As Integer

M = InputBox(УM=У)

N = InputBox(УN=У)

For i = M To N

If i Mod 3 = 0 Then S = S + i

Next i

MsgBox(УS= У & S)

End Sub

«адача 3. ƒл€ заданного значени€ N найти .

ƒл€ вычислени€ Y, необходимо сделать следующие преобразование исходной формулы:

(1)

Ѕлок-схема алгоритма представлена на рис. 3.

 
 


–ис. 3. Ѕлок-схема алгоритма решени€ задачи 3

 од программы:

Sub pr3()

Dim Y As Double, i As Integer, N As Integer

N = InputBox(У¬ведите NУ)

Y = 1

For i = 0 To (N Ц 1) \ 2

If N Mod 2 = 1 Then

Y = Y * (2 * i + 1)

Else

Y = Y * 2 * (i + 1)

End If

Next i

If N Mod 2 = 1 Then Y = - Y

MsgBox(УY= У & Y)

End Sub

¬ложенный арифметический цикл

ѕод вложенным арифметическим циклом понимают такую алгоритмическую структуру, при которой в тело одного цикла с параметром включен другой цикл со своим параметром. ƒругими словами составна€ инструкци€ вида

FOR I = Е

FOR J = Е

FOR K = Е

€вл€етс€ признаком вложенного арифметического цикла.

«адача 4. ¬ычислить .

Ѕлок-схема алгоритма решени€ задачи представлена на рис. 4.

 од программы:

Sub pr4()

Dim Y As Double, Pr As Double, k As Integer, p As Integer

k = InputBox(У¬ведите k=У)

p = InputBox(У¬ведите p=У)

For k = 1 To 10

Pr = 1

For p = 1 To 4

Pr = Pr * (k Ц p) ^ 2

Next p

Y = Y + k ^ 3 * Pr

Next k

MsgBox(УY= У &Y)

End Sub

 
 


–ис. 4. Ѕлок-схема алгоритма решени€ задачи 4

»терационные циклы

»терационные циклы чаще всего используютс€ дл€ вычислени€ бесконечных сумм, бесконечных произведений и пределов функций и р€дов.

«адача 5. ¬ычислить . ¬ычислени€ остановить при выполнении услови€ .

ƒл€ решени€ этой задачи удобно использовать оператор цикла с предусловием Do While.

Ѕлок-схема алгоритма решени€ задачи представлена на рис. 4.

 од программы Ц процедура pr5.

 
 


–ис. 5 Ѕлок-схема алгоритма решени€ задачи 5

Sub pr5()

Dim Y As Double, E As Double, i As Integer

E = InputBox(У¬ведите погрешность вычисленийФ)

i = 1: Y = 0

Do While i/2^i >= E

Y = Y + i /2^2

i = i + 1

Loop

MsgBox(УY=Ф & Y)

End Sub

–екуррентные формулы

јрифметический цикл с рекуррентной зависимостью

ћногие циклические вычислительные процессы используют рекуррентные зависимости при решении различных математических задач. ¬ общем виде формулу дл€ рекуррентных вычислений можно представить так:

(2)

¬ этой рекуррентной формуле дл€ вычислени€ i -го члена последовательности , где , используютс€ k предыдущих членов последовательности . ƒл€ вычислений по формуле (2) нужно задать k первых членов последовательности - .

¬ р€де случаев рекуррентную формулу легко вывести. Ќапример, дл€ суммы р€да, описанной формулой S = , рекуррентна€ формула выводитс€ из отношени€ текущего члена р€да к предыдущему.

(1)

»з (1) и находитс€ рекуррентна€ формула:

(2)

»спользование рекуррентных формул, как правило, сокращает текст программы и врем€ выполнени€ на компьютере. ќднако, в большинстве случаев, рекуррентную формулу нужно написать программисту, что в р€де случаев вызывает определенные трудности. ќдин из таких случаев рассмотрен в решении задачи 6.

«адача 6. ¬ычислить значение .

«наменатель формулы дл€ вычислени€ tgX представл€ет собой цепную дробь. ƒл€ вычислени€ такого знаменател€ в цикле удобно использовать рекуррентную зависимость с пам€тью в один член последовательности . ƒл€ вывода рекуррентной формулы следует использовать табл. 1.

“аблица 1

Ќомер i „лен последовательности ¬еличина
   
 
 
 
 
 

»з табл. 1 легко заметить, что рекуррентна€ формула принимает вид:

(3)

Ѕлок-схема алгоритма решени€ задачи представлена на рис. 6.

 од программы представлен процедурой pr6.

 од программы:

Sub pr6()

Dim X As Double, A As Double; i As Integer

X=InputBox(У¬ведите XФ)

A = 1

For i = 1 TO 5

A =11 - 2*i- X*X/A

Next i

MsgBox(Уtg X = Ф & Format(A, УfixedФ))

End Sub


–ис. 6 Ѕлок-схема алгоритма решени€ задачи 6

«адача 7. ѕользу€сь рекуррентной формулой, дл€ заданного N вычислить , если известны , а вычисл€етс€ по формуле

(4)

“аблица имЄн

ћатемат.величина ќбозначениев программе —одержательный смысл “иппеременной
i i Ќомер текущего члена последовательности integer
N N Ќомер последнего члена последовательности integer
Y3 „лен последовательности с номером i-3 double
Y2 „лен последовательности с номером i-2 double
Y1 „лен последовательности с номером i-1 double
Y „лен последовательности с номером i double
S »скома€ сумма double

ѕервым шагом в работе алгоритма €вл€етс€ ввод данных Y0, Y1, Y2, N. ѕри вводе трех первых значений последовательности нужно использовать рабочие €чейки Y3, Y2 и Y1, соответственно. Ќа втором шаге требуетс€ проанализировать значение N. ≈сли N < 3, то рекуррентна€ формула дл€ подсчета S суммы первых N членов не потребуетс€. ƒл€ определени€ S при условии N < 3, в алгоритме предусмотрен переключатель (оператор Select Case), имеющий три ветви: N = 0, N = 1, в противном случае (куда попадает и случай N = 2). ƒл€ каждой ветви подсчитываетс€ соответствующа€ сумма S. “ретий шаг выполн€етс€ только в том случае, если N > 2. Ќа этом шаге дл€ I от 3 до N по рекуррентной формуле вычисл€ютс€ YI и подсчитываетс€ их сумма S. Ќайденное значение S на последнем четвертом шаге выводитс€ на экран.

Ѕлок-схема алгоритма решени€ задачи представлена на рис. 7.

 од программы представлен процедурой pr7.

Sub pr7()

Dim Y3 As Double, Y2 As Double, Y1 As Double, Y As Double

Dim S As Double

Dim N As Integer, i As Integer

Y3=InputBox(У¬ведите Y0Ф)

Y2=InputBox(У¬ведите Y1Ф)

Y1=InputBox(У¬ведите Y2Ф)

N=InputBox(У¬ведите NФ)

Select Case N

Case 0

S=Y3

Case 1

S=Y3+Y2

Case Else

S=Y3+Y2+Y1

End Select

If N>2 Then

For i=3 To N

Y=Log(Abs(Y1*Y1+Y3+1)

S=S+Y

Y3=Y2

Y2=Y1

Y1=Y

Next i

End If

MsgBox(УS = Ф & Format(S, УfixedФ))

End Sub

 
 


–ис. 7. Ѕлок-схема алгоритма решени€ задачи 7





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2016-12-05; ћы поможем в написании ваших работ!; просмотров: 614 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ќасто€ща€ ответственность бывает только личной. © ‘азиль »скандер
==> читать все изречени€...

546 - | 472 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.025 с.