Top Banner
1 Chapter 2 Input, Processing, and Output Spring 2017, CSUS Designing a Program Chapter 2.1
51

Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

Mar 09, 2018

Download

Documents

nguyentruc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

1

Chapter 2

Input, Processing, and Output

Spring 2017, CSUS

Designing a

Program

Chapter 2.1

Page 2: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

2

Algorithms

They are the logic on how to do something

• how to compute the value of Pi

• how to delete a file

• how to load a webpage

Examples:

• tying your shoes

• driving to Sac State

• making a peanut butter and jelly sandwich

1/21/2017 Sacramento State - CSc 10A 3

1. Design – flowcharts and pseudocode help

with this process

2. Write the code

3. Cleared code of syntax errors

4. Checked for logic errors.

5. If logic errors exist, debug the program

1-4

Designing a Program

1/21/2017 Sacramento State - CSc 10A

Page 3: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

3

1. Understand the tasks that the program is

to perform

2. Determine the steps require for the task

• create an algorithm

• use flowcharts and/or pseudocode to solve

1/21/2017 Sacramento State - CSc 10A 1-5

Two Steps of Designing a Program

Procedural Programming

Traditional approach to programming

• easy for humans to conceptualize

• it is based on how we do things

Programs

• contain as a sequence of steps

• steps run in order – from first to last

• repetition is performed with "looping"

1/21/2017 Sacramento State - CSc 10A 6

Page 4: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

4

Flow Charts

Chapter 2.1

Flow Chart Overview

Graphical representation

• each statement is a shape

• useful for conceptualizing an algorithm

• easy to understand and visualize

Used everywhere

• programmers used to create charts first

• used extensively in business Worldwide

1/21/2017 Sacramento State - CSc 10A 8

Page 5: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

5

Indicates the start and end of

an algorithm

Represented by a rectangle

with rounded sides

There are typically two:

• one to start the flowchart

• one to end the flowchart

1/21/2017 Sacramento State - CSc 10A 9

Start / End

Indicates data being:

• inputted into the computer

• outputted to the user

Represented by a

parallelogram

Flowcharts can have many

1/21/2017 Sacramento State - CSc 10A 10

Input / Output

Page 6: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

6

Indicates data:

• being processed

• also called "calculations"

Represented by a rectangle

This tends to be the most

common symbol

1/21/2017 Sacramento State - CSc 10A 11

Processes

Indicates a logical branch

• algorithm executes instructions

if some criteria is met

• can contain a positive and

negative branch

Represented by a diamond

1/21/2017 Sacramento State - CSc 10A 12

Decisions

Page 7: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

7

Input / Output

Process Data

Input / Output

Pseudocode

Chapter 2.1

Page 8: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

8

Description of an algorithm's logic

• not as formalized as English

• it can "look" like code, but this varies

It is often useful

• lets you write down "something" to

conceptualize the algorithm

• not worry about the implementation issues

1/21/2017 Sacramento State - CSc 10A 15

What is Pseudocode?

My area of a circle program

Input radius

Set Area = (pi x radius2)

Display "The area is", area

1/21/2017 Sacramento State - CSc 10A 16

Area of a Circle Pseudocode

Page 9: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

9

1/21/2017 Sacramento State - CSc 10A 17

Flowchart vs. Pseudocode

Display "What is the bill?"

Input bill

Set tip = bill * 0.15

Display "The tip is $", tip

The textbook, we are using in class, makes

use of both flowcharts and pseudocode to

describe program logic

The pseudocode, throughout the book, is

consistent - the same words and structure

is used in every example

1/21/2017 Sacramento State - CSc 10A

Pseudocode in the Book

18

Page 10: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

10

Display is the "keyword" to

show output to the screen

When you see a line that

starts with "display", you will

known information will shown

Book Pseudocode: Display

1/21/2017 Sacramento State - CSc 10A 19

In computer science, a series

of characters is called a string

Display often uses string

literals – a sequence of

characters delimited by

double quotes

Book Pseudocode: Display

1/21/2017 Sacramento State - CSc 10A 20

Page 11: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

11

"Sac State"

"Hornet"

"Computer Science 10"

"1850"

"Tappa Kegga Bru"

"Cuppa Kappa Chino"

