SlideShare a Scribd company logo
1 of 48
Programming Logic and Design
Eighth Edition
Chapter 9
Advanced Modularization Techniques
Objectives
In this chapter, you will learn about:
• The parts of a method
• Methods with no parameters
• Methods that require parameters
• Methods that return a value
• Passing arrays to methods
• Overloading methods
• Using predefined methods
• Method design issues, including implementation hiding,
cohesion, and coupling
• Recursion
2Programming Logic and Design, Eighth Edition
The Parts of a Method
3Programming Logic and Design, Eighth Edition
• Method
– A program module that contains a series of statements
that carry out a task
– Invoke or call a method from another program or method
– Any program can contain an unlimited number of
methods
– Each method can be called an unlimited number of times
The Parts of a Method (continued)
4Programming Logic and Design, Eighth Edition
• Method must include
– Method header (also called the declaration or definition)
– Method body
• Contains the implementation (Statements that carry out the
tasks)
– Method return statement (Returns control to the calling
method)
• Variables and constants
– Local: declared in a method
– Global: known to all program modules
5Programming Logic and Design, Eighth Edition
Figure 9-1 A program that calculates
the user’s weight on the moon
Using Methods
with No
Parameters
Figure 9-2 Output of moon weight
calculator program
Using Methods with No
Parameters (continued)
6Programming Logic and Design, Eighth Edition
• When methods must share data
– Pass the data into and return the data out of methods
• When you call a method from a program, you must
know three things:
– Name of the called method
– Type of information to send to the method, if any
– Type of return data to expect from the method, if any
Creating Methods that Require
Parameters
7Programming Logic and Design, Eighth Edition
• Argument to the method
– Pass a data item into a method from a calling program
• Parameter to the method
– Method receives the data item
• To write the declaration for a method that can
receive a parameter, you must know:
– The type of the parameter
– The local name for the parameter
Creating Methods that Require
Parameters (continued)
8Programming Logic and Design, Eighth Edition
• Parameter list
– Types and names of parameters
• Signature
– Method’s name and parameter list
Creating Methods that Require
Parameters (continued)
9Programming Logic and Design, Eighth Edition
• Improve the moon weight program by making the
final output more user-friendly
• Several approaches
– Rewrite the program without including any methods
– Retain the displayInstructions() method, but
make the langCode variable global
– Retain the displayInstructions() method as is,
but add a section to the main program that also asks the
user for a preferred language
– Store the variable that holds the language code in the
main program
Creating Methods that Require
Parameters (continued)
10Programming Logic and Design, Eighth Edition
• Passed by value
– A copy of a value is sent to the method and stored in a
new memory location accessible to the method
• Each time a method executes, parameter variables
listed in the method header are redeclared
Creating Methods that Require
Multiple Parameters
11Programming Logic and Design, Eighth Edition
• Methods can require more than one parameter
– List the arguments within the method call, separated by
commas
– List a data type and local identifier for each parameter
within the method header’s parentheses
– Separate each declaration with a comma
– The data type must be repeated with each parameter
– Arguments sent are called actual parameters
– Variables that accept the parameters in the method are
called formal parameters
12Programming Logic and Design, Eighth Edition
Figure 9-7 A program that calls a computeTax() method that requires two parameters
Creating
Methods that
Require
Multiple
Parameters (continued)
Creating Methods that Return a
Value
13Programming Logic and Design, Eighth Edition
• A variable declared within a method ceases to exist
when the method ends
– Goes out of scope
• To retain a value that exists when a method ends,
return the value from the method back to the
calling method
• When a method returns a value, the method must
have a return type that matches the data type of
the value that is returned
Creating Methods that Return a
Value (continued)
14Programming Logic and Design, Eighth Edition
• Return type for a method
– Indicates the data type of the value that the method will
send back
– Can be any type
– Also called method’s type
– Listed in front of the method name when the method is
defined
• Method can also return nothing
– Return type void
– Void method
Creating Methods that Return a
Value (continued)
15Programming Logic and Design, Eighth Edition
• Example: num getHoursWorked()
– Returns a numeric value
• Usually, you want to use the returned value in the
calling method
– Not required
– Store in variable or use directly without storing
• output "Hours worked is ", getHoursWorked()
16Programming Logic and Design, Eighth Edition
Figure 9-8 A payroll program that calls a
method that returns a value
Figure 9-9 A program that uses a method’s
returned value without storing it
Creating Methods that Return a
Value (continued)
17Programming Logic and Design, Eighth Edition
Creating Methods that Return a
Value (continued)
• Technically, you are allowed to include multiple
return statements in a method
– It’s not recommended
– Violates structured logic
18Programming Logic and Design, Eighth Edition
Creating Methods that Return a
Value (continued)
Figure 9-10 Unstructured approach to returning one of several values
19Programming Logic and Design, Eighth Edition
Figure 9-11 Recommended, structured approach to returning one of several values
Creating Methods
that Return a
Value (continued)
20Programming Logic and Design, Eighth Edition
Creating Methods that Return a
Value (continued)
• To use a method, you should know:
– What the method does in general, but not necessarily
how it carries out tasks internally
– The method’s name
– The method’s required parameters, if any
– The method’s return type, so that you can use any
returned value appropriately
21Programming Logic and Design, Eighth Edition
• IPO chart
– A tool that identifies and categorizes each item in a
method by input, processing, and output
• A method that finds the smallest of three numeric
values
Figure 9-12 IPO chart for the method that finds the smallest of three numeric values
Using an IPO Chart
22Programming Logic and Design, Eighth Edition
• Many programmers create an IPO chart only for
specific methods in their programs
• Provide an overview of:
– Input to the method
– Processing steps that must occur
– Result
Using an IPO Chart (continued)
23Programming Logic and Design, Eighth Edition
• Pass a single array element to a method
– Same manner you would pass a variable or constant
• Pass an entire array as an argument
• Indicate that a method parameter must be an array
– Place square brackets after the data type in the method’s
parameter list
• Passed by
reference
– Changes you make to
array elements within the method are permanent
Passing an Array to a Method
Figure 9-45 Output of the
PassArrayElement program
24Programming Logic and Design, Eighth Edition
Figure 9-15 PassEntireArray program
Passing an
Array to a
Method (continued)
25Programming Logic and Design, Eighth Edition
Figure 9-15 PassEntireArray program (continued)
Passing an
Array to a
Method (continued)
26Programming Logic and Design, Eighth Edition
Figure 9-15 PassEntireArray
program (continued)
Figure 9-16 Output of the
PassEntireArray program
Passing an
Array to a
Method (continued)
Overloading Methods
27Programming Logic and Design, Eighth Edition
• Overloading
– Involves supplying diverse meanings for a single identifier
– Similar to English language—the word break can be
overloaded to mean:
• Break a window
• Break bread
• Break the bank
• Take a break
• Overload a method
– Write multiple methods with a shared name but different
parameter lists
28Programming Logic and Design, Eighth Edition
• Call an overloaded method
– Language translator understands which version of the
method to use based on the arguments used
• Polymorphism
– Ability of a method to act appropriately according to the
context
– Literally, polymorphism means “many forms”
Overloading Methods (continued)
29Programming Logic and Design, Eighth Edition
Figure 9-17 Two overloaded versions of the printBill() method
Overloading Methods (continued)
30Programming Logic and Design, Eighth Edition
Figure 9-18 Two additional overloaded versions of the printBill() method
Overloading Methods (continued)
31Programming Logic and Design, Eighth Edition
• Overloading methods is never required in a program
– Could create multiple methods with unique identifiers
• Advantage is provided to your method’s clients
– Those who use your methods need to remember just one
appropriate name for all related tasks
Overloading Methods (continued)
32Programming Logic and Design, Eighth Edition
• Ambiguous methods
– Situations in which the compiler cannot determine which
method to use
• Every time you call a method
– Compiler decides whether a suitable method exists
– If so, the method executes
– If not, you receive an error message
Avoiding Ambiguous Methods
33Programming Logic and Design, Eighth Edition
Figure 9-19 Program that contains ambiguous
method call
Avoiding
Ambiguous
Methods (continued)
Avoiding Ambiguous Methods (continued)
34Programming Logic and Design, Eighth Edition
• Overload method correctly
– Different parameter lists for methods with the same
name
• Ambiguous, not overloaded
– Methods with identical names that have identical
parameter lists but different return types
– Example
string aMethod(num x)
num aMethod(num y)
Using Predefined Methods
35Programming Logic and Design, Eighth Edition
• Modern programming languages contain many
methods that have already been written
• Sources
– Built-in methods
– Program team members
– Company-wide methods and standards
• Save time and effort
• Output methods
• Mathematical methods
Using Predefined Methods (continued)
36Programming Logic and Design, Eighth Edition
• To use predefined methods, you should know:
– What the method does in general
– Name
– Required parameters
– Return type
• You do not need to know:
– How method is implemented
Method Design Issues: Implementation
Hiding, Cohesion, and Coupling
37Programming Logic and Design, Eighth Edition
• Consider several program qualities
– Employ implementation hiding
• Clients don’ t need to understand internal mechanisms
– Strive to increase cohesion
– Strive to reduce coupling
Understanding Implementation
Hiding
38Programming Logic and Design, Eighth Edition
• Implementation hiding
– Encapsulation of method details
• When a program makes a request to a method, it
does not know the details of how the method is
executed
• A method that calls another must know:
– The name of the called method
– The type of information to send to the method
– The type of return data to expect from the method
39Programming Logic and Design, Eighth Edition
• Interface to the method
– The only part of a method with which the method’s client
interacts
• Substitute a new method implementation
– As long as the interface does not change, you do not
need to make changes in any methods that call the
altered method
• A hidden implementation is often called a black box
– You can examine what goes in and out but not how it
works
Understanding Implementation
Hiding (continued)
Increasing Cohesion
40Programming Logic and Design, Eighth Edition
• It is difficult to decide how much to put into a
method
• Cohesion
– How the internal statements of a method serve to
accomplish the method’s purpose
• Highly cohesive methods
– All the operations are related
– Functionally cohesive
– Usually more reliable than those that have low cohesion
Reducing Coupling
41Programming Logic and Design, Eighth Edition
• Coupling
– A measure of the strength of the connection between
two program methods
• Tight coupling
– Occurs when methods excessively depend on each other
– Makes programs more prone to errors
– Methods have access to the same globally defined
variables
• Loose coupling
– Occurs when methods do not depend on others
– Data is passed from one method to another
Understanding Recursion
42Programming Logic and Design, Eighth Edition
• Recursion
– Occurs when a method is defined in terms of itself
• Recursive method
– Calls itself
• Every time you call a method
– The address to which the program should return is stored
in a memory location called the stack
– When a method ends
• Address is retrieved from the stack
• Program returns to the location from which the method call was
made
Understanding Recursion (continued)
43Programming Logic and Design, Eighth Edition
Figure 9-20 A program
that calls a recursive
method
Figure 9-21 Output of program in Figure 9-20
Understanding Recursion (continued)
44Programming Logic and Design, Eighth Edition
• The stack holds the address where the program
should return at the completion of the method
– Has a finite size
– Will overflow if there are too many recursive calls
• Must provide a way for the recursion to stop
eventually
Understanding Recursion (continued)
45Programming Logic and Design, Eighth Edition
Figure 9-22 Program that uses a recursive
cumulativeSum() method
Figure 9-23 Output of program in
Figure 9-22
Understanding Recursion (continued)
46Programming Logic and Design, Eighth Edition
Figure 9-24 Nonrecursive program that computes cumulative sums
Summary
47Programming Logic and Design, Eighth Edition
• A method is a program module that contains a
series of statements that carry out a task
– Must include a header body and return statement
– A program can contain an unlimited number of methods
– Methods can be called an unlimited number of times
• Data passed to a method is called an argument
• Data received by a method is called a parameter
• Returned values must have a return type
Summary (continued)
48Programming Logic and Design, Eighth Edition
• Single array elements or entire arrays can be passed
• Overloading allows you to create methods with
different parameter lists under one name
• All modern languages contain prewritten methods
• Implementation is hidden in well-written methods
• Recursion occurs when methods call themselves;
logic becomes difficult to follow and hard to debug

