Chapter 3 Developing a Program PRELUDE TO PROGRAMMING

  • Slides: 35
Download presentation
Chapter 3 Developing a Program PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Chapter 3 Developing a Program PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

3. 1 The Program Development Cycle Problem solving principles ◦ Completely understand the problem

3. 1 The Program Development Cycle Problem solving principles ◦ Completely understand the problem ◦ Devise a plan to solve it ◦ Carry out the plan ◦ Review the results Writing a program 1) Analyze the problem 2) Design the program 3) Code the program 4) Test the program PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

1. Analyze the problem Identify desired results (output) Determine input needed to produce those

1. Analyze the problem Identify desired results (output) Determine input needed to produce those results Example: Create a program to generate 6 numbers to play the lottery ◦ Is 7, 7, 7, 7 ok? ◦ Is -3, 0, 8, 9, 689 ok? ◦ Is 1, 2, 6, 47. 98765, 88, 93. 45 ok? ◦ These are all 6 numbers but we see we must be more specific ◦ Desired results: 6 different positive integers within the range of 1 to 40 PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

2. Design the program Create a detailed description of program ◦ Use charts, models,

2. Design the program Create a detailed description of program ◦ Use charts, models, or ordinary language (pseudocode) Identify algorithms needed ◦ Algorithm: a step-by-step method to solve a problem or complete a task Algorithms must be: ◦ ◦ Well defined Well ordered Must produce some result Must terminate in a finite time PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

3. Code the program Translate charts, models, pseudocode, or ordinary language into program code

3. Code the program Translate charts, models, pseudocode, or ordinary language into program code Add statements to document what the code does ◦ Internal documenation ◦ External documentation Each programming language uses its specific syntax PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Syntax Correct syntax for telling your friend where you put a cheese sandwich is:

Syntax Correct syntax for telling your friend where you put a cheese sandwich is: “I have put it on the table. ” Incorrect use of English syntax to say: “I have it on the table put. ” All the right words are there, but without proper syntax, the sentence is gibberish in English. But translated word for word, the second sentence is correct syntax in German. PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

4. Test the program In analysis phase: continually ask questions ◦ Did I interpret

4. Test the program In analysis phase: continually ask questions ◦ Did I interpret data correctly? ◦ Does program fulfill requirements? ◦ Are my formulas or procedures correct? Etc… In design phase: use desk-checking to walk through the program In coding phase: software will alert you to errors in syntax but not in the logic of the program Finally, test your program with as many sets of test data as possible ◦ Use good data, bad data, data you know the answers for, etc. PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Additional Steps in the Cycle o Create an outline of the program so that

Additional Steps in the Cycle o Create an outline of the program so that it is apparent what major tasks and subtasks have to be accomplished and the relationships among these tasks o Describe in detail how each of these tasks is to be carried out To put a commercial program (produced by a software publishing company) you may need to: ◦ Create a user’s guide ◦ to help users can understand the intricacies of the program ◦ Create help files ◦ installed with the software for users to get on-screen help ◦ Train employees to provide telephone or web-based customer support ◦ Duplicate disks and accompanying materials for distribution ◦ Advertise the program to attract buyers PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Program development is a process Ø Program development is a cyclical process that often

Program development is a process Ø Program development is a cyclical process that often requires returning to earlier steps and, with complex programs, may take many months ØThe design process may uncover flaws in the analysis ØCoding may find problems leading to modifications or additions to the design ØTesting inevitably uncovers problems that require returning to previous phases PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

The Sale Price Example A local department store wants to develop a program which,

The Sale Price Example A local department store wants to develop a program which, when given an item’s original price and the percentage it is discounted, will compute the sale price, with sales tax. Output required: name of item, discounted price, amount of sales tax, total price Variables needed: Item. Name, Sale. Price, Tax, Total. Price Input required: name of item, original price, percent discounted More variables: Original. Price, Discount. Rate Formulas required: New variable needed: Amount. Saved Sale. Price = Original. Price – Amount. Saved = Original. Price * (Discount. Rate/100) Tax = Sale. Price *. 065 Total. Price = Sale. Price + Tax PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Design: Input Processing Output Input variables: Perform Calculations (Process) Computations: Output Display: Item. Name

Design: Input Processing Output Input variables: Perform Calculations (Process) Computations: Output Display: Item. Name Amount. Saved = Original. Price * Discount. Rate/100 Total. Price Discount. Rate Sale. Price = Original. Price – Amount. Saved Item. Name Original. Price Tax = Sale. Price *. 065 Total. Price = Sale. Price + Tax PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE Tax Sale. Price

3. 2 Program Design Modular Programming To begin designing a program: identify the major