1/21/2017 Sacramento State - CSc 10A

Examples of String Literals

21

1/21/2017 Sacramento State - CSc 10A

Display "Hello!"

Output Example

In the following example, a string literal is output

to the screen

The book's pseudocode uses Display

22

Page 12: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

12

1/21/2017 Sacramento State - CSc 10A

Output Example

When the program gets to the display statement,

it will output the string literal

Hello!

23

1/21/2017 Sacramento State - CSc 10A

Display "Sacramento State"

Display 1947

Output Example 2

You can output numbers and strings

The following outputs the name and founding

year of Sac State

24

Page 13: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

13

1/21/2017 Sacramento State - CSc 10A

Output Example

We will get into what the difference between the

two pieces of data later

Sacramento State

1947

25

Input is the keyword to read

values from the user

These values…

• need to be put somewhere

• we will put them in memory

locations called variables

Book Pseudocode: Input

1/21/2017 Sacramento State - CSc 10A 26

Page 14: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

14

Output, Input

and Variables

Chapter 2.2

Input

• refers to data that is receives from the user

• allows the program to solve different sets of

problems without change

Output

• refers to data that is displayed to the user

• this includes prompts and the results of

calculations

Output, Input, and Variables

1/21/2017 Sacramento State - CSc 10A 28

Page 15: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

15

Variables

• storage locations in memory for data

• used to: perform calculations, store results,

hold messages, etc…

• they are vital to understand

Output, Input, and Variables

1/21/2017 Sacramento State - CSc 10A 29

Variable

Declarations

& Data Types

Chapter 2.4

Page 16: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

16

A data type – defines the type

of data you intend to store in

a variable

The names of data types and

which ones are supported

varies greatly between

languages

Data Types

1/21/2017 Sacramento State - CSc 10A 31

Integer – stores only whole

numbers

Real – stores whole or

decimal numbers

String – any series of

characters

Common Data Types

1/21/2017 Sacramento State - CSc 10A 32

Page 17: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

17

A variable declaration tells

the programming language

the name of a variable you

want and what it will store

Found in practically all

programming languages

Variable Declarations & Data Types

1/21/2017 Sacramento State - CSc 10A 33

Explicit variable declaration

require the program to

specify the name and type of

each variable

Prevents typo bugs (which

are hard to find and fix)

Explicit Variable Declaration

1/21/2017 Sacramento State - CSc 10A 34

Page 18: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

18

Commonly used in high-level &

professional languages

Examples:

• Java

• Visual Basic .NET

• C#

• C++

1/21/2017 Sacramento State - CSc 10A 35

Explicit Variable Declaration

Implicit variable declaration

creates a variable the

moment it is first "seen"

Typically used by scripting

languages – but few major

languages

Implicit Variable Declaration

1/21/2017 Sacramento State - CSc 10A 36

Page 19: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

19

Tends to be problematic since a simple

typo will create new variables

For example:

• the programmer uses value and valu (no e)

• it will create two variables even though the user

meant value for both

These can be hard to find and fix

1/21/2017 Sacramento State - CSc 10A 37

Implicit Variable Declaration

When you declare a variable

• you allocate space for it in memory

• and give this memory a unique name

This unique name is called an identifier

• every programming language has different

rules for how the identifier should look

• fortunately, the main rules are pretty consistent

1/21/2017 Sacramento State - CSc 10A

Declaring Variables

38

Page 20: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

20

1. Letter followed by zero or

more letters or numbers

2. One word - no spaces

3. Generally, punctuation

characters are avoided –

some languages allow

underscores, dashes, etc…

Typical Naming Rules

1/21/2017 Sacramento State - CSc 10A 39

Often variable names are

more than one word

Goal of the name is to make

it "readable" – not short!

There are a couple of ways

programmers format the

name

1/21/2017 Sacramento State - CSc 10A

Multiple Word Identifiers

40

Page 21: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

21

In proper case (aka pascal

case), the first letter of each

word is capitalized

Standard convention for

Visual Basic.NET and C#

Examples:

• AverageScore

• TaxRate

1/21/2017 Sacramento State - CSc 10A

Proper Case

41

In camel case, the first letter of the first word is in lower case and the rest start with a capital