More Related Content

What's hot

CIS110 Computer Programming Design Chapter (1)
CIS110 Computer Programming Design Chapter  (1)CIS110 Computer Programming Design Chapter  (1)
CIS110 Computer Programming Design Chapter (1)Dr. Ahmed Al Zaidy
 
CIS110 Computer Programming Design Chapter (4)
CIS110 Computer Programming Design Chapter  (4)CIS110 Computer Programming Design Chapter  (4)
CIS110 Computer Programming Design Chapter (4)Dr. Ahmed Al Zaidy
 
CIS110 Computer Programming Design Chapter (7)
CIS110 Computer Programming Design Chapter  (7)CIS110 Computer Programming Design Chapter  (7)
CIS110 Computer Programming Design Chapter (7)Dr. Ahmed Al Zaidy
 
CIS110 Computer Programming Design Chapter (14)
CIS110 Computer Programming Design Chapter  (14)CIS110 Computer Programming Design Chapter  (14)
CIS110 Computer Programming Design Chapter (14)Dr. Ahmed Al Zaidy
 
MatLab Basic Tutorial On Plotting
MatLab Basic Tutorial On PlottingMatLab Basic Tutorial On Plotting
MatLab Basic Tutorial On PlottingMOHDRAFIQ22
 
Introduction to matlab lecture 1 of 4
Introduction to matlab lecture 1 of 4Introduction to matlab lecture 1 of 4
Introduction to matlab lecture 1 of 4Randa Elanwar
 
