VBA HOMEWORK PROBLEM due in 7 hours

profileKaydee
ch7_p2.pdf

P ro

g ra

m m

in g

f o

r M

e c h

a n

ic a

l

E n

g in

e e

rs (

M E

2 0

9 )

C o

u rs

e G

u id

e C

h a

p te

r 7

P a

rt 2

Lo o

p C

o n

tr o

l S

tr u

ct u

re s

In -C

la ss

E xe

rc is

e #3

C re

a te

a F

u n

c ti

o n

p ro

c e

d u

re t

o c

a lc

u la

te si n𝑥

u si

n g

t h

e M

a c la

u ri

n

se ri

e s

e x p

a n

si o

n f

o r

th e

s in

f u

n ct

io n

( M

a cl

a u

ri n

s e

ri e

s a

re n

a m

e d

a ft

e r

th e

S co

tt is

h m

a th

e m

a ti

c ia

n C

o li

n M

a c la

u ri

n ):

w h

e re

𝑥 is

i n

r a

d ia

n s.

T h

e t

e rm

s o

f th

is s

e ri

e s

e x p

a n

si o

n g

e t

sm a

ll e

r a

n d

s m

a ll

e r.

C a

lc u

la te

si n𝑥

u si

n g

t h

e d

im in

is h

in g

t e

rm s

u n

ti l y o

u e

n co

u n

te r

o n

e

b e

lo w

a "

to le

ra n

c e

" v a

lu e

𝜀 = 1𝑒

− 5.

W h

e re

t h

e f

a ct

o ri

a l is

n e

e d

e d

i n

t h

e e

q u

a ti

o n

, u

se t

h e

f u

n ct

io n

w e

cr e

a te

d i

n E

xe rc

is e

# 1

( if

t h

e f

u n

c ti

o n

i s

in a

n o

p e

n w

o rk

b o

o k

, V

B A

w il

l fi

n d

i t)

. F

o r

e xa

m p

le :

t e r m = ( - 1 ) ^ n * x ^ ( 2 * n + 1 ) / f a c t o r i a l ( 2 * n + 1 )

T h

e s

o lu

ti o

n l

o o

k s

li k e

t h

is :

F u n c t i o n M y S i n ( x A s D o u b l e ) A s D o u b l e

' D e c l a r e l o c a l v a r i a b l e s

D i m t e r m A s D o u b l e , t o l A s D o u b l e , n A s I n t e g e r

' i n i t i a l c o n d i t i o n s

t o l = 0 . 0 0 0 0 1 ' t o l e r a n c e v a l u e

n = 0 ' n f o r f i r s t t e r m

t e r m = x ' f i r s t t e r m v a l u e

M y S i n = t e r m

' l o o p u n t i l t o l e r a n c e a c h i e v e d

D o W h i l e A b s ( t e r m ) > t o l

n = n + 1 ' n e x t v a l u e o f n

t e r m = ( - 1 ) ^ n * x ^ ( 2 * n + 1 ) / _

F a c t o r i a l ( 2 * n + 1 ) ' n e x t t e r m v a l u e

M y S i n = M y S i n + t e r m ' u p d a t e s i n ( x )

L o o p

E n d F u n c t i o n

9 e

xe c u

ta b

le s

ta te

m e

n ts

.

A n

o th

e r

a p

p ro

a ch

.. .

It h

e lp

s to

r e

co g

n iz

e t

h e

f o

ll o

w in

g p

a tt

e rn

i n

t h

e a

b o

v e

t e

rm

se q

u e

n c e

.. .

n te

rm (n

)

0 x ^ 1 / 1 !

1 - x ^ 3 / 3 ! = - t e r m ( 0 ) * x ^ 2 / ( 3 * 2 )

2 x ^ 5 / 5 ! = - t e r m ( 1 ) * x ^ 2 / ( 5 * 4 )

3 - x ^ 7 / 7 ! = - t e r m ( 2 ) * x ^ 2 / ( 7 * 6 )

B y

t a

k in

g a

d v a

n ta

g e

o f

th is

p a

tt e

rn ,

a m

o re

e ff

ic ie

n t

co d

e c

a n

b e

w ri

tt e

n ,

a s

sh o

w n

o n

t h

e f

o ll

o w

in g

p a

g e

.

F u n c t i o n M y S i n 2 ( x A s D o u b l e ) A s D o u b l e

' D e c l a r e l o c a l v a r i a b l e s

D i m t e r m # , t o l # , p %

' i n i t i a l c o n d i t i o n s

t o l = 0 . 0 0 0 0 1 ' t o l e r a n c e v a l u e

p = 1 ' p o w e r o f f i r s t t e r m

t e r m = x ' f i r s t t e r m v a l u e

M y S i n 2 = t e r m ' i n i t i a l v a l u e o f s i n ( x )

' l o o p u n t i l t o l e r a n c e a c h i e v e d

D o W h i l e A b s ( t e r m ) > t o l

p = p + 2

' p o w e r o f n e x t t e r m

t e r m = - t e r m * x ^ 2 / _

( p * ( p - 1 ) ) ' n e x t t e r m v a l u e

M y S i n 2 = M y S i n 2 + t e r m ' u p d a t e s i n ( x )

L o o p

E n d F u n c t i o n

9 e

xe c u

ta b

le s

ta te

m e

n ts

, a

n d

n o

n e

e d

to c

o m

p u

te t

h e

f a

c to

ri a

l fo

r e

a ch

t e

rm .