1 / 15

15 – Structured Programming

15 – Structured Programming. Admin: Test 2. In class test 4 Feb 2013 28 Jan 2013: revision (technique) session 50 mins short answer (1 - 15 lines) 25% of module mark. Questions: Functions.

quinn-vega
Download Presentation

15 – Structured Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 15 – Structured Programming

  2. Admin: Test 2 • In class test • 4 Feb 2013 • 28 Jan 2013: revision (technique) session • 50 mins • short answer (1 - 15 lines) • 25% of module mark

  3. Questions: Functions • Consider the following code: Function Smallest(num1, num2) If num1 < num2 Then Smallest = num1 Else Smallest = num2 End If End Function • name a function. • what is left in small after the following is executed?Dim small small = Smallest(23, 15) Smallest 15

  4. Session Aims & Objectives • Aims • To highlight the fundamental ideas of the structured programming paradigm • Objectives,by end of this week’s sessions, you should be able to: • create an abstract data type, which includes • data, and • routines • use this to reduce code length

  5. Example: Ball Bounce v1 <html> <head><title>Ball Bounce</title></head> <body style="margin: 0;"> <img id="imgBall" src="Ball.gif" style="position: absolute;" /> </body> </html> <script language="vbscript"> Option Explicit Dim x Dim y Dim xInc Dim yInc Sub window_onLoad() window.setinterval "Main()", 20 xInc = 5 yInc = 3 End Sub Sub Main() x = imgBall.style.posLeft + xInc If x <= 0 Or x >= document.body.clientWidth - imgBall.width Then xInc = -xInc Else imgBall.style.posLeft = x End If y = imgBall.style.posTop + yInc If y <= 0 Or y >= document.body.clientHeight - imgBall.height Then yInc = -yInc Else imgBall.style.posTop = y End If End Sub </script>

  6. Structured Paradigm • Program made up of • data structures (variables & arrays), and • routines (procedures & functions)that process the data within those structures. • Each routine should perform a single, clearly identifiable operation. • Each routine should be self-contained • Abstract data type = structure + procedures

  7. Self-Contained Routines • Self-contained: • no references to external items (objects & variables) Function a1(h, f) a1 = (h + f) * f End Function Sub a2() imgBall.Style.posLeft = 0 End Sub yes no

  8. Question: Self-contained • Which of the following routines are self-contained?Dim s Function goo(h, f) goo = (h + f) * s End Function Function poo(j, k, vi) If j > 45 Then poo = k + vi Else poo = k - vi End If End Function no yes

  9. Routines: Self-Contained • Good design principle: • routines (functions and procedures)should be self-contained(easier to re-use in other programs) Dim u As Long Dim a As Long a = 4 u = Twice() Function Twice() Return a * 2 End Function Dim u As Long u = Twice(4) Function Twice(a As Long) Return a * 2 End Function  

  10. Question: Self-Contained Routines • Are the following routines self contained? Dim num1 Dim num2 Dim diff Sub Compare() diff = num1 - num2 End Sub Function Half(num As Double) As Double Return num / 2 End Function  

  11. Example: Ball Bounce v1 <html> <head><title>Ball Bounce</title></head> <body style="margin: 0;"> <img id="imgBall" src="Ball.gif" style="position: absolute;" /> </body> </html> <script language="vbscript"> Option Explicit Dim x Dim y Dim xInc Dim yInc Sub window_onLoad() window.setinterval "Main()", 20 xInc = 5 yInc = 3 End Sub Sub Main() x = imgBall.style.posLeft + xInc If x <= 0 Or x >= document.body.clientWidth - imgBall.width Then xInc = -xInc Else imgBall.style.posLeft = x End If y = imgBall.style.posTop + yInc If y <= 0 Or y >= document.body.clientHeight - imgBall.height Then yInc = -yInc Else imgBall.style.posTop = y End If End Sub </script>

  12. Example: Ball Bounce v2 Sprite.vbs Option Explicit Dim x Dim y Dim xInc Dim yInc Sub Init(tmpXInc, tmpYInc) xInc = tmpXInc yInc = tmpYInc End Sub Sub Move(img) x = img.style.posLeft + xInc If x <= 0 Or x >= document.body.clientWidth - img.width Then xInc = -xInc Else img.style.posLeft = x End If y = img.style.posTop + yInc If y <= 0 Or y >= document.body.clientHeight - img.height Then yInc = -yInc Else img.style.posTop = y End If End Sub BallBounce.htm <html> <head><title>Ball Bounce</title></head> <body style="margin: 0;"> <img id="imgBall" src="Ball.gif" style="position: absolute;" /> </body> </html> <script language="vbscript" src="Sprite.vbs"></script> <script language="vbscript"> Option Explicit Sub window_onLoad() window.setinterval "Main()", 20 Init 5, 3 End Sub Sub Main() Move imgBall End Sub </script>

  13. Example: Balloon Shoot • Question: • what objects? • what variables? • what procedures / functions?

  14. Tutorial Exercise: Ball Bounce • Learning Objective: To create and use your own class. • Task 1: Get the Ball Bounce examples (1, 2, and 5) from the lecture working. • Task 2: Add another sprite.Hint: Use Arrays. • Task 3: Add another 5 sprites. • Task 4: Add a hit method to the sprite class, which detects the collision with another sprite. • Task 5: Modify your page to count the number of hits between the two sprites. • Task 6: Modify your page to make sprites bounce off each other.

  15. Tutorial Exercise: Balloon Shoot • Learning Objective: To create and use your own classes. • Task 1: Create the Balloon Shoot example (from the lecture) using object oriented concepts (classes, properties, methods, and instances)hint: use some of the code from your Interceptor example (from last week)

More Related