Matlab-Data types and operators
Matlab-Data types and operatorsMatlab-Data types and operators
Matlab-Data types and operatorsLuckshay Batra
 
MATLAB Basics-Part1
MATLAB Basics-Part1MATLAB Basics-Part1
MATLAB Basics-Part1Elaf A.Saeed
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlabTarun Gehlot
 
Basic matlab and matrix
Basic matlab and matrixBasic matlab and matrix
Basic matlab and matrixSaidur Rahman
 
Matlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processingMatlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processingDr. Manjunatha. P
 
Advanced MATLAB Tutorial for Engineers & Scientists
Advanced MATLAB Tutorial for Engineers & ScientistsAdvanced MATLAB Tutorial for Engineers & Scientists
Advanced MATLAB Tutorial for Engineers & ScientistsRay Phan
 

What's hot (18)

CIS110 Computer Programming Design Chapter (1)
CIS110 Computer Programming Design Chapter  (1)CIS110 Computer Programming Design Chapter  (1)
CIS110 Computer Programming Design Chapter (1)
 
CIS110 Computer Programming Design Chapter (4)
CIS110 Computer Programming Design Chapter  (4)CIS110 Computer Programming Design Chapter  (4)
CIS110 Computer Programming Design Chapter (4)
 
CIS110 Computer Programming Design Chapter (7)
CIS110 Computer Programming Design Chapter  (7)CIS110 Computer Programming Design Chapter  (7)
CIS110 Computer Programming Design Chapter (7)
 
