VBA HOMEWORK PROBLEM due in 7 hours
P ro
gr am
m in
g fo
r M
ec h
an ic
al
En gi
n ee
rs (
M E2
0 9
)
C o
u rs
e G
u id
e C
h ap
te r
7
Pa rt
1
Lo o
p C
o n
tr o
l S tr
u ct
u re
s
Lo op
C on
tr ol
S tr
uc tu
re s
In t
h is
c h
ap te
r, y
o u
w ill
le ar
n h
o w
t o
s tr
u ct
u re
lo o
p s
w it
h in
y o
u r
co d
e. I
n o
th er
w o
rd s,
a b
lo ck
o f
co d
e, p
la ce
d w
it h
in lo
o p
b
o u
n d
ar ie
s, w
ill b
e ex
ec u
te d
u n
ti l a
p re
-p re
sc ri
b e
d c
o n
d it
io n
is
m et
.
Fo r-
N ex
t L oo
p
Su p
p o
se y
o u
w an
t re
ad in
d at
a en
te re
d b
y th
e u
se r
in t
h e
fi rs
t 5
ro
w s
o f
Sh ee
t1 , C
o lu
m n
B .
O n
e w
ay is
t o
w ri
te t
h e
n ec
es sa
ry
st at
em en
ts , l
ik e
th is
:
O p t i o n B a s e 1
D i m m y N u m ( 5 ) A s S t r i n g
m y N u m ( 1 ) = S h e e t 1 . C e l l s ( 1 , 2 ) . V a l u e
m y N u m ( 2 ) = S h e e t 1 . C e l l s ( 2 , 2 ) . V a l u e
m y N u m ( 3 ) = S h e e t 1 . C e l l s ( 3 , 2 ) . V a l u e
m y N u m ( 4 ) = S h e e t 1 . C e l l s ( 4 , 2 ) . V a l u e
m y N u m ( 5 ) = S h e e t 1 . C e l l s ( 5 , 2 ) . V a l u e
A m
o re
e ff
ic ie
n t
w ay
is t
o u
se t
h e
Fo r-
N ex
t L oo
p st
ru ct
u re
:
F o r x = 1 T o 5 S t e p 1
m y N u m ( x ) = S h e e t 1 . C e l l s ( x , 2 ) . V a l u e
N e x t
H er
e, w
e u
se t
h e
lo o
p v
ar ia
b le
, x , t
o p
ro vi
d e
th e
ar ra
y in
d ex
n
u m
b e
r. T
h e
lo o
p v
ar ia
b le
w ill
b e
se t
to t
h e
"S ta
rt "
va lu
e (
1 in
t h
is
ca se
), a
n d
in cr
em en
te d
b y
th e
"S te
p "
va lu
e (
1 in
t h
is c
as e)
e ac
h
ti m
e th
e lo
o p
is e
xe cu
te d
. Ea
ch t
im e
x is
in cr
em e
n te
d , i
t is
co
m p
ar ed
t o
t h
e "S
to p
" va
lu e
( 5
in t
h is
c as
e) .
W h
en x
> 5
, p
ro ce
ss in
g w
ill ju
m p
t o
t h
e st
at em
en t
fo llo
w in
g th
e "N
ex t"
. Th
e ex
am p
le a
b o
ve w
ill e
xe cu
te t
h e
st at
em en
t in
t h
e lo
o p
5 t
im es
.
C o
n si
d er
t h
e fo
llo w
in g
co d
e:
F o r x = 1 T o 5 S t e p 2
m y N u m ( x ) = S h e e t 1 . C e l l s ( x , 2 ) . V a l u e
N e x t
H o
w m
an y
ti m
es w
ill t
h e
st at
em en
t b
e ex
ec u
te d
?
A n
o th
er o
p ti
o n
is t
o a
d d
t h
e n
am e
o f
th e
v ar
ia b
le b
e in
g in
cr em
en te
d a
ft er
t h
e "N
ex t"
k ey
w o
rd li
ke t
h is
: F o r x = 1 T o 5 S t e p 2
m y N u m ( x ) = S h e e t 1 . C e l l s ( x , 2 ) . V a l u e
N e x t x
Th is
is g
o o
d p
ro gr
am m
in g
p ra
ct ic
e , b
ec au
se it
h el
p s
m ak
e yo
u r
co d
e m
o re
u n
d er
st an
d ab
le a
n d
e as
ie r
to d
eb u
g, p
ar ti
cu la
rl y
w h
en y
o u
h
av e
n es
te d
F o
r- N
ex t
Lo o
p s.
Le t’s
tr y
so m
e ex
am p
le s
th at
m ak
es u
se o
f th
e Fo
r- N
ex t
st ru
ct u
re .
In -C
la ss
E xe
rc is
e #1
U se
t h
e F
o r-
N ex
t co
n tr
o l s
tr u
ct u
re t
o w
ri te
a f
u n
ct io
n t
o c
o m
p u
te
th e
fa ct
o ri
al o
f an
y p
o si
ti ve
in te
ge r.
F u n c t i o n F a c t o r i a l ( n u m b e r A s I n t e g e r ) A s D o u b l e
< p
u t
yo u
r co
d e
h er
e>
E n d F u n c t i o n
D o
es y
o u
r so
lu ti
o n
lo o
k so
m et
h in
g lik
e th
is ?
F u n c t i o n F a c t o r i a l ( n u m b e r A s I n t e g e r ) 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
D i m l o o p V a r i a b l e A s I n t e g e r
' c h e c k i n p u t
I f n u m b e r < 0 T h e n E x i t F u n c t i o n
' i n i t i a l i z e r e s u l t
F a c t o r i a l = 1
' c o m p u t e f a c t o r i a l u s i n g F o r - N e x t l o o p
F o r l o o p V a r i a b l e = 2 T o n u m b e r
F a c t o r i a l = F a c t o r i a l * l o o p V a r i a b l e
N e x t l o o p V a r i a b l e
E n d F u n c t i o n
In -C
la ss
E xa
m pl
e #2
N u
m er
ic al
p ro
b le
m s
ar e
o ft
en s
o lv
ed u
si n
g N
es te
d Lo
op s
(l o
o p
s w
it h
in lo
o p
s) .
W ri
te a
S ub
p ro
ce d
u re
t o
c al
cu la
te t
h e
fa ct
o ri
al s
o f
n u
m b
er s
fr o
m 1
to
3 0
, a n
d t
ab u
la te
t h
e re
su lt
s in
a w
o rk
sh ee
t t
ab le
.
S u b f a c t ( )
< p
u t
yo u
r co
d e
h er
e>
E n d S u b
D o
es y
o u
r so
lu ti
o n
lo o
k so
m et
h in
g lik
e th
is ?
S u b f a c t ( )
' d e c l a r e l o c a l v a r i a b l e s
D i m f a c t o r i a l A s D o u b l e , n A s I n t e g e r , i A s I n t e g e r
' w r i t e r e s u l t s t a b l e c o l u m n h e a d i n g s
C e l l s ( 1 , 1 ) = " n " : C e l l s ( 1 , 2 ) = " f a c t o r i a l "
' o u t e r l o o p
F o r n = 1 T o 3 0
f a c t o r i a l = 1
' i n n e r l o o p t o c a l c u l a t e f a c t o r i a l o f n
F o r i = 1 T o n
f a c t o r i a l = f a c t o r i a l * i
N e x t i
C e l l s ( n + 1 , 1 ) = n
C e l l s ( n + 1 , 2 ) = f a c t o r i a l
N e x t n
E n d S u b
D o-
Lo op
C on
tr ol
S tr
uc tu
re
Th e
D o
-L o
o p
is s
im ila
r to
t h
e Fo
r- N
ex t,
b u
t lo
o p
in g
co n
ti n
u es
in
d ef
in it
el y
u n
ti l a
c o
n tr
o l s
ta te
m en
t w
it h
in t
h e
b lo
ck t
el ls
V B
A t
o
ex it
t h
e lo
o p
. In
g en
e ra
l, it
c an
lo o
k so
m et
h in
g lik
e th
is :
D o
<s ta
te m
en ts
>
I f
<l o
gi ca
l e xp
re ss
io n
> T h e n G o T o
<l ab
el >
<s ta
te m
en ts
>
L o o p
<l ab
el > :
O r.
..
D o
<s ta
te m
en ts
>
I f < l o g i c a l e x p r e s s i o n > T h e n E x i t D o
<s ta
te m
en ts
>
L o o p
Ca ut
io n:
I f y
ou d
on ’t
h av
e so
m et
hi ng
li ke
th
e G o T o
o r E x i t D o
s h
o w
n in
t h
es e
ex am
p le
s,
yo u
r p
ro gr
am c
o u
ld r
u n
in d
ef in
it el
y, t
h u
s "h
an gi
n g
u p
" yo
u r
Ex ce
l p ro
gr am
. Th
is c
an r
es u
lt in
lo ss
o f
yo u
r w
o rk
.
Ex am
pl e
D i m x !
x = 1 0
D o
I f x < 0 T h e n E x i t D o
x = x – 1
L o o p
Th e
p ro
ce d
u re
w ill
e xi
t th
e lo
o p
w h
en x
< 0
, p ro
ce e
d in
g w
it h
t h
e st
at em
en t
fo llo
w in
g L o o p
. If
t h
e co
n d
it io
n is
n o
t in
cl u
d e
d , t
h e
lo o
p
w o
u ld
r ep
e at
u n
ti l x
r ea
ch e
d a
v al
u e
o f
ap p
ro xi
m at
el y
-1 0
3 8 .
H o
w m
an y
ti m
es w
ill t
h e I f
s ta
te m
en t
b e
ex ec
u te
d ?
W h
at v
al u
e w
ill x
h av
e af
te r
th e
lo o
p is
e xi
te d
?
D o-
W hi
le L
oo p
A c
o n
ve n
ie n
t va
ri at
io n
o f
th e
D o-
Lo op
is t
h e
D o-
W hi
le .
Th e
ex it
co
n d
it io
n is
s p
ec if
ie d
in t
h e
D o
s ta
te m
en t.
D o W h i l e
<l o
gi ca
l c o
n d
it io
n >
< st
at em
e n
ts >
L o o p
Th u
s, t
h e
p re
vi o
u s
ex am
p le
a b
o ve
c o
u ld
b e
w ri
tt en
t h
is w
ay :
D o W h i l e x > = 0
x = x – 1
L o o p
Le t’s
p ra
ct ic
e th
e D
o- W
h ile
w it
h a
n in
te re
st in
g ex
am p
le f
ro m
M
E3 0
9 .
In -C
la ss
E xe
rc is
e #3
C re
at e
a Fu
n ct
io n
p ro
ce d
u re
t o
c al
cu la
te si n𝑥
u si
n g
th e
M ac
la u
ri n
se
ri e
s ex
p an
si o
n f
o r
th e
si n
f u
n ct
io n
( M
ac la
u ri
n s
er ie
s ar
e n
am ed
af
te r
th e
Sc o
tt is
h m
at h
em at
ic ia
n C
o lin
M ac
la u
ri n
):
w h
er e 𝑥
is in
r ad
ia n
s.
Th e
te rm
s o
f th
is s
er ie
s ex
p an
si o
n g
et s
m al
le r
an d
s m
al le
r.
C al
cu la
te si n𝑥
u si
n g
th e
d im
in is
h in
g te
rm s
u n
ti l y
o u
e n
co u
n te
r o
n e
b el
o w
a "
to le
ra n
ce "
va lu
e 𝜀 =
1𝑒 − 5.
W h
er e
th e
f ac
to ri
al is
n ee
d ed
in t
h e
eq u
at io
n , u
se t
h e
fu n
ct io
n w
e cr
ea te
d in
E xe
rc is
e #1
( if
t h
e fu
n ct
io n
is in
a n
o p
en w
o rk
b o
o k,
V B
A
w ill
f in
d it
). F
o r
ex am
p le
: t e r m = ( - 1 ) ^ n * x ^ ( 2 * n + 1 ) / f a c t o r i a l ( 2 * n + 1 )
Th e
so lu
ti o
n lo
o ks
li ke
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 cu
ta b
le s
ta te
m en
ts .