Standard convention for C, C++, and Java

Examples:

• averageScore

• taxRate

1/21/2017 Sacramento State - CSc 10A

Camel Case

42

Page 22: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

22

1/21/2017 Sacramento State - CSc 10A

Declare Integer age

Declare Real price

Declaration Example

The follow declares a variable called age that can

store integers

The second variable, price, can store reals

43

1/21/2017 Sacramento State - CSc 10A 44

Declare Integer year;

What Happens?

Memory:?

year

Page 23: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

23

1/21/2017 Sacramento State - CSc 10A 45

Declare Real pi;

What Happens?

Memory?

pi

When a variable is first declared – and

created – what value does it have?

In many languages, the initial value is

unknown

So, to avoid possible errors, variables

should be initialized to 0 (or some other

value) before it is used later

Variable Initialization

1/21/2017 Sacramento State - CSc 10A 46

Page 24: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

24

A variable’s value can be set

through user input.

It can also be set through an

assignment statement

Variable Assignment

1/21/2017 Sacramento State - CSc 10A 47

The Set keyword designates

an assignment statement

It allows a value to be stored

in a variable without reading

from the user

It is also used to store the

result of a calculation

Book Pseudocode: Set

1/21/2017 Sacramento State - CSc 10A 48

Page 25: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

25

1/21/2017 Sacramento State - CSc 10A

Declare Integer age

Set age = 18

Declaration Example

The first line creates the variable

The second line, sets it to 18

49

1/21/2017 Sacramento State - CSc 10A

Declare Integer year

Set year = 1947

Display year

What Happens?

Memory:

50

Page 26: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

26

1/21/2017 Sacramento State - CSc 10A

Declare Integer year

Set year = 1947

Display year

What Happens?

Memory:?

year

51

1/21/2017 Sacramento State - CSc 10A

Declare Integer year

Set year = 1947

Display year

What Happens?

Memory:?

year

1947

52

Page 27: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

27

1/21/2017 Sacramento State - CSc 10A

Flowchart for Previous Slide

53

1/21/2017 Sacramento State - CSc 10A

Declare Integer score

Set score = 98

Set score = 81

Another Example

Memory:

54

Page 28: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

28

1/21/2017 Sacramento State - CSc 10A

Declare Integer score

Set score = 98

Set score = 81

Another Example

Memory:?

score

55

1/21/2017 Sacramento State - CSc 10A

Declare Integer score

Set score = 98

Set score = 81

Another Example

Memory:?

score

98

56

Page 29: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

29

1/21/2017 Sacramento State - CSc 10A

Declare Integer score

Set score = 98

Set score = 81

Another Example

Memory:98

score

81

57

Typecasting – when one type of data is

converted to another

When the programming language converts

the data implicitly, it is coerced

When the programmer explicitly specifies

how data will be converted, it is cast

1/21/2017 Sacramento State - CSc 10A

Data Conversion

58

Page 30: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

30

1/21/2017 Sacramento State - CSc 10A

Declare Integer score

Set score = 98.6

Display score

Cast Example

Memory:?

score

59

1/21/2017 Sacramento State - CSc 10A

Declare Integer score

Set score = 98.6

Display score

Cast Example

Memory:?

score

98Coerced

to integer

60

Page 31: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

31

1/21/2017 Sacramento State - CSc 10A

Declare Integer Age = 18

Declare & Initialize

Many programming languages allow you to

declare and initialize at the same time

The book also uses this notation

61

1/21/2017 Sacramento State - CSc 10A

Set cash = 5.25

Display "I have ", cash, " dollars"

Assignment Example

In the following example, the variable cash is set

to the value 5.25

The number 5.25 is written explicitly in the

program and is called a literal

62

Page 32: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

32

1/21/2017 Sacramento State - CSc 10A

Assignment Example

When the program gets to the display statement,

it will use the current value of cash

So, the variable can be used to output data

I have 5.25 dollars

63

1/21/2017 Sacramento State - CSc 10A

Set cash = 5.25

Display "I have ", cash, " dollars"

Set cash = 19.95

Display "Now I have ", cash, " dollars"

Assignment Example 2

Variables can be assigned more than once

In this example, cash is set twice to different

values

64

Page 33: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

