Internet & World Wide Web How to Program, 5/e. ©1992-2012 by Pearson Education, Inc. All Rights Reserved. 2 Revised by Dr. T. Tran for CSI3140.

Slides:



Advertisements
Similar presentations
1 CSC 551: Web Programming Spring 2004 client-side programming with JavaScript  scripts vs. programs  JavaScript vs. JScript vs. VBScript  common tasks.
Advertisements

1 Programmer-Defined Functions Functions allow program modularization Variables declared in function are local variables Only known inside function in.
JavaScript Part for Repetition Statement for statement Cpecifies each of the items needed for counter-controlled repetition with a control variable.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic JavaScript: Introduction to Scripting.
Chapter 5 C Functions The best way to develop and maintain a large program is to divide it into several smaller program modules, each of which is more.
C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program Modules in C 5.3Math Library Functions 5.4Functions.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program.
 2007 Pearson Education, Inc. All rights reserved C Functions.
 2007 Pearson Education, Inc. All rights reserved C Functions.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic JavaScript: Functions Part I.
 2003 Prentice Hall, Inc. All rights reserved. 1 Functions Modules: functions and classes Programs use new and “prepackaged” modules –New: programmer-defined.
1 JavaScript/Jscript 4 Functions. 2 Introduction Programs that solve real-world programs –More complex than programs from previous chapters Best way to.
FunctionsFunctions Systems Programming Concepts. Functions   Simple Function Example   Function Prototype and Declaration   Math Library Functions.
 2004 Prentice Hall, Inc. All rights reserved. 1 Chapter 10 - JavaScript: Functions Outline 10.1 Introduction 10.2 Program Modules in JavaScript 10.3.
Lesson15. JavaScript Objects Objects encapsulate data (properties) and behavior(methods); the properties and the methods of an object are tied together.
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 11 – JavaScript/Jscript: Functions Outline 11.1Introduction 11.2Program Modules in JavaScript.
1 JavaScript: Functions and Arrays October 18, 2005 Slides modified from Internet & World Wide Web: How to Program (3rd) edition. By Deitel, Deitel,
1 Lecture 3 Part 1 Functions with math and randomness.
Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "methods" in Java Purpose Reuse code Modularize the program This.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 122 – Data Structures Recursion Review.
1 C++ How to Program, 7/e © by Pearson Education, Inc. All Rights Reserved.
 2003 Prentice Hall, Inc. All rights reserved. 1 Functions and Recursion Outline Function Templates Recursion Example Using Recursion: The Fibonacci Series.
Visual Basic 2010 How to Program © by Pearson Education, Inc. All Rights Reserved.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
JavaScript: Functions © by Pearson Education, Inc. All Rights Reserved.
 2001 Prentice Hall, Inc. All rights reserved. 1 Chapter 10 - JavaScript: Functions Outline 10.1 Introduction 10.2 Program Modules in JavaScript 10.3.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. C How To Program - 4th edition Deitels Class 05 University.
 2007 Pearson Education, Inc. All rights reserved C Functions.
Chapter 06 (Part I) Functions and an Introduction to Recursion.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Functions.
Pemrograman Teknologi Internet W06: Functions and Events.
Part II © Copyright by Pearson Education, Inc. All Rights Reserved.
Chapter 5 - Functions Outline 5.1Introduction 5.2Program Modules in C 5.3Math Library Functions 5.4Functions 5.5Function Definitions 5.6Function Prototypes.
 2001 Deitel & Associates, Inc. All rights reserved. 1 Outline 16.1Introduction 16.2Program Modules in JavaScript 16.3Programmer-Defined Functions 16.4Function.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Functions.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 6 - Functions.
Internet & World Wide Web How to Program, 5/e. © by Pearson Education, Inc. All Rights Reserved.
Chapter 2: Variables, Functions, Objects, and Events JavaScript - Introductory.
Internet & World Wide Web How to Program, 5/e. © by Pearson Education, Inc. All Rights Reserved.2 Revised by Dr. T. Tran for CSI3140.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Functions.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Functions Outline 5.1Introduction 5.2Program Modules.
KIC/Computer Programming & Problem Solving 1.  Introduction  Program Modules in C  Math Library Functions  Functions  Function Definitions  Function.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
JavaScript, Fourth Edition
Chapter 10: JavaScript Functions CIS 275—Web Application Development for Business I.
Java™ How to Program, 9/e © Copyright by Pearson Education, Inc. All Rights Reserved.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Introduction to Scripting.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Craps Game Application Introducing Random-Number Generation and Enum.
JavaScript: Functions © by Pearson Education, Inc. All Rights Reserved.
Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "___________________" in Java Purpose –Reuse code –Modularize.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
CHAPTER 4 FUNCTIONS Dr. Shady Yehia Elmashad. Outline 1.Introduction 2.Program Components in C++ 3.Math Library Functions 4.Functions 5.Function Definitions.
Internet & World Wide Web How to Program, 5/e.  JavaScript events  allow scripts to respond to user interactions and modify the page accordingly  Events.
REEM ALMOTIRI Information Technology Department Majmaah University.
Chapter 6 JavaScript: Introduction to Scripting
Functions and an Introduction to Recursion
Methods Chapter 6.
© 2016 Pearson Education, Ltd. All rights reserved.
JavaScript: Functions
JavaScript Functions.
JavaScript: Functions.
Chapter 5 - Functions Outline 5.1 Introduction
Chapter 10 - JavaScript: Functions
Chapter 5 - Functions Outline 5.1 Introduction
Chapter 6 Methods: A Deeper Look
Chapter 6 - Functions Outline 5.1 Introduction
JavaScript: Functions
Presentation transcript:

Internet & World Wide Web How to Program, 5/e

© by Pearson Education, Inc. All Rights Reserved. 2 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 3 Revised by Dr. T. Tran for CSI3140

 To develop and maintain a large program  construct it from small, simple pieces  divide and conquer approach © by Pearson Education, Inc. All Rights Reserved. 4 Revised by Dr. T. Tran for CSI3140

 You’ll combine new functions that you write with prepackaged functions and objects available in JavaScript  The prepackaged functions that belong to JavaScript objects (such as Math.pow, introduced previously) are called methods.  JavaScript provides several objects that have a rich collection of methods for performing common mathematical calculations, string manipulations, date and time manipulations, and manipulations of collections of data called arrays. © by Pearson Education, Inc. All Rights Reserved. 5 Revised by Dr. T. Tran for CSI3140

 You can define programmer-defined functions that perform specific tasks and use them at many points in a script  The actual statements defining the function are written only once and are hidden from other functions  Functions are invoked by writing the name of the function, followed by a left parenthesis, followed by a comma-separated list of zero or more arguments, and followed by a right parenthesis  Methods are called in the same way as functions, but require the name of the object to which the method belongs and a dot preceding the method name  Function (and method) arguments may be constants, variables or expressions © by Pearson Education, Inc. All Rights Reserved. 6 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 7 Revised by Dr. T. Tran for CSI3140

 return statement  passes information from inside a function back to the point in the program where the function was called  A function must be called explicitly in order for the code in its body to execute  The format of a function definition is function function-name( parameter-list ) { declarations and statements } © by Pearson Education, Inc. All Rights Reserved. 8 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 9 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 10 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 11 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 12 Revised by Dr. T. Tran for CSI3140

 Three ways to return control to the point at which a function was invoked  Reaching the function-ending right brace  Executing the statement return;  Executing the statement return expression; to return the value of expression to the caller  When a return statement executes, control returns immediately to the point at which the function was invoked © by Pearson Education, Inc. All Rights Reserved. 13 Revised by Dr. T. Tran for CSI3140

 The script in our next example (Fig. 9.3) uses a programmer-defined function called maximum to determine and return the largest of three floating-point values. © by Pearson Education, Inc. All Rights Reserved. 14 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 15 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 16 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 17 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 18 Revised by Dr. T. Tran for CSI3140

 All variables declared with the keyword var in function definitions are local variables—this means that they can be accessed only in the function in which they’re defined.  A function’s parameters are also considered to be local variables.  There are several reasons for modularizing a program with functions.  Divide-and-conquer approach makes program development more manageable.  Software reusability.  Avoid repeating code in a program. © by Pearson Education, Inc. All Rights Reserved. 19 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 20 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 21 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 22 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 23 Revised by Dr. T. Tran for CSI3140

 random method generates a floating-point value from 0.0 up to, but not including, 1.0  Random integers in a certain range can be generated by scaling and shifting the values returned by random, then using Math.floor to convert them to integers  The scaling factor determines the size of the range (i.e. a scaling factor of 4 produces four possible integers: 0, 1, 2, 3)  The shift number is added to the result to determine where the range begins (i.e. shifting the numbers by 3 would give numbers between 3 and 7, but not including 7, namely: 3, 4, 5, 6)  Method Math.floor rounds its argument down to the closest integer © by Pearson Education, Inc. All Rights Reserved. 24 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 25 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 26 Revised by Dr. T. Tran for CSI3140

 In the next example, we build a random image generator—a script that displays four randomly selected die images every time the user clicks a Roll Dice button on the page.  For the script in Fig. 9.5 to function properly, the directory containing the file RollDice.html must also contain the six die images—these are included with this chapter’s examples. © by Pearson Education, Inc. All Rights Reserved. 27 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 28 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 29 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 30 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 31 Revised by Dr. T. Tran for CSI3140

