Download presentation
Presentation is loading. Please wait.
1
PROGRAM DESIGN CONCEPTS AND TECHNIQUES
5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 1
2
Objectives Use functions and subprocedures to modularize a program.
Divide a program into modules. Use parameters and return values to pass data between modules. Identify situations appropriate for using value parameters. Identify situations appropriate for using reference parameters. Choose the appropriate scope for a variable. Create a function. Use recursion to solve a programming problem. Describe overall design goals and program requirements. Use a data flow diagram to show how data flows between modules. Use an IPO chart to show how data flows between modules. Write algorithms and pseudocode to describe a program. Use pseudocode to describe a subprogram that uses parameters. 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 2
3
Benefits of Using Modules
Reusing a module Hiding code complexity Allowing multiple programmers to work on a project Ability to test at the module level 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 3
4
Data Flow Diagram Main module OriginalPrice DiscountRate OriginalPrice
Saleprice Saleprice Input data Compute results Output data 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 4
5
IPO Chart Input Processing Output OriginalPrice DiscountRate
Compute SalePrice SalePrice 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 5
6
Parameters and Arguments
Call OutputResults (OriginalPrice, DiscountRate, SalePrice) Subprogram OutputResults (OldPrice, Rate, NewPrice) 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 6
7
Value and Reference Parameters Example
Main Set Num1 = 1 Set Num2 = 2 Call Switch(Num1, Num2) Write Num1, “ “ , Num2 End Program Subprogram Switch(Number1, Number2 As Ref) Set Number1 = 2 Set Number2 = 1 End Subprogram 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 7
8
Variable Scope Main DECLARE Num1 Num1 = 4 Call DoSomething()
Write Num1 Subprogram DoSomething() Declare Num1 Declare Num2 Num1 = 3 Num2 = Num1 * 2 Write Num1, Num2 End Subprogram Subprogram DoSomething2() Declare Num2 Num2 = 2 Write Num1, Num2 End Subprogram 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 8
9
Variable Scope in VB.NET
Module Module1 Dim modLevelVar As Integer = 100 Sub Main() Dim subLevelVar As Integer = 1 If subLevelVar = 1 Then Dim strIfOnly As String = "within if only" System.Console.WriteLine(strIfOnly) End If System.Console.WriteLine(strIfOnly) modLevelVar = subLevelVar End Sub End Module 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 9
10
Variable Scope in Java public class ScopeTest { static void mod1(x)
int i = 5*x; System.out.println("value = " + i); } public static void main(String[] args) int x = 10; int i = x+5; //Here i = 15 if x < i int i = x; //Here i = 10 mod1(i); mod1(i); //Here i still = 15 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 10
11
Functions Main Declare Num As Real Set Num = Cube(10) Write Num
End Program Function Cube(X) As Real Set Cube = X^3 End Function 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 11
12
Recursion Function Power(X, N) As Real If N = 1 Then Set Power = X
Else Set Power = Power(X, N-1) * X End If End Function 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 12
13
Hierarchy Chart for a Grade Management Program
5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 13
14
Data Flow Diagram for a Grade Management Program
5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 14
15
Grades Management Program Pseudocode - Main
Declare Choice As Integer Display a welcome message Repeat Call SelectFromMenu(Choice) If Choice = 1 Then Call CreateGradeSheet End If If(Choice = 2 Or (Choice = 3) or Choice=4) then Call RetrieveGradeSheet(Choice) Until Choice = 0 End Program 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 15
16
Grades Management Program Pseudocode - SelectFromMenu
Subprogram SelectFromMenu(Choice As Ref) Repeat Write “0-Quit the program” Write “1-Create grade sheet” Write “2- Enter test scores” Write “3-Compute test averages” Write “4-Display grade sheet” Input Choice Until (Choice=Int(Choice) And (Choice>=0) And (Choice<=4) End Subprogram 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 16
17
Grades Management Program Pseudocode - CreateGradeSheet
Subprogram CreateGradeSheet Declare Name As String Open “GRADES” For Output As DataFile Write “Enter student name; enter * when done.” Input Name While Name<>”*” Write DataFile, Name, 0,0,0,0 End While Close DataFile End Subprogram 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 17
18
Grades Management Program Pseudocode - RetrieveGradeSheet
Subprogram RetrieveGradeSheet(Choice) Open “GRADES” For Input AS DataFile Declare Names[40], Averages[40], Scores[3,40] Set Count=0 While Not EOF(DataFile) Set Count=Count+1 Read DataFile, Names[Count], Scores[1, Count], Scores[2, Count], Scores[3, Count], Averages[Count] End While Select Case of Choice Case 2: Call EnterTestScores(Count, Names, Scores) Case 3: Call ComputeAverages(Count, Scores, Averages) Case 4: Call DisplayGradeSheet(Count, Names, Scores, Averages) End Case Close DataFile End Subprogram 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 18
19
Grades Management Program Pseudocode - EnterTestScores
Subprogram EnterTestScores(Count, Names, Scores As Ref) Declare TestNum, K As Integer Repeat Write “Enter the test number:” Input TestNum Until (TestNum=1) Or (TestNum=2) Or (TestNum=3) Write “When a name is displayed, enter test score.” For K=1 Step 1 To Count Write Names[K] Input Scores[TestNum, K] End For End Subprogram 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 19
20
Grades Management Program Pseudocode - ComputeAverages
Subprogram ComputeAverages(Count, Scores, Averages As Ref) Declare Sum, K as Integer For K=1 Step 1 To Count Set Sum=Scores[1,K] + Scores[2,K] +Scores[3,K] Set Averages[K] = Sum/3 End For End Subprogram 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 20
21
Grades Management Program Pseudocode - DisplayGradeSheet
Subprogram DisplayGradeSheet(Count, Names, Scores, Averages) Declare K As Integer For K=1 Step 1 To Count Write Names[K], Scores[1,K], Scores[2,K], Scores[3,K], Averages[K] End For End Subprogram 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 21
22
Summary In this unit, students learned:
The benefits of dividing a program into modules. The methods of designing a program, including: Data flow IPO How to pass data between modules: Parameters Return values How to determine variable scope Global Local How to select the best scope for a variable How to use recursion to solve a problem. 5/2/2019© 2006 ITT Educational Services Inc. Structured Programming: Unit 3 Slide 22
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.