3. 2 Program Design Modular Programming To begin designing a program: identify the major tasks the program must accomplish. Each of these tasks becomes a program module. ◦ if needed, break each of these fundamental “high-level” tasks into submodules ◦ Some submodules might be divided into submodules of their own ◦ this process can be continued as long as necessary ◦ Identifying the tasks and subtasks is called modular programming PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Using Modules and Submodules Ø A module performs a single task. Ø A module

Using Modules and Submodules Ø A module performs a single task. Ø A module is self-contained and independent of other modules. Ø A module is relatively short. Ideally, statements should not exceed one page. Benefits of Modular Programming o program is easier to read o easier to design, code, and test the program one module at a time o different program modules can be designed and/or coded by different programmers o a single module may be used in more than one place in the program o modules that perform common programming tasks can be used in more than one program PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Pseudocode: uses short, English-like phrases to describe the outline of a program Example: pseudocode

Pseudocode: uses short, English-like phrases to describe the outline of a program Example: pseudocode for the Sale Price Program with modules: Input Data module Prompt for Item. Name, Original. Price, Discount. Rate Input Item. Name, Original. Price, Discount. Rate Perform Calculations module Set Amount. Saved = Original. Price * (Discount. Rate/100) Set Sale. Price = Original. Price – Amount. Saved Set Tax = Sale. Price *. 065 Set Total. Price = Sale. Price + Tax Output Results module Write Item. Name Write Original. Price Write Discount. Rate Write Sale. Price Write Tax Write Total. Price PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Refined Pseudocode for the Sale Price Program Input Data module Write “What is the

Refined Pseudocode for the Sale Price Program Input Data module Write “What is the item’s name? ” Input Item. Name Write “What is its price and the percentage discounted? ” Input Original. Price Input Discount. Rate Perform Calculations module Set Amount. Saved = Original. Price * (Discount. Rate/100) Set Sale. Price = Original. Price – Amount. Saved Set Tax = Sale. Price *. 065 Set Total. Price = Sale. Price + Tax Output Results module Write “The item is: “ + Item. Name Write “Pre-sale price was: “ + Original. Price Write “Percentage discounted was: “ + Discount. Rate + “%” Write “Sale price: “ + Sale. Price Write “Sales tax: “ + Tax Write “Total: $” + Total. Price PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Calling Modules A call statement causes a submodule to be executed. After a call

Calling Modules A call statement causes a submodule to be executed. After a call statement, program control is transferred to the first line of the called module. After all statements in the submodule have been executed, control returns to the line of code immediately below the call statement. PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

The Main Module Ø The main module is where program execution begins and normally

The Main Module Ø The main module is where program execution begins and normally ends. Ø The main module is not a submodule of another. Ø It is the parent module of the program’s highest-level modules. Ø The highest-level modules are called into action by the main module. In the Sale Price Program, we add a Main module to call others: Main module Call Input Data module Call Perform Calculations module Call Output Results module PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Format Output o Include information about what the output means If a program calculates

Format Output o Include information about what the output means If a program calculates the temperature converted from Fahrenheit to Celsius, the following output is confusing: But the following output makes more sense: PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Hierarchy Charts o Like an organization chart o Shows position of modules in the

Hierarchy Charts o Like an organization chart o Shows position of modules in the program o Depicts what modules exist and how they are related o Large programs need a “map” for documentation PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

3. 3 Coding, Documenting, Testing Coding ◦ Coding is done in a specific programming

3. 3 Coding, Documenting, Testing Coding ◦ Coding is done in a specific programming language. We will use pseudocode. ◦ This phase should only begin after a solid design exists. Documenting ◦ Code needs to contain documentation that describes to the reader what the code is doing ◦ Two types of comments are used within the code ◦ Internal documentation is for the programmers to read ◦ External documentation is for the user PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Comments: not processed by the computer, valued by other programmers Header comments ◦ Appear

Comments: not processed by the computer, valued by other programmers Header comments ◦ Appear at beginning of a program or a module ◦ Provide general information Step comments or in-line comments ◦ Appear throughout program ◦ Explain purpose of specific portions of code Often comments delineated by: ◦ // ◦ /* comment goes here */ PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Using comments for a program to find size of a room // // //

Using comments for a program to find size of a room // // // Program to calculate the area in square footage of a room Programmer: E. Drake, Santa Fe College Version 6. 0 – January 1, 2015 This program computes the area of a room, given its width and length Variables used: Width, Length, Square. Feet Declare the variables Declare Width As Float Declare Length As Float Declare Square. Feet As Float // Get the values of the dimensions Write “What are the length and width of the room in inches? ” Input Length Input Width // Calculate square footage Set Square. Feet = Width * Length // Output the result Write “Your room is “ + Square. Feet + “ square feet. ” PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

The Testing Phase Testing ◦ Create test data that will be used to check