CIS110 Computer Programming Design Chapter (14)
CIS110 Computer Programming Design Chapter  (14)CIS110 Computer Programming Design Chapter  (14)
CIS110 Computer Programming Design Chapter (14)
 
Unit i
Unit iUnit i
Unit i
 
Lesson 4.2 5th and 6th step
Lesson 4.2 5th and 6th stepLesson 4.2 5th and 6th step
Lesson 4.2 5th and 6th step
 
Lesson 1 introduction to programming
Lesson 1 introduction to programmingLesson 1 introduction to programming
Lesson 1 introduction to programming
 
MatLab Basic Tutorial On Plotting
MatLab Basic Tutorial On PlottingMatLab Basic Tutorial On Plotting
MatLab Basic Tutorial On Plotting
 
Lesson 3.2 data types for memory location
Lesson 3.2 data types for memory locationLesson 3.2 data types for memory location
Lesson 3.2 data types for memory location
 
Lesson 4.1 completing the problem solving process
Lesson 4.1 completing the problem solving processLesson 4.1 completing the problem solving process
Lesson 4.1 completing the problem solving process
 
Introduction to matlab lecture 1 of 4
Introduction to matlab lecture 1 of 4Introduction to matlab lecture 1 of 4
Introduction to matlab lecture 1 of 4
 
Matlab-Data types and operators
Matlab-Data types and operatorsMatlab-Data types and operators
Matlab-Data types and operators
 
Matlab introduction
Matlab introductionMatlab introduction
Matlab introduction
 
MATLAB Basics-Part1
MATLAB Basics-Part1MATLAB Basics-Part1
MATLAB Basics-Part1
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlab
 
Basic matlab and matrix
Basic matlab and matrixBasic matlab and matrix
Basic matlab and matrix
 
Matlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processingMatlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processing
 
Advanced MATLAB Tutorial for Engineers & Scientists
Advanced MATLAB Tutorial for Engineers & ScientistsAdvanced MATLAB Tutorial for Engineers & Scientists
Advanced MATLAB Tutorial for Engineers & Scientists
 

Similar to Intro to Programming: Modularity

Csc153 chapter 07
Csc153 chapter 07Csc153 chapter 07
Csc153 chapter 07PCC
 
UoN-Lec_12_Control_Structure.pdf
UoN-Lec_12_Control_Structure.pdfUoN-Lec_12_Control_Structure.pdf
UoN-Lec_12_Control_Structure.pdfmadihamaqbool6
 
Csc153 chapter 08
Csc153 chapter 08Csc153 chapter 08
Csc153 chapter 08PCC
 
chapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdfchapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdfBernardVelasco1
 
Functions ppt ch06
Functions ppt ch06Functions ppt ch06
Functions ppt ch06Terry Yoast
 
9781285852744 ppt ch12
9781285852744 ppt ch129781285852744 ppt ch12
9781285852744 ppt ch12Terry Yoast
 
Logic Formulation 2
Logic Formulation 2Logic Formulation 2
Logic Formulation 2deathful
 
Java method present by showrov ahamed
Java method present by showrov ahamedJava method present by showrov ahamed
Java method present by showrov ahamedMd Showrov Ahmed
 
14method in c#
14method in c#14method in c#
14method in c#Sireesh K
 
Fundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxFundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxVigneshkumar Ponnusamy
 
Using formal methods in Industrial Software Development
Using formal methods in Industrial Software DevelopmentUsing formal methods in Industrial Software Development
Using formal methods in Industrial Software DevelopmentRobert van Lieshout
 
Object oriented programming 12 programming steps in cpp and example
Object oriented programming 12 programming steps in cpp and exampleObject oriented programming 12 programming steps in cpp and example
Object oriented programming 12 programming steps in cpp and exampleVaibhav Khanna
 
test.pptx
test.pptxtest.pptx
test.pptxStacia7
 
