mark dixon, socce soft 131page 1 07 – iterative execution

Post on 19-Dec-2015

223 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mark Dixon, SoCCE SOFT 131 Page 1

07 – Iterative Execution

Mark Dixon, SoCCE SOFT 131 Page 2

Coursework 1 (Test) - Results

StudentNumber

Score(max 50)

Classification is for guidance only

Please feel free to come and discuss your results with me

10071281 43.510068515 42.010006434 37.0

10041425 16.5 10080929 35.510075490 16.5 246751 24.5 10063595 33.0 10073337 35.0

<40% (fail) <50% (3) <60% (2:2) <70% (2:1) >=70% (1)

Mark Dixon, SoCCE SOFT 131 Page 3

Coursework 1 (Test) - Debrief• Range of marks normal

• Failure rate quite high – 30% (3 / 10)– not unusual for this module– recoverable if corrective action is taken

• Please feel free to discuss marks in tutorial

Mark Dixon, SoCCE SOFT 131 Page 4

Coursework 1 (Test) - Problems• Answer question:

– Name a variable: Dim x x

• Conditional expressions: x > 4– used in conditional statements:

If picMain.height < 0 Then

• Parameters – data given to functions: x = Int(34.56) + 34.56 + sqr(b)

Mark Dixon, SoCCE SOFT 131 Page 5

Session Aims & Objectives• Aims

– To introduce the main concepts involved in getting the machine to perform repetitive tasks.

• Objectives,by end of this week’s sessions, you should be able to:

– To be able to implement code that does repetitive tasks, using looping structures:

• known limits (for loop)• unknown limits (do loop)

Mark Dixon, SoCCE SOFT 131 Page 6

Example: Hello v0

<html> <head><title>Hello</title></head> <body> <input id=btnHello type=button value=Hello /> <p id=lblHello></p> </body></html>

<script language=vbscript>Option Explicit Sub btnHello_OnClick() lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" End Sub</script>

• 1 user click: 1 Hello (1 line of code)

Mark Dixon, SoCCE SOFT 131 Page 7

Example: Hello v1

<script language=vbscript>Option Explicit

Sub btnHello_OnClick() lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" End Sub</script>

• 1 user click: 10 Hellos (10 lines of code)Lots of lines

imagine 300 Hellos

Mark Dixon, SoCCE SOFT 131 Page 8

Example: Hello v2

<script language=vbscript>Option Explicit

Sub btnHello_OnClick() Dim h For h = 1 to 10 lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" Next End Sub</script>

• 1 user click: 10 Hellos (4 lines of code)

Mark Dixon, SoCCE SOFT 131 Page 9

For ... Next statement• repeat code known number of times

– reduces length of code

– easier to change

• Syntax:

For variable = start To end statementblock Next

Mark Dixon, SoCCE SOFT 131 Page 10

Advantages• Less code:

• This makes program:– Easier to read– Easier to change (imagine 500 Hellos)

Option Explicit

Sub btnGo_OnClick()Dim h For h = 1 To 10 lblHello.innerHTML = lblHello.innerHTML & "Hello<br>" NextEnd Sub

Option Explicit

Sub btnGo_OnClick()lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"lblHello.innerHTML = lblHello.innerHTML & "Hello<br>"End Sub

Hello v1 Hello v2

10lines

4 lines

Mark Dixon, SoCCE SOFT 131 Page 11

• Real Power of loops– using counter variable

– do something slightly different each time

• Example: Dim numDim tottot = 0For num = 1 To 5 tot = tot + numNextlblRes.InnerText = tot

Example: Total

Mark Dixon, SoCCE SOFT 131 Page 12

Example: Total

Mark Dixon, SoCCE SOFT 131 Page 13

Question: For … Next• What does the following code produce:

Dim counter For counter = 1 To 10 lblNums.InnerText = lblNums.InnerText & counter Next

• What does the following code produce:Dim i For i = 24 To 8 Step -2 lblNums.InnerText = lblNums.InnerText & i & i * 2 Next

Mark Dixon, SoCCE SOFT 131 Page 14

Example: Letter Count <script language=vbscript> Option Explicit

Sub btnCount_OnClick() Dim pos Dim count Dim char count = 0 For pos = 1 To Len(txtWords.value) char = Mid(txtWords.value, pos, 1) If char = "e" Then count = count + 1 End If Next lblCount.innerText = count End Sub</script>

Mark Dixon, SoCCE SOFT 131 Page 15

Example: Shades<script language="vbscript">Option Explicit

Sub btnShow_OnClick() Const stTag = "<span style=""background: #" Dim h, p, msg, red msg = txtMsg.value h = "" red = 255 For p = 1 To Len(msg) h = h + stTag + Hex(red) + "0000"">" h = h + Mid(msg, p, 1) h = h + "</span>" red = red - 5 Next divTones.innerHTML = h End Sub</script>

Mark Dixon, SoCCE SOFT 131 Page 16

Do ... Loop statement

• repeat code unknown number of times– more flexible than For

– slower than For

• Syntax:Do [{While|Until} condition] [statementblock]Loop

Mark Dixon, SoCCE SOFT 131 Page 17

Example: Do … Loop• Can do everything a For … Loop can:

Dim I Dim ii = 1Do While i <= 10 For i = 1 To 10 lblN.InnerText = i picN.InnerText =

i i = i + 1Loop Next

• And more:Dim ii = 1Do While i < 10 lblN.innertext = i If (i / 2) = Int(i / 2) then i = i + 1 Else i = i + 3 End If Loop

Mark Dixon, SoCCE SOFT 131 Page 18

Question: Do … Loop• What does the following produce:Dim num num = 20 Do While num > -12 lblDo.InnerText = lblDo.InnerText & num num = num - 1.5 Loop

• What does the following produce:Dim num num = 6 Do Until num > 4 num = num + 5 lblDo.InnerText = lblDo.InnerText & num Loop

Mark Dixon, SoCCE SOFT 131 Page 19

Tutorial Exercise: Hello• Task 1: Get the Hello Example (from the

lecture) working.

• Task 2: Modify your page so that it uses a variable to temporarily build to html.

• Task 3: Modify your page so that the user can control how many 'Hellos' appear.

Mark Dixon, SoCCE SOFT 131 Page 20

Tutorial Exercise: Letter Count• Task 1: Get the Letter Count Example (from

the lecture) working.• Task 2: Modify your Letter Count page, so

that the user can control which letter is counted.Hint: You will need a text box for the user to type a letter into.

• Task 3: Modify your Letter Count program, so that the user cannot type more than one letter in the letter text box.Hint: Use the text box’s change event, and the len function.

Mark Dixon, SoCCE SOFT 131 Page 21

Tutorial Exercise: Vowel Count• Task 1: Create a new page that counts the

number of vowels (a, e, i, o, u) in a piece of text. Hint: similar to the letter count example.

Mark Dixon, SoCCE SOFT 131 Page 22

Tutorial Exercise: Shades• Task 1: Get the shades example from the

lecture working.

• Task 2: Modify the page so that it puts a space in between each letter.

• Task 3: Change the program so that it uses shades of another colour instead.

• Task 4: Create a new page that selects random shades of your selected colour. Hint: use the Rnd function.

Mark Dixon, SoCCE SOFT 131 Page 23

Tutorial Exercise: Chess Board• Task 1: Use one for loop inside another to

create a chess board.

top related