The Testing Phase Testing ◦ Create test data that will be used to check the program’s correctness. ◦ Use desk checking (or walking through a program by hand with a set of data that you know the answer to). ◦ Check that the program will catch errors by using test data designed to create errors. ◦ The more testing of various types of data you can use, the more likely you are to have a program that is free of errors. PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Types of Errors: Syntax Errors Syntax errors: a violation of the programming language’s rules

Types of Errors: Syntax Errors Syntax errors: a violation of the programming language’s rules for creating valid statements ◦ May be caused by incorrect grammar or punctuation, or misspelling a keyword ◦ The program will not run at all with syntax errors PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Types of Errors: Logic Errors Logic errors: the program runs, but does not produce

Types of Errors: Logic Errors Logic errors: the program runs, but does not produce the expected results ◦ May be caused by using an incorrect formula, or incorrect sequence of statements, etc. ◦ Sometimes called runtime errors ◦ Can be detected during the desk checking phase of the programming cycle PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

3. 4 Commercial Programs: Testing and Documenting External documentation Purposes: 1. Documentation in a

3. 4 Commercial Programs: Testing and Documenting External documentation Purposes: 1. Documentation in a user’s guide or on-screen help system provides information about the program for the end users 2. Documentation in a maintenance manual provides information about how the program code accomplishes its purposes PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

User’s Guides: o usually written during alpha or beta test phases by a technical

User’s Guides: o usually written during alpha or beta test phases by a technical writer Documentation for other programmers: o Program maintenance manual ◦ For programming experts ◦ Used to help them fix or enhance code written by other programmers o Design documentation ◦ Written by programmer to explain rationale behind methods and code used o Trade Study documentation ◦ A research tool ◦ An attempt to find the best solution PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

3. 5 Structured Programming Ø A method for designing and coding programs in a

3. 5 Structured Programming Ø A method for designing and coding programs in a systematic, organized manner Ø It combines the principles of top-down design, modularity and the use of the three accepted control structures: sequence, repetition and selection Ø Sequence, repetition and selection can be expressed in pseudocode, or with flowcharts PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Flowcharts A tool for programmers to design programs ◦ Describes the flow of a

Flowcharts A tool for programmers to design programs ◦ Describes the flow of a program module’s execution with diagrams ◦ Completely different from hierarchy charts ◦ Connected symbols are used to describe sequence, repetition, and selection structures ◦ Some prefer to use flowcharting to learn how to express algorithms, and others prefer to use pseudocode ◦ Many programs are designed with a combination of pseudocode and flowcharts PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Basic Flowcharting Symbols PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Basic Flowcharting Symbols PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 Main module Declare Item. Name As String Declare iscount. Rate, Sale. Price, Total. Price As Float Write “Sale Price Program” Write “This program computes the total price, including tax, of an item that has been discounted a certain percentage. ” Call Input Data module Call Perform Calculations module Call Output Results module End Program Input Data module Write “What is the item’s name? ” Input Item. Name Write “What is its price and the percentage discounted? ” Input Original. Price Input Discount. Rate End Input Data Module Perform Calculations module Declare Amount. Saved As Float Set Amount. Saved = Original. Price * (Discount. Rate/100) Set Sale. Price = Original. Price – Amount. Saved Set Tax = Sale. Price *. 065 Set Total. Price = Sale. Price + Tax End Perform Calculations Module Output Results module Write “The item is: “ + Item. Name Write “Pre-sale price was: “ + Original. Price Write “Percentage discounted was: “ + Discount. Rate + “%” Write “Sale price: “ + Sale. Price + “Sales tax: “ + Tax Write “Total: $” + Total. Price End Output Results Module PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Control Structures In the 1960 s computer scientists proved there are only 3 basic

Control Structures In the 1960 s computer scientists proved there are only 3 basic control structures (also called constructs) needed to create any program or algorithm! Sequence – execute statements in sequential order ◦ The simplest of control structures – start at the beginning and continue in sequential order Selection – selectively execute statements ◦ Also called a branch or decision ◦ requires a condition to determine when to execute statements Repetition – repeat statements more than once ◦ Also called a loop ◦ needs a stop condition, i. e, the program will continue to loop until some condition is met PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Flowchart for typical decision (selection) structures PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH

Flowchart for typical decision (selection) structures PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Flowchart for typical repetition (loop) structures PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH

Flowchart for typical repetition (loop) structures PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE

Style Pointers q Write modular programs q Use descriptive variable names q Provide a

Style Pointers q Write modular programs q Use descriptive variable names q Provide a welcome message for the user q Use a prompt before an input q Identify program output q Document your programs PRELUDE TO PROGRAMMING, 6 TH EDITION BY ELIZABETH DRAKE