Computer Programming - Lecture 2

Preview:

Citation preview

Computer Programming I 1

Lecture 2 Algorithms and Problem Solving

Computer Programming I 2

Overview

Algorithm Program design Pseudocode Structure diagram Flowcharts Introduction to C++ Testing and debugging Program errors

Computer Programming I 3

Algorithm

Algorithm A sequence of precise instructions which

leads to a solution

Program An algorithm expressed in a language the

computer can understand

Computer Programming I 4

Program Design

Programming is a creative process No complete set of rules for creating a program

Program Design Process Problem Solving Phase

• Result is an algorithm that solves the problem

Implementation Phase• Result is the algorithm translated into a programming

language

Computer Programming I 5

Problem Solving Phase

Be certain the task is completely specified What is the input? What information is in the output? How is the output organized?

Develop the algorithm before implementation Experience shows this saves time in getting your

program to run. Test the algorithm for correctness

Computer Programming I 6

Implementation Phase

Translate the algorithm into a programming language Easier as you gain experience with the language

Compile the source code Locates errors in using the programming language

Run the program on sample data Verify correctness of results

Results may require modification of the algorithm and program

Computer Programming I 7

Object Oriented Programming

Abbreviated OOP

Used for many modern programs

Program is viewed as interacting objects Each object contains algorithms to describe

its behavior Program design phase involves designing

objects and their algorithms

Computer Programming I 8

8

Input Processing Output

Names for our cells

5, 10 15

1) Declare variablesinput_1input_2sum

2) Assign valuesinput_1 = 5input_2 = 10

3) Processsum = input_1 + input_2

The computer (and so C++)provides basic arithmeticoperations. If the operationyou want to use is not provided,you have to compose it.

Sample problemsWrite a program calculating the sum of two numbers

Computer Programming I 9

There are many models supporting the development of the code. We will see now the same algorithm expressed as:

1)Pseudocode2)Structure diagram3)Flowcharts

and finally in C++.

Write a program calculating the sum of two numbers

Computer Programming I 10

Pseudocode

Mixture of C++ and ordinary English Allows us to make our algorithm precise

without worrying about the details of C++ syntax

Computer Programming I 11

PROGRAM Add Two NumbersREAD two numbersADD the numbersWRITE the sum

END PROGRAM

Version 1:PROGRAM Add Two Numbers

READ FirstREAD SecondSum = First + SecondWRITE Sum

END PROGRAM

Version 2:

Write a program calculating the sum of two numbers

Pseudocode

Computer Programming I 12

Structure Diagram

Helpful to break the algorithm into more manageable pieces

Version 1: PROGRAM Add Two Numbers

READTwo Numbers

ADDTwo Numbers

WRITEThe Sum

Write a program calculating the sum of two numbers

Computer Programming I 13

Structure Diagram

Version 2: PROGRAM Add Two Numbers

READTwo Numbers

ADDTwo Numbers

WRITEThe Sum

READInput_1

READInput_2

Sum = Input_1 + Input_2

Write a program calculating the sum of two numbers

Computer Programming I 14

Rules for Structure Diagram

A module which resides above others is referred to as a Calling module

A module which resides below another is referred to as a Called module

A module can be both a calling and called module

A called module can only be called by one calling module

Computer Programming I 15

Flowchart

Diagram that shows the logical flow of a program Stress on structured programming Useful for planning each operation a program

performs, and in order in which the operations are to occur

By visualizing the process, a flowchart can quickly help identify bottlenecks or inefficiencies where the process can be streamlined or improved

The final visualization can then be easily translated into a program

Computer Programming I 16

Flowcharting symbols

Input/Output (used for all I/O operations)

Processing (used for all arithmetic and data transfer operations).

Decision (used to test for a condition).

Terminal (used to indicate the beginning and end of a program or module).

Connector (used to indicate the point at which a transfer of control operation occurs).

Predefined (used to indicate the name process of a module to be executed).

Connecting all the symbols and showing the flow

Computer Programming I 17

READ FirstREAD Second

Sum = First + Second

WRITE Sum

Write a program calculating the sum of two numbers

START

END

Computer Programming I 18

1) Each symbol denotes a type of operation.

2) A note is written inside each symbol to indicate the specific function to be performed.

3) The symbols are connected by flow-lines.

4) Flowcharts are drawn and read from top to bottom unless a specific condition is met that alters the path.

5) A sequence of operations is performed until a terminal symbol designates the sequence's end or the end of the program.

6) Sometimes several steps or statements are combined in a single processing symbol for ease of reading.

Flowchart Conventions

Computer Programming I 19

Computer Programming I 20

start

Input A

Input B

A > B

print Aprint B

end

A flowchart to accept two numbers as input and prints out the maximum

TrueFalse

Computer Programming I 21

Structured Programming

Structured Programming is a technique using logical control constructs that make programs easier to read, debug, and modify if changes are required.

Sequence Selection Repetition

true false

true

Computer Programming I 22

Different selection structures

A>10

S1

true false

true false

If a > 10 then do S1

S1 S2

A>10

If a > 10 then do S1 else do S2

truefalse

S2

A>10

If a > 10 then do nothing else do S2

FalseTrue

S1

A<=10

If a <= 10 then do S1

Computer Programming I 23

Loop structures

A<=10

S1

S2

true

A<=10

S1

S2

true

Repeat

S1

S2

As long as A is Less than or equal to 10 otherwise exit the loop

False

False

While A is less than or equal to 10 repeat

S1

S2

End loop

What is the difference ?

Computer Programming I 24

Loop example (do..While)Loop example (do..While)

c<=5

Sum = Sum + A

C = C + 1

true

Draw a flowchart to allow the input of 5 numbers and displays out the sum of these numbers

Input A

Start

C = 1

Sum=0

Output Sum

End

False

Assume the numbers given to A are 3,2,4,5,6 in order

C=1Sum = 0

C=1Sum = 0

A=3

C=1Sum = 3

A=3

1

2

3

4

5

6

7

1,2 3 4

C=2Sum = 3

A=3

5

C=2Sum = 3

A=3C <=5 true

6

C=2Sum = 3

A=2

C=2Sum = 5

A=2

3 4

C=3Sum = 5

A=2

5

C=3Sum = 5

A=3C <=5 true

6

C=3Sum = 5

A=4

C=3Sum = 9

A=4

3 4

C=4Sum = 9

A=4

5

Computer Programming I 25

Loop example (while…)Loop example (while…)

c<=5

Sum = Sum + A

C = C + 1

true

Draw a flowchart to allow the input of 5 numbers and displays out the sum of these numbers

Input A

Start

C = 1

Sum=0

Output Sum

End

False

Assume the numbers given to A are 3,2,4,5,6 in order

C=1

C=1Sum = 0

1

2

3

4

5

6

7

1

2

C=1Sum = 0

C <=5 true

C=1Sum = 3

A=3

C=1Sum = 3

A=3

34

C=2Sum = 3

A=3

5 6

C=2Sum = 3

C <=5 true

C=2Sum = 3

A=2

C=2Sum = 5

A=2

3 4

C=3Sum = 5

A=3

5 6

Computer Programming I 26

Prime number example flowchart

Pseudocode algorithm to solve this problem:

1. Start

2. Input a number M

3. Set an Index (I) to start from 2

4. Divide the number M by the Index (I) value and store the remainder in R

5. If R is equal to zero then output “Not Prime” and goto to Step 10

6. Increment Index (I) by 1

7. If the Index (I) value is less than the number M go to Step 4

8. Output “Prime”

9. End

R=0?

I = I + 1

True

Input M

Start

I = 2

R=M%I

Output Prime

End

False

I<M?

Output Not Prime

True

False

1

2

3

4

5

6

7

8

9

Computer Programming I 27

Example of structured flowchart

28

Find the Maximum

29

Find the Maximum - Structured

30

Find the Maximum - Structured

Computer Programming I 31

Unstructured Flowchart

break…

Computer Programming I 32

Introduction to C++

Where did C++ come from? Derived from the C language C was derived from the B language B was derived from the BCPL(Basic Combined

Programming Language) language

Why the ‘++’?++ is an operator in C++

Computer Programming I 33

C++ History

C developed by Dennis Ritchie at AT&T(American Telephone & Telegraph Company) Bell Labs in the 1970s. Used to maintain UNIX systems Many commercial applications written in C

C++ developed by Bjarne Stroustrup at AT&TBell Labs in the 1980s. Overcame several shortcomings of C Incorporated object oriented programming C remains a subset of C++

Computer Programming I 34

A Sample C++ Program A simple C++ program begins this way

#include <iostream>using namespace std;

int main(){

And ends this way

return 0;}

Computer Programming I 35

CommentsComments are pieces of source code discarded from the code by the compiler. They do nothing. Their purpose is only to allow the programmer to insert notes or descriptions embedded within the source code.

C++ supports two ways to insert comments:

// line comment/* block comment */

/* my second program in C++ with more comments */ #include <iostream.h> int main () {

cout << "Hello World! "; // says Hello World! return 0;

}

Computer Programming I 36

My first program in C++

// my first program in C++

#include <iostream.h>

int main ()

{

cout << "Hello World!";

return 0;

}

Hello World!

a comment line

a pound sign (#) is a directive for the preprocessor. It is not executable code but indications for the compiler.

tells the compiler's preprocessor to include the iostream standard header file.

Corresponds to the beginning of the main function declaration. The main function is the point where all C++ programs begin their execution.

cout is the standard output stream in C++to terminate a program

Computer Programming I 37

Layout of a Simple C++ Program#include <iostream>

using namespace std;

int main()

{

variable_declarations

statement_1

statement_2

statement_last

return 0;

}

Computer Programming I 38

Program Layout (1/2)

Programmers format programs so they are easy to read Place opening brace ‘{‘ and closing brace ‘}’

on a line by themselves Indent statements Use only one statement per line

Computer Programming I 39

Program Layout (2/2)

Variables are declared before they are used Typically variables are declared at the beginning of

the program Statements (not always lines) end with a semi-colon

Include Directives #include <iostream> Tells compiler where to find information about items

used in the program iostream is a library containing definitions of cin and

cout

Computer Programming I 40

Program Layout

using namespace std; Tells the compiler to use names in iostream in

a “standard” way

To begin the main function of the program

int main(){

To end the main function

return 0;}

Main function ends with a return statement

Computer Programming I 41

Running a C++ Program

C++ source code is written with a text editor

The compiler on your system converts source code to object code.

The linker combines all the object codeinto an executable program.

Computer Programming I 42

Compiler: is a program that translates a high-level language program, such as a C++ program, into a machine-language program that the computer can directly understand and execute.

Linking: The object code for your C++ program must be combined with the object code for routines (such as input and output routines) that your program uses. This process of combining object code is called linking and is done by a program called a linker. For simple programs, linking may be done for you automatically.

Concepts

Computer Programming I 43

Run a Program

Obtain code Compile the code Fix any errors the compiler indicates and

re-compile the code Run the program Now you know how to run a program on

your system

Computer Programming I 44

Testing and Debugging

Bug A mistake in a program

Debugging Eliminating mistakes in programs Term used when a moth caused a failed relay

on the Harvard Mark 1 computer. Grace Hopper and other programmers taped the moth in logbook stating: “First actual case of a bug being found.”

Computer Programming I 45

Program Errors Syntax errors

Violation of the grammar rules of the language Discovered by the compiler

• Error messages may not always show correct location of errors

Run-time errors Error conditions detected by the computer at run-time

Logic errors (warning) Errors in the program’s algorithm Most difficult to diagnose Computer does not recognize an error

Computer Programming I 46

End of Lecture 2