Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Chapter 1
Introduction to Computers and
C++ Programming
Copyright © 2018 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
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
1.1
Computer Systems
Copyright © 2018 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
Copyright © 2018 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
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Computer Networks
◼ A number of computers connected to
share resources
◼ Share printers and other devices
◼ Share information
Copyright © 2018 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 Display 1.1
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Computer Memory
◼ Main Memory
◼ Long list of memory locations
◼ Each contains zeros and ones (binary numbers)
◼ 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
Copyright © 2018 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
Display 1.2
Copyright © 2018 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.
◼ May reason as if memory locations contain letters and
numbers rather than zeroes and ones
Copyright © 2018 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
Copyright © 2018 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
Copyright © 2018 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
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
The Central Processing Unit (CPU)
◼ The Processor (or CPU)
◼ Follows program instructions
◼ Typical capabilities of CPU include:
add
subtract
multiply
divide
move data from location to location
Copyright © 2018 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
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Computer Input
◼ Computer input consists of
◼ A program
◼ Some data
Display 1.3
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
High-level Languages
◼ Common programming languages include …
C C++ Java Pascal Visual Basic FORTRAN Perl
PHP 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
Copyright © 2018 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
Copyright © 2018 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
Display 1.4
Copyright © 2018 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
Display 1.5
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
History Note
◼ First programmable computer
st
◼ 1 Mechanical Computer (Analytical Engine)
◼ 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
Copyright © 2018 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?
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
1.2
Programming and Problem-
Solving
Copyright © 2018 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
Display 1.6
Copyright © 2018 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
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
I. 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
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
II. 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 Display 1.7
Copyright © 2018 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
Copyright © 2018 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 in the
context of inheritance, i.e. depending on its context
Copyright © 2018 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)
◼ Testing, maintenance and evolution of the system
◼ Documentation
Copyright © 2018 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?
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
1.3
Introduction to C++
Copyright © 2018 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
Copyright © 2018 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++
Copyright © 2018 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;
}
Display 1.8
Copyright © 2018 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
Copyright © 2018 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
Copyright © 2018 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 to be stored
Copyright © 2018 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 be assigned a new value
based on the calculation shown on the right of the
equal sign
Copyright © 2018 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
Copyright © 2018 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
Copyright © 2018 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
Copyright © 2018 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
Copyright © 2018 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.
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
C++11
◼ C++11 (formerly known as C++0x) is the most recent
version of the standard of the C++ programming
language.
◼ Approved on August 12, 2011 by the International
Organization for Standardization.
◼ C++11 language features are not supported by older
compilers
◼ Check the documentation with your compiler to determine
if special steps are needed to compile C++11 programs
◼ e.g. with g++, use extra flags of –std=c++11
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Run a Program
◼ Obtain code in Display 1.10 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
Copyright © 2018 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>
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
1.4
Testing and Debugging
Copyright © 2018 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.”
Copyright © 2018 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 this type of errors
Copyright © 2018 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?
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Chapter 1 -- End
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.1 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.2 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.3 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.4 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.5 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.6 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.7 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.8
Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.9 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.
Display 1.10 Back Next
Copyright © 2018 Pearson Addison-Wesley. All rights reserved.