33

1/21/2017 Sacramento State - CSc 10A

Assignment Example 2 Output

The value of the variable will be printed using

whatever value is currently has

So, the program will print two different values

I have 5.25 dollars

Now I have 19.95 dollars

65

Variable

Assignment &

Calculations

Chapter 2.3

Page 34: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

34

The value assigned to a

variable doesn't have to be

literal (string, integer, etc..)

Often it is the result of a

mathematical expression

Variable Assignment & Calculations

1/21/2017 Sacramento State - CSc 10A 67

Expressions are…

• mathematical formulas

• follows the format you know

Operator Precedence

• order which operators are

computed

• practically all languages have

precedence levels

1/21/2017 Sacramento State - CSc 10A

Expressions

68

Page 35: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

35

Operator Name

* Multiplication

/ Division

+ Addition

- Subtraction (and unary minus)

mod Modulus (remainder)

^ Exponent

1/21/2017 Sacramento State - CSc 10A 69

Arithmetic Operators

Operator Name

() Subexpression

^ Exponent

- Unary minus

* / mod Multiplication & Division

+ - Addition & Subtraction

1/21/2017 Sacramento State - CSc 10A

Precedence (from first to last)

70

Page 36: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

36

1/21/2017 Sacramento State - CSc 10A

Calculate Results

Set sum = 11 * 2 + 8 * 4 – 7

Set sum = 22 + 32 - 7

Set sum = 54 - 7

Set sum = 47

Set sum = 22 + 8 * 4 – 7

71

1/21/2017 Sacramento State - CSc 10A

Calculate 2 Results

Set result = 7 + 3 ^ 2 * (4 - 1)

Set result = 7 + 9 * 3

Set result = 7 + 27

Set result = 34

Set result = 7 + 3 ^ 2 * 3

72

Page 37: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

37

1/21/2017 Sacramento State - CSc 10A

Calculate Results With Variables

Set x = 10

Set y = 2

Set value = x * 3 + -y

Set value = x * 3 + -2

Set value = 30 + -2

Set value = 28

73

Named

Constants

Chapter 2.5

Page 38: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

38

A named constant is a name

that represents a value that

cannot be changed

Think of it like a variable that

is "written in stone" – you can

use it, but cannot change it

Named Constants

1/21/2017 Sacramento State - CSc 10A 75

Why use them?

• Makes programs more self

explanatory

• If a change to the value occurs,

it only has to be modified in

one place

Named Constants

1/21/2017 Sacramento State - CSc 10A 76

Page 39: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

39

1/21/2017 Sacramento State - CSc 10A

Constant Real TAX_RATE = 0.07

Named Constant Example

The following declares a constant TAX_RATE

Many languages like to type constants in all caps

– the book uses this approach

77

Hand Tracing

a Program

Chapter 2.6

Page 40: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

40

Hand tracing is a simple

debugging process for

locating hard to find errors in

a program

Involves creating a chart with

a column for each variable,

and a row for each line of

code

1/21/2017 Sacramento State - CSc 10A

Hand Tracing a Program

79

You then pretend to be the

computer (how fun!)

Go line by line and update

each variable as the program

does

This can help find bugs and

help you understand the code

1/21/2017 Sacramento State - CSc 10A

Hand Tracing a Program

80

Page 41: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

41

Pseudocode Side Volume

Declare Integer Side ? ?

Declare Integer Volume ? ?

? ?

Set Side = 4 4 ?

Set Volume = Side ^ 3 4 64

4 64

Display Volume 4 64

1/21/2017 Sacramento State - CSc 10A

Hand Trace Example: Cube

81

Pseudocode Price Tax Total

Declare Real Price ? ? ?

Declare Real Tax ? ? ?

Declare Real Total ? ? ?

? ? ?

Set Price = 32.50 32.50 ? ?

Set Tax = Price * 0.08 32.50 2.60 ?

Set Total = Price + Tax 32.50 2.60 35.10

32.50 2.60 35.10

Display Total 32.50 2.60 35.10

1/21/2017 Sacramento State - CSc 10A

Hand Trace Example: Tax

82

Page 42: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

42

Documenting

a Program

Chapter 2.7

Real-World programs can

become large and complex

As a result, efforts are

needed keep them organized

And, to make it easier for

them to be understood and

edited by others

1/21/2017 Sacramento State - CSc 10A

Documenting a Program

84

Page 43: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

43

External documentation describes

information that was written to benefit the

user of the application

It is designed to be understood by your

typical user – ideally being easy to

understand by a novice

So, this type of documentation is

sometimes written by a technical writer

1/21/2017 Sacramento State - CSc 10A

External Documentation

85

Internal documentation is

information left by the

programmer for other

programmers to read

It is included with the

program itself – the end user

will never read it or know it

ever existed

1/21/2017 Sacramento State - CSc 10A

Internal Documentation

86

Page 44: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

44

In computer science, we refer

to this documentation as

comments

The comments depend on

what the programmer is trying

to tell the reader

Vital to maintaining any

complex program

1/21/2017 Sacramento State - CSc 10A

Internal Documentation

87

Explanation of what a

segment of code does

Notes on future

improvements

Log changes made by a

programmer – what, when

and why

Bugs and other problems

1/21/2017 Sacramento State - CSc 10A

Example Types of Comments

88

Page 45: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

45

Book Pseudocode: Comments

The book denotes a comment by using two

normal slashes

Everything after the slashes is a comment and

does not change the meaning of your program

// This is a comment

1/21/2017 Sacramento State - CSc 10A 89

Book Pseudocode: Comments

In fact, comments never change your program –

they are passive

But, programmers often "disable" code by

"commenting it out"

// Display "This is disabled"

Display "This is not"

1/21/2017 Sacramento State - CSc 10A 90

Page 46: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

46

Declare real side

Declare real volume

//Read the side of a cube

Input side

//Width * length * depth

//All three are equal on a cube

Set volume = side ^ 3

1/21/2017 Sacramento State - CSc 10A

Commented Cube Example

91

1/21/2017 Sacramento State - CSc 10A 92

Page 47: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

47

Style Guide

How to Format Your Code

Computer programs can

become complex

As a result, it is a good idea

to follow a set of rules to

make sure they are readable

and easy to maintain

1/21/2017 Sacramento State - CSc 10A 94

Style Guide

Page 48: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

48

Use descriptive names

They should be long enough

to describe the contents of

the variable

… but keep them as short

Using the correct naming

convention & stick to it

1/21/2017 Sacramento State - CSc 10A 95

Variable Names

1/21/2017 Sacramento State - CSc 10A 96

Set taxRateInSacramentoCounty = 0.08

Set taxOnMyBill = totalBillAmount *

taxRateInSacramentoCounty

Bad Variable Names

The following variable names are far too long

They are descriptive, yes, but take waaaaaay too

much space

Page 49: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

49

1/21/2017 Sacramento State - CSc 10A 97

Set taxRate = 0.08

Set tax = bill * taxRate

Better Variable Names

Keep them short enough to not waste space

But, still keep them descriptive

Add comments to tell yourself

(or a reader) what the

program does

It is also good to write down

who edited the file and when

Flowgorithm is pretty easy to

understand, but many

languages are not

1/21/2017 Sacramento State - CSc 10A 98

Comments are Your Friend

Page 50: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

50

It is considered good style to

put all your variable

declarations at the beginning

of the program

Why?

• keeps them all in one place

• insures you declared the

variable before you use it

1/21/2017 Sacramento State - CSc 10A 99

Always Declare Variables First

1/21/2017 Sacramento State - CSc 10A 100

Declare Real TaxRate

Set taxRate = 0.08

Declare Real tax

Set tax = bill * taxRate

Mixed-up Declarations

The following mixes declares and assignment

statements

It is hard to read – and easy to forget what you

declared!

Page 51: Chapter 2athena.ecs.csus.edu/~jacksocj/handouts/CSC10A_Slides_Chapter2... · Algorithms They are the ... use of both flowcharts and pseudocode to describe program logic The pseudocode,

51

1/21/2017 Sacramento State - CSc 10A 101

Declare Real TaxRate

Declare Real tax

Set taxRate = 0.08

Set tax = bill * taxRate

Nice and Organized

Notice that the code is easier to read

As an added benefit: it is easy to we can check if

the data types are consistent (e.g. all reals)