Code and Design Smells. Are They a Real Threat?
Code and Design Smells. Are They a Real Threat?Code and Design Smells. Are They a Real Threat?
Code and Design Smells. Are They a Real Threat?GlobalLogic Ukraine
 
First draft programming c++
First draft programming c++First draft programming c++
First draft programming c++藝輝 王
 
Week05
Week05Week05
Week05hccit
 

Similar to Intro to Programming: Modularity (20)

Csc153 chapter 07
Csc153 chapter 07Csc153 chapter 07
Csc153 chapter 07
 
UoN-Lec_12_Control_Structure.pdf
UoN-Lec_12_Control_Structure.pdfUoN-Lec_12_Control_Structure.pdf
UoN-Lec_12_Control_Structure.pdf
 
Csc153 chapter 08
Csc153 chapter 08Csc153 chapter 08
Csc153 chapter 08
 
chapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdfchapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdf
 
Cs111 ch01 v4
Cs111 ch01 v4Cs111 ch01 v4
Cs111 ch01 v4
 
09. Methods
09. Methods09. Methods
09. Methods
 
I07 Simulation
I07 SimulationI07 Simulation
I07 Simulation
 
I07 Simulation
I07 SimulationI07 Simulation
I07 Simulation
 
Functions ppt ch06
Functions ppt ch06Functions ppt ch06
Functions ppt ch06
 
9781285852744 ppt ch12
9781285852744 ppt ch129781285852744 ppt ch12
9781285852744 ppt ch12
 
Logic Formulation 2
Logic Formulation 2Logic Formulation 2
Logic Formulation 2
 
Java method present by showrov ahamed
Java method present by showrov ahamedJava method present by showrov ahamed
Java method present by showrov ahamed
 
14method in c#
14method in c#14method in c#
14method in c#
 
Fundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxFundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptx
 
Using formal methods in Industrial Software Development
Using formal methods in Industrial Software DevelopmentUsing formal methods in Industrial Software Development
Using formal methods in Industrial Software Development
 
Object oriented programming 12 programming steps in cpp and example
Object oriented programming 12 programming steps in cpp and exampleObject oriented programming 12 programming steps in cpp and example
Object oriented programming 12 programming steps in cpp and example
 
test.pptx
test.pptxtest.pptx
test.pptx
 
Code and Design Smells. Are They a Real Threat?
Code and Design Smells. Are They a Real Threat?Code and Design Smells. Are They a Real Threat?
Code and Design Smells. Are They a Real Threat?
 
First draft programming c++
First draft programming c++First draft programming c++
First draft programming c++
 
Week05
Week05Week05
Week05
 

More from Nicole Ryan

Testing and Improving Performance
Testing and Improving PerformanceTesting and Improving Performance
Testing and Improving PerformanceNicole Ryan
 
Optimizing a website for search engines
Optimizing a website for search enginesOptimizing a website for search engines
Optimizing a website for search enginesNicole Ryan
 
Javascript programming using the document object model
Javascript programming using the document object modelJavascript programming using the document object model
Javascript programming using the document object modelNicole Ryan
 
Working with Video and Audio
Working with Video and AudioWorking with Video and Audio
Working with Video and AudioNicole Ryan
 
Working with Images
Working with ImagesWorking with Images
Working with ImagesNicole Ryan
 
Python Dictionaries and Sets
Python Dictionaries and SetsPython Dictionaries and Sets
Python Dictionaries and SetsNicole Ryan
 
Creating Visual Effects and Animation
Creating Visual Effects and AnimationCreating Visual Effects and Animation
Creating Visual Effects and AnimationNicole Ryan
 
Creating and Processing Web Forms
Creating and Processing Web FormsCreating and Processing Web Forms
Creating and Processing Web FormsNicole Ryan
 
Organizing Content with Lists and Tables
Organizing Content with Lists and TablesOrganizing Content with Lists and Tables
Organizing Content with Lists and TablesNicole Ryan
 
Social media and your website
Social media and your websiteSocial media and your website
Social media and your websiteNicole Ryan
 
Working with Links
Working with LinksWorking with Links
Working with LinksNicole Ryan
 
Formatting text with CSS
Formatting text with CSSFormatting text with CSS
Formatting text with CSSNicole Ryan
 
Laying Out Elements with CSS
Laying Out Elements with CSSLaying Out Elements with CSS
Laying Out Elements with CSSNicole Ryan
 
Getting Started with CSS
Getting Started with CSSGetting Started with CSS
Getting Started with CSSNicole Ryan
 
Structure Web Content
Structure Web ContentStructure Web Content
Structure Web ContentNicole Ryan
 
Getting Started with your Website
Getting Started with your WebsiteGetting Started with your Website
Getting Started with your WebsiteNicole Ryan
 
Programming Logic and Design: Arrays
Programming Logic and Design: ArraysProgramming Logic and Design: Arrays
Programming Logic and Design: ArraysNicole Ryan
 
Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environmentNicole Ryan
 