User Interactions Via Event Handling  Until now, all user interactions with scripts have been through  a prompt dialog or  an alert dialog.  These dialogs are valid ways to receive input from a user and to display messages, but they’re fairly limited in their capabilities.  A prompt dialog can obtain only one value at a time from the user, and an alert dialog can display only one message.  Inputs are typically received from the user via an HTML5 form.  Outputs are typically displayed to the user in the web page.  This program uses an HTML5 form and a new graphical user interface concept—GUI event handling.  The JavaScript executes in response to the user’s interaction with an element in a form. This interaction causes an event.  Scripts are often used to respond to user initiated events. © by Pearson Education, Inc. All Rights Reserved. 32 Revised by Dr. T. Tran for CSI3140

The body Element  The elements in the body are used extensively in the script. The form Element  The HTML5 standard requires that every form contain an action attribute, but because this form does not post its information to a web server, the string "#" is used simply to allow this document to validate.  The # symbol by itself represents the current page. © by Pearson Education, Inc. All Rights Reserved. 33 Revised by Dr. T. Tran for CSI3140

The button input Element and Event-Driven Programming  Event-driven programming:  the user interacts with an element in the web page, the script is notified of the event and the script processes the event.  The user’s interaction with the GUI “drives” the program.  The button click is known as the event.  The function that’s called when an event occurs is known as an event handler.  When a GUI event occurs in a form, the browser calls the specified event-handling function.  Before any event can be processed, each element must know which event-handling function will be called when a particular event occurs. © by Pearson Education, Inc. All Rights Reserved. 34 Revised by Dr. T. Tran for CSI3140

The img Elements  The four img elements will display the four randomly selected dice.  Their id attributes ( die1, die2, die3 and die4, respectively) can be used to apply CSS styles and to enable script code to refer to these element in the HTML5 document.  Because the id attribute, if specified, must have a unique value among all id attributes in the page, Java- Script can reliably refer to any single element via its id attribute.  Each img element displays the image blank.png (an empty white image) when the page first renders. © by Pearson Education, Inc. All Rights Reserved. 35 Revised by Dr. T. Tran for CSI3140

Specifying a Function to Call When the Browser Finishes Loading a Document  Many examples will execute a JavaScript function when the document finishes loading.  This is accomplished by handling the window object’s load event.  To specify the function to call when an event occurs, you register an event handler for that event.  Method addEventListener is available for every DOM node. The method takes three arguments:  the first is the name of the event for which we’re registering an event handler  the second is the function that will be called to handle the event (that is, the event handler)  the last argument is typically false—the true value is beyond this book’s scope © by Pearson Education, Inc. All Rights Reserved. 36 Revised by Dr. T. Tran for CSI3140

 To show that the random values representing the dice occur with approximately equal likelihood, let’s allow the user to roll 12 dice at a time and keep statistics showing the number of times each face occurs and the percentage of the time each face is rolled (Fig. 9.6). © by Pearson Education, Inc. All Rights Reserved. 37 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 38 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 39 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 40 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 41 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 42 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 43 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 44 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 45 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 46 Revised by Dr. T. Tran for CSI3140

Generalized Scaling and Shifting of Random Values  The values returned by random are always in the range 0.0 <= Math.random() < 1.0  Previously, we demonstrated the statement face = Math.floor( 1 + Math.random() * 6 );  which simulates the rolling of a six-sided die. This statement always assigns an integer (at random) to variable face, in the range 1 <= face <= 6.  Referring to the preceding statement, we see that the width of the range is determined by the number used to scale random with the multiplication operator (6 in the preceding statement), and that the starting number of the range is equal to the number added to Math.random() * 6 (1 in the preceding statement). © by Pearson Education, Inc. All Rights Reserved. 47 Revised by Dr. T. Tran for CSI3140

 We can generalize this result as: face = Math.floor( a + Math.random() * b );  where a is the shifting value (which is equal to the first number in the desired range of consecutive integers) and b is the scaling factor (which is equal to the width of the desired range of consecutive integers). © by Pearson Education, Inc. All Rights Reserved. 48 Revised by Dr. T. Tran for CSI3140

 The script in Fig. 9.7 simulates the game of craps. © by Pearson Education, Inc. All Rights Reserved. 49 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 50 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 51 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 52 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 53 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 54 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 55 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 56 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 57 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 58 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 59 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 60 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 61 Revised by Dr. T. Tran for CSI3140

The HTML5 audio Element  An HTML5 audio element is used to embed audio into a web page.  We specify an id for the element, so that we can programmatically control when the audio clip plays, based on the user’s interactions with the game.  Setting the preload attribute to "auto" indicates to the browser that it should consider downloading the audio clip so that it’s ready to be played when the game needs it. © by Pearson Education, Inc. All Rights Reserved. 62 Revised by Dr. T. Tran for CSI3140

 Most browsers support MP3, OGG and/or WAV format.  Each source element specifies a src and a type attribute.  The src attribute specifies the location of the audio clip.  The type attribute specifies the clip’s MIME type— audio/mpeg for the MP3 clip, and audio/ogg for the OGG clip (WAV would be audio/x-wav; MIME types for these and other formats can be found online).  When a web browser that supports the audio element encounters the source elements, it will choose the first audio source that represents one of the browser’s supported formats. © by Pearson Education, Inc. All Rights Reserved. 63 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 64 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 65 Revised by Dr. T. Tran for CSI3140

CrapsRules.html and the HMTL5 video Element  When the user clicks the hyperlink in Craps.html, the CrapsRules.html is displayed in the browser.  This page consists of a link back to Craps.html (Fig. 9.8) and an HTML5 video element that displays a video explaining the basic rules for the game of Craps. © by Pearson Education, Inc. All Rights Reserved. 66 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 67 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 68 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 69 Revised by Dr. T. Tran for CSI3140

 Each identifier in a program has a scope  The scope of an identifier for a variable or function is the portion of the program in which the identifier can be referenced  Global variables or script-level variables are accessible in any part of a script and are said to have global scope  Thus every function in the script can potentially use the global variables © by Pearson Education, Inc. All Rights Reserved. 70 Revised by Dr. T. Tran for CSI3140

 Identifiers for variables declared inside a function have function (or local) scope and can be used only in that function  Function scope begins with the opening left brace ( { ) of the function in which the identifier is declared and ends at the terminating right brace ( } )  Local variables of a function and function parameters have function scope (or local scope)  If a local variable in a function has the same name as a global variable, the global variable is “hidden” from the body of the function. © by Pearson Education, Inc. All Rights Reserved. 71 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 72 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 73 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 74 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 75 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 76 Revised by Dr. T. Tran for CSI3140

 JavaScript provides nine global functions as part of a Global object  This global object contains  all the global variables in the script  all the user-defined functions in the script  all the nine built-in global functions, some of which are listed in the following slide  You do not need to use the Global object directly; JavaScript references it for you © by Pearson Education, Inc. All Rights Reserved. 77 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 78 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 79 Revised by Dr. T. Tran for CSI3140

 A recursive function calls itself, either directly, or indirectly through another function.  A recursive function knows how to solve only the simplest case, or base case  If the function is called with a base case, it returns a result  If the function is called with a more complex problem, it divides the problem into two conceptual pieces—a piece that the function knows how to process (the base case) and a simpler or smaller version of the original problem.  The function invokes (calls) a fresh copy of itself to go to work on the smaller problem; this invocation is referred to as a recursive call, or the recursion step. © by Pearson Education, Inc. All Rights Reserved. 80 Revised by Dr. T. Tran for CSI3140

 The recursion step executes while the original call to the function is still open (i.e., it has not finished executing)  For recursion to eventually terminate, each time the function calls itself with a simpler version of the original problem, the sequence of smaller and smaller problems must converge on the base case  At that point, the function recognizes the base case, returns a result to the previous copy of the function, and a sequence of returns ensues up the line until the original function call eventually returns the final result to the caller © by Pearson Education, Inc. All Rights Reserved. 81 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 82 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 83 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 84 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 85 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 86 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 87 Revised by Dr. T. Tran for CSI3140

 Both iteration and recursion involve repetition  Iteration explicitly uses a repetition statement  Recursion achieves repetition through repeated function calls  Iteration and recursion each involve a termination test  Iteration terminates when the loop-continuation condition fails  Recursion terminates when a base case is recognized © by Pearson Education, Inc. All Rights Reserved. 88 Revised by Dr. T. Tran for CSI3140

 Iteration both with counter-controlled repetition and with recursion gradually approaches termination  Iteration keeps modifying a counter until the counter assumes a value that makes the loop-continuation condition fail  Recursion keeps producing simpler versions of the original problem until the base case is reached  Both iteration and recursion can occur infinitely:  An infinite loop occurs with iteration if the loop- continuation test never becomes false;  infinite recursion occurs if the recursion step does not reduce the problem each time via a sequence that converges on the base case or if the base case is incorrect. © by Pearson Education, Inc. All Rights Reserved. 89 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 90 Revised by Dr. T. Tran for CSI3140

© by Pearson Education, Inc. All Rights Reserved. 91 Revised by Dr. T. Tran for CSI3140