C++ Flow of Control

profileac14665
chapter1.pdf

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Chapter 1

Introduction to Computers and C++ Programming

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Overview

1.1 Computer Systems

1.2 Programming and Problem Solving

1.3 Introduction to C++

1.4 Testing and Debugging

Slide 1- 3

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

1.1

Computer Systems

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Computer Systems

 A computer program is…  A set of instructions for a computer to follow

 Computer software is …

 The collection of programs used by a computer  Includes:

 Editors  Translators  System Managers

Slide 1- 5

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Hardware

 Three main classes of computers  PCs (Personal Computer)

 Relatively small used by one person at a time

 Workstation  Larger and more powerful than a PC

 Mainframe  Still larger  Requires support staff  Shared by multiple users

Slide 1- 6

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Networks

 A number of computers connected to share resources  Share printers and other devices  Share information

Slide 1- 7

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Computer Organization

 Five main components  Input devices

 Allows communication to the computer

 Output devices  Allows communication to the user

 Processor (CPU)

 Main memory  Memory locations containing the running program

 Secondary memory  Permanent record of data often on a disk

Slide 1- 8

Display 1.1

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Computer Memory

 Main Memory  Long list of memory locations

 Each contains zeros and ones  Can change during program execution

 Binary Digit or Bit  A digit that can only be zero or one

 Byte  Each memory location has eight bits

 Address  Number that identifies a memory location

Slide 1- 9

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Larger Data Items

 Some data is too large for a single byte  Most integers and real numbers are too large

 Address refers to the first byte

 Next few consecutive bytes can store the

additional bits for larger data

Slide 1- 10

Display 1.2

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Data or Code?

 ‘A’ may look like 01000001  65 may look like 01000001  An instruction may look like 01000001

 How does the computer know the meaning

of 01000001?  Interpretation depends on the current instruction

 Programmers rarely need to be concerned with

this problem.  Reason as if memory locations contain letters and

numbers rather than zeroes and ones

Slide 1- 11

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Secondary Memory

 Main memory stores instructions and data while a program is running.

 Secondary memory  Stores instructions and data between sessions  A file stores data or instructions in

secondary memory

Slide 1- 12

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Secondary Memory Media

 A computer might have any of these types of secondary memory  Hard disk

 Fast  Fixed in the computer and not normally removed

 Floppy disk  Slow  Easily shared with other computers

 Compact disk  Slower than hard disks  Easily shared with other computers  Can be read only or re-writable

Slide 1- 13

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Memory Access

 Random Access  Usually called RAM

 Computer can directly access any memory location

 Sequential Access  Data is generally found by searching through

other items first  More common in secondary memory

Slide 1- 14

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

The Processor

 Typically called the CPU  Central Processing Unit  Follows program instructions  Typical capabilities of CPU include:

add subtract multiply divide move data from location to location

Slide 1- 15

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Computer Software

 The operating system  Allows us to communicate with the computer  Is a program  Allocates the computer’s resources  Responds to user requests to run other

programs

 Common operating systems include…  UNIX Linux DOS

Windows Macintosh VMS

Slide 1- 16

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Computer Input

 Computer input consists of  A program

 Some data

Slide 1- 17

Display 1.3

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

High-level Languages

 Common programming languages include … C C++ Java Pascal Visual Basic FORTRAN Perl COBOL Lisp Scheme Ada C# Python

 These high – level languages  Resemble human languages  Are designed to be easy to read and write  Use more complicated instructions than

the CPU can follow  Must be translated to zeros and ones for the CPU

to execute a program

Slide 1- 18

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Low-level Languages

 An assembly language command such as ADD X Y Z might mean add the values found at x and y in memory, and store the result in location z.

 Assembly language must be translated to machine language (zeros and ones) 0110 1001 1010 1011

 The CPU can follow machine language

Slide 1- 19

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Compilers

 Translate high-level language to machine language  Source code

 The original program in a high level language  Object code

 The translated version in machine language

Slide 1- 20

Display 1.4

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Linkers

 Some programs we use are already compiled  Their object code is available for us to use  For example: Input and output routines

 A Linker combines

 The object code for the programs we write and

 The object code for the pre-compiled routines into

 The machine language program the CPU can run

Slide 1- 21

Display 1.5

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

History Note

 First programmable computer  Designed by Charles Babbage  Began work in 1822  Not completed in Babbage’s life time

 First programmer

 Ada Augusta, Countess of Lovelace  Colleague of Babbage

Slide 1- 22

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Section 1.1 Conclusion

 Can you…  List the five main components of a computer?

 List the data for a program that adds two numbers?

 Describe the work of a compiler?

 Define source code? Define object code?

 Describe the purpose of the operating system?

Slide 1- 23

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

1.2

Programming and Problem- Solving

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Algorithms

 Algorithm  A sequence of precise instructions that

leads to a solution

 Program  An algorithm expressed in a language the

computer can understand

Slide 1- 25

Display 1.6

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

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

Slide 1- 26

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

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

Slide 1- 27

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

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

Slide 1- 28

Display 1.7

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

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

Slide 1- 29

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

OOP Characteristics

 Encapsulation  Information hiding  Objects contain their own data and algorithms

 Inheritance

 Writing reusable code  Objects can inherit characteristics from other objects

 Polymorphism

 A single name can have multiple meanings depending on its context

Slide 1- 30

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Software Life Cycle

 Analysis and specification of the task (problem definition)

 Design of the software (object and algorithm design)

 Implementation (coding)  Maintenance and evolution of the system  Obsolescence

Slide 1- 31

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Section 1.2 Conclusion

 Can you…  Describe the first step to take when creating

a program?

 List the two main phases of the program design process?

 Explain the importance of the problem-solving phase?

 List the steps in the software life cycle?

Slide 1- 32

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

1.3

Introduction to C++

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

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 language

 Why the ‘++’?

 ++ is an operator in C++ and results in a cute pun

Slide 1- 34

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

C++ History

 C developed by Dennis Ritchie at AT&T Bell Labs in the 1970s.  Used to maintain UNIX systems  Many commercial applications written in c

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

Slide 1- 35

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

A Sample C++ Program

 A simple C++ program begins this way #include <iostream> using namespace std; int main() {

 And ends this way return 0; }

Slide 1- 36

Display 1.8

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Explanation of code (1/5)

 Variable declaration line int number_of_pods, peas_per_pod, total_peas;

 Identifies names of three variables to name numbers  int means that the variables represent integers

Slide 1- 37

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Explanation of code (2/5)

 Program statement cout << “Press return after entering a number.\n”;  cout (see-out) used for output to the monitor

 “<<“ inserts “Press…a number.\n” in the data

bound for the monitor

 Think of cout as a name for the monitor  “<<“ points to where the data is to end up

 ‘\n’ causes a new line to be started on the monitor

Slide 1- 38

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Explanation of code (3/5)

 Program statement cin >> number_of_pods;

 cin (see-in) used for input from the keyboard

 “>>” extracts data from the keyboard

 Think of cin as a name for the keyboard

 “>>” points from the keyboard to a variable where the data is stored

Slide 1- 39

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Explanation of code (4/5)

 Program statement total_peas = number_of_pods * peas_per_pod;  Performs a computation  ‘*’ is used for multiplication  ‘=‘ causes total_peas to get a new value based on

the calculation shown on the right of the equal sign

Slide 1- 40

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Explanation of code (5/5)

 Program statement cout << number_of_pods;  Sends the value of variable number_of_pods

to the monitor

Slide 1- 41

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Program Layout (1/3)

 Compiler accepts almost any pattern of line

breaks and indentation  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

Slide 1- 42

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Program Layout (2/3)

 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

Slide 1- 43

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Program Layout (3/3)

 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

Slide 1- 44

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

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 code into an executable program.

Slide 1- 45

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Run a Program

 Obtain code in Display 1.10  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

Slide 1- 46

Display 1.10

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Section 1.3 Conclusion

 Can you…  Describe the output of this line?

cout << “C++ is easy to understand.”;

 Explain what this line does? cin >> peas_per_pod;

 Explain this? #include <iostream>

Slide 1- 47

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

1.4

Testing and Debugging

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

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.”

Slide 1- 49

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

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  Errors in the program’s algorithm  Most difficult to diagnose  Computer does not recognize an error

Slide 1- 50

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Section 1-4 Conclusion

 Can you…  Describe the three kinds of program errors?

 Tell what kind of errors the compiler catches?

 What kind of error is produced if you forget a

punctuation symbol such as a semi-colon?

 Tell what type of error is produced when a program runs but produces incorrect results?

Slide 1- 51

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Chapter 1 -- End

Slide 1- 52

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.1

Slide 1- 53

Back Next

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.2

Slide 1- 54

Back Next

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.3

Slide 1- 55

Back Next

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.4

Slide 1- 56

Back Next

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.5

Slide 1- 57

Back Next

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.6

Slide 1- 58

Back Next

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.7

Slide 1- 59

Back Next

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.8

Slide 1- 60

Next Back

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.9

Slide 1- 61

Back Next

Copyright © 2012 Pearson Addison-Wesley. All rights reserved.

Display 1.10

Slide 1- 62

Next Back

  • Slide Number 1
  • Chapter 1
  • Overview
  • 1.1
  • Computer Systems
  • Hardware
  • Networks
  • Computer Organization
  • Computer Memory
  • Larger Data Items
  • Data or Code?
  • Secondary Memory
  • Secondary Memory Media
  • Memory Access
  • The Processor
  • Computer Software
  • Computer Input
  • High-level Languages
  • Low-level Languages
  • Compilers
  • Linkers
  • History Note
  • Section 1.1 Conclusion
  • 1.2
  • Algorithms
  • Program Design
  • Problem Solving Phase
  • Implementation Phase
  • Object Oriented Programming
  • OOP Characteristics
  • Software Life Cycle
  • Section 1.2 Conclusion
  • 1.3
  • Introduction to C++
  • C++ History
  • A Sample C++ Program
  • Explanation of code (1/5)
  • Explanation of code (2/5)
  • Explanation of code (3/5)
  • Explanation of code (4/5)
  • Explanation of code (5/5)
  • Program Layout (1/3)
  • Program Layout (2/3)
  • Program Layout (3/3)
  • Running a C++ Program
  • Run a Program
  • Section 1.3 Conclusion
  • 1.4
  • Testing and Debugging
  • Program Errors
  • Section 1-4 Conclusion
  • Chapter 1 -- End
  • Display 1.1
  • Display 1.2
  • Display 1.3
  • Display 1.4
  • Display 1.5
  • Display 1.6
  • Display 1.7
  • Display 1.8�
  • Display 1.9
  • Display 1.10