Dynamic vs static
Dynamic vs staticDynamic vs static
Dynamic vs staticNicole Ryan
 

More from Nicole Ryan (20)

Testing and Improving Performance
Testing and Improving PerformanceTesting and Improving Performance
Testing and Improving Performance
 
Optimizing a website for search engines
Optimizing a website for search enginesOptimizing a website for search engines
Optimizing a website for search engines
 
Inheritance
InheritanceInheritance
Inheritance
 
Javascript programming using the document object model
Javascript programming using the document object modelJavascript programming using the document object model
Javascript programming using the document object model
 
Working with Video and Audio
Working with Video and AudioWorking with Video and Audio
Working with Video and Audio
 
Working with Images
Working with ImagesWorking with Images
Working with Images
 
Python Dictionaries and Sets
Python Dictionaries and SetsPython Dictionaries and Sets
Python Dictionaries and Sets
 
Creating Visual Effects and Animation
Creating Visual Effects and AnimationCreating Visual Effects and Animation
Creating Visual Effects and Animation
 
Creating and Processing Web Forms
Creating and Processing Web FormsCreating and Processing Web Forms
Creating and Processing Web Forms
 
Organizing Content with Lists and Tables
Organizing Content with Lists and TablesOrganizing Content with Lists and Tables
Organizing Content with Lists and Tables
 
Social media and your website
Social media and your websiteSocial media and your website
Social media and your website
 
Working with Links
Working with LinksWorking with Links
Working with Links
 
Formatting text with CSS
Formatting text with CSSFormatting text with CSS
Formatting text with CSS
 
Laying Out Elements with CSS
Laying Out Elements with CSSLaying Out Elements with CSS
Laying Out Elements with CSS
 
Getting Started with CSS
Getting Started with CSSGetting Started with CSS
Getting Started with CSS
 
Structure Web Content
Structure Web ContentStructure Web Content
Structure Web Content
 
Getting Started with your Website
Getting Started with your WebsiteGetting Started with your Website
Getting Started with your Website
 
Programming Logic and Design: Arrays
Programming Logic and Design: ArraysProgramming Logic and Design: Arrays
Programming Logic and Design: Arrays
 
Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environment
 
Dynamic vs static
Dynamic vs staticDynamic vs static
Dynamic vs static
 

Recently uploaded

Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 

Recently uploaded (20)

Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 

Intro to Programming: Modularity

  • 1. Programming Logic and Design Eighth Edition Chapter 9 Advanced Modularization Techniques
  • 2. Objectives In this chapter, you will learn about: • The parts of a method • Methods with no parameters • Methods that require parameters • Methods that return a value • Passing arrays to methods • Overloading methods • Using predefined methods • Method design issues, including implementation hiding, cohesion, and coupling • Recursion 2Programming Logic and Design, Eighth Edition
  • 3. The Parts of a Method 3Programming Logic and Design, Eighth Edition • Method – A program module that contains a series of statements that carry out a task – Invoke or call a method from another program or method – Any program can contain an unlimited number of methods – Each method can be called an unlimited number of times
  • 4. The Parts of a Method (continued) 4Programming Logic and Design, Eighth Edition • Method must include – Method header (also called the declaration or definition) – Method body • Contains the implementation (Statements that carry out the tasks) – Method return statement (Returns control to the calling method) • Variables and constants – Local: declared in a method – Global: known to all program modules
  • 5. 5Programming Logic and Design, Eighth Edition Figure 9-1 A program that calculates the user’s weight on the moon Using Methods with No Parameters Figure 9-2 Output of moon weight calculator program
  • 6. Using Methods with No Parameters (continued) 6Programming Logic and Design, Eighth Edition • When methods must share data – Pass the data into and return the data out of methods • When you call a method from a program, you must know three things: – Name of the called method – Type of information to send to the method, if any – Type of return data to expect from the method, if any
  • 7. Creating Methods that Require Parameters 7Programming Logic and Design, Eighth Edition • Argument to the method – Pass a data item into a method from a calling program • Parameter to the method – Method receives the data item • To write the declaration for a method that can receive a parameter, you must know: – The type of the parameter – The local name for the parameter
  • 8. Creating Methods that Require Parameters (continued) 8Programming Logic and Design, Eighth Edition • Parameter list – Types and names of parameters • Signature – Method’s name and parameter list
  • 9. Creating Methods that Require Parameters (continued) 9Programming Logic and Design, Eighth Edition • Improve the moon weight program by making the final output more user-friendly • Several approaches – Rewrite the program without including any methods – Retain the displayInstructions() method, but make the langCode variable global – Retain the displayInstructions() method as is, but add a section to the main program that also asks the user for a preferred language – Store the variable that holds the language code in the main program
  • 10. Creating Methods that Require Parameters (continued) 10Programming Logic and Design, Eighth Edition • Passed by value – A copy of a value is sent to the method and stored in a new memory location accessible to the method • Each time a method executes, parameter variables listed in the method header are redeclared
  • 11. Creating Methods that Require Multiple Parameters 11Programming Logic and Design, Eighth Edition • Methods can require more than one parameter – List the arguments within the method call, separated by commas – List a data type and local identifier for each parameter within the method header’s parentheses – Separate each declaration with a comma – The data type must be repeated with each parameter – Arguments sent are called actual parameters – Variables that accept the parameters in the method are called formal parameters
  • 12. 12Programming Logic and Design, Eighth Edition Figure 9-7 A program that calls a computeTax() method that requires two parameters Creating Methods that Require Multiple Parameters (continued)
  • 13. Creating Methods that Return a Value 13Programming Logic and Design, Eighth Edition • A variable declared within a method ceases to exist when the method ends – Goes out of scope • To retain a value that exists when a method ends, return the value from the method back to the calling method • When a method returns a value, the method must have a return type that matches the data type of the value that is returned
  • 14. Creating Methods that Return a Value (continued) 14Programming Logic and Design, Eighth Edition • Return type for a method – Indicates the data type of the value that the method will send back – Can be any type – Also called method’s type – Listed in front of the method name when the method is defined • Method can also return nothing – Return type void – Void method
  • 15. Creating Methods that Return a Value (continued) 15Programming Logic and Design, Eighth Edition • Example: num getHoursWorked() – Returns a numeric value • Usually, you want to use the returned value in the calling method – Not required – Store in variable or use directly without storing • output "Hours worked is ", getHoursWorked()
  • 16. 16Programming Logic and Design, Eighth Edition Figure 9-8 A payroll program that calls a method that returns a value Figure 9-9 A program that uses a method’s returned value without storing it Creating Methods that Return a Value (continued)
  • 17. 17Programming Logic and Design, Eighth Edition Creating Methods that Return a Value (continued) • Technically, you are allowed to include multiple return statements in a method – It’s not recommended – Violates structured logic
  • 18. 18Programming Logic and Design, Eighth Edition Creating Methods that Return a Value (continued) Figure 9-10 Unstructured approach to returning one of several values
  • 19. 19Programming Logic and Design, Eighth Edition Figure 9-11 Recommended, structured approach to returning one of several values Creating Methods that Return a Value (continued)
  • 20. 20Programming Logic and Design, Eighth Edition Creating Methods that Return a Value (continued) • To use a method, you should know: – What the method does in general, but not necessarily how it carries out tasks internally – The method’s name – The method’s required parameters, if any – The method’s return type, so that you can use any returned value appropriately
  • 21. 21Programming Logic and Design, Eighth Edition • IPO chart – A tool that identifies and categorizes each item in a method by input, processing, and output • A method that finds the smallest of three numeric values Figure 9-12 IPO chart for the method that finds the smallest of three numeric values Using an IPO Chart
  • 22. 22Programming Logic and Design, Eighth Edition • Many programmers create an IPO chart only for specific methods in their programs • Provide an overview of: – Input to the method – Processing steps that must occur – Result Using an IPO Chart (continued)
  • 23. 23Programming Logic and Design, Eighth Edition • Pass a single array element to a method – Same manner you would pass a variable or constant • Pass an entire array as an argument • Indicate that a method parameter must be an array – Place square brackets after the data type in the method’s parameter list • Passed by reference – Changes you make to array elements within the method are permanent Passing an Array to a Method Figure 9-45 Output of the PassArrayElement program
  • 24. 24Programming Logic and Design, Eighth Edition Figure 9-15 PassEntireArray program Passing an Array to a Method (continued)
  • 25. 25Programming Logic and Design, Eighth Edition Figure 9-15 PassEntireArray program (continued) Passing an Array to a Method (continued)
  • 26. 26Programming Logic and Design, Eighth Edition Figure 9-15 PassEntireArray program (continued) Figure 9-16 Output of the PassEntireArray program Passing an Array to a Method (continued)
  • 27. Overloading Methods 27Programming Logic and Design, Eighth Edition • Overloading – Involves supplying diverse meanings for a single identifier – Similar to English language—the word break can be overloaded to mean: • Break a window • Break bread • Break the bank • Take a break • Overload a method – Write multiple methods with a shared name but different parameter lists
  • 28. 28Programming Logic and Design, Eighth Edition • Call an overloaded method – Language translator understands which version of the method to use based on the arguments used • Polymorphism – Ability of a method to act appropriately according to the context – Literally, polymorphism means “many forms” Overloading Methods (continued)
  • 29. 29Programming Logic and Design, Eighth Edition Figure 9-17 Two overloaded versions of the printBill() method Overloading Methods (continued)
  • 30. 30Programming Logic and Design, Eighth Edition Figure 9-18 Two additional overloaded versions of the printBill() method Overloading Methods (continued)
  • 31. 31Programming Logic and Design, Eighth Edition • Overloading methods is never required in a program – Could create multiple methods with unique identifiers • Advantage is provided to your method’s clients – Those who use your methods need to remember just one appropriate name for all related tasks Overloading Methods (continued)
  • 32. 32Programming Logic and Design, Eighth Edition • Ambiguous methods – Situations in which the compiler cannot determine which method to use • Every time you call a method – Compiler decides whether a suitable method exists – If so, the method executes – If not, you receive an error message Avoiding Ambiguous Methods
  • 33. 33Programming Logic and Design, Eighth Edition Figure 9-19 Program that contains ambiguous method call Avoiding Ambiguous Methods (continued)
  • 34. Avoiding Ambiguous Methods (continued) 34Programming Logic and Design, Eighth Edition • Overload method correctly – Different parameter lists for methods with the same name • Ambiguous, not overloaded – Methods with identical names that have identical parameter lists but different return types – Example string aMethod(num x) num aMethod(num y)
  • 35. Using Predefined Methods 35Programming Logic and Design, Eighth Edition • Modern programming languages contain many methods that have already been written • Sources – Built-in methods – Program team members – Company-wide methods and standards • Save time and effort • Output methods • Mathematical methods
  • 36. Using Predefined Methods (continued) 36Programming Logic and Design, Eighth Edition • To use predefined methods, you should know: – What the method does in general – Name – Required parameters – Return type • You do not need to know: – How method is implemented
  • 37. Method Design Issues: Implementation Hiding, Cohesion, and Coupling 37Programming Logic and Design, Eighth Edition • Consider several program qualities – Employ implementation hiding • Clients don’ t need to understand internal mechanisms – Strive to increase cohesion – Strive to reduce coupling
  • 38. Understanding Implementation Hiding 38Programming Logic and Design, Eighth Edition • Implementation hiding – Encapsulation of method details • When a program makes a request to a method, it does not know the details of how the method is executed • A method that calls another must know: – The name of the called method – The type of information to send to the method – The type of return data to expect from the method
  • 39. 39Programming Logic and Design, Eighth Edition • Interface to the method – The only part of a method with which the method’s client interacts • Substitute a new method implementation – As long as the interface does not change, you do not need to make changes in any methods that call the altered method • A hidden implementation is often called a black box – You can examine what goes in and out but not how it works Understanding Implementation Hiding (continued)
  • 40. Increasing Cohesion 40Programming Logic and Design, Eighth Edition • It is difficult to decide how much to put into a method • Cohesion – How the internal statements of a method serve to accomplish the method’s purpose • Highly cohesive methods – All the operations are related – Functionally cohesive – Usually more reliable than those that have low cohesion
  • 41. Reducing Coupling 41Programming Logic and Design, Eighth Edition • Coupling – A measure of the strength of the connection between two program methods • Tight coupling – Occurs when methods excessively depend on each other – Makes programs more prone to errors – Methods have access to the same globally defined variables • Loose coupling – Occurs when methods do not depend on others – Data is passed from one method to another
  • 42. Understanding Recursion 42Programming Logic and Design, Eighth Edition • Recursion – Occurs when a method is defined in terms of itself • Recursive method – Calls itself • Every time you call a method – The address to which the program should return is stored in a memory location called the stack – When a method ends • Address is retrieved from the stack • Program returns to the location from which the method call was made
  • 43. Understanding Recursion (continued) 43Programming Logic and Design, Eighth Edition Figure 9-20 A program that calls a recursive method Figure 9-21 Output of program in Figure 9-20
  • 44. Understanding Recursion (continued) 44Programming Logic and Design, Eighth Edition • The stack holds the address where the program should return at the completion of the method – Has a finite size – Will overflow if there are too many recursive calls • Must provide a way for the recursion to stop eventually
  • 45. Understanding Recursion (continued) 45Programming Logic and Design, Eighth Edition Figure 9-22 Program that uses a recursive cumulativeSum() method Figure 9-23 Output of program in Figure 9-22
  • 46. Understanding Recursion (continued) 46Programming Logic and Design, Eighth Edition Figure 9-24 Nonrecursive program that computes cumulative sums
  • 47. Summary 47Programming Logic and Design, Eighth Edition • A method is a program module that contains a series of statements that carry out a task – Must include a header body and return statement – A program can contain an unlimited number of methods – Methods can be called an unlimited number of times • Data passed to a method is called an argument • Data received by a method is called a parameter • Returned values must have a return type
  • 48. Summary (continued) 48Programming Logic and Design, Eighth Edition • Single array elements or entire arrays can be passed • Overloading allows you to create methods with different parameter lists under one name • All modern languages contain prewritten methods • Implementation is hidden in well-written methods • Recursion occurs when methods call themselves; logic becomes difficult to follow and hard to debug