Chapter 1
Introduction to Computers and C++ Programming
Created by David Mann, North Idaho College
Copyright 2003 Pearson Education, Inc.
Slide 1
Overview
Computer Systems (1.1) Programming and Problem Solving (1.2) Introduction to C++ (1.3)
Testing and Debugging (1.4)
Copyright 2003 Pearson Education, Inc.
Slide 2
1.1
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 2003 Pearson Education, Inc.
Slide 3
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 2003 Pearson Education, Inc.
Slide 4
Networks
A number of computers connected to share resources
Share printers and other devices Share information
Copyright 2003 Pearson Education, Inc.
Slide 5
Computer Organization
Five main components
Input devices
Allows communication to the computer Allows communication to the user
Output devices
Processor (CPU) Main memory
Memory locations containing the running program Permanent record of data often on a disk
Secondary memory
Display 1.1
Slide 6
Copyright 2003 Pearson Education, Inc.
Computer Memory
Main Memory
Long list of memory locations
Each contains zeros and ones Can change during program execution A digit that can only be zero or one Each memory location has eight bits Number that identifies a memory location
Slide 7
Binary Digit or Bit
Byte
Address
Copyright 2003 Pearson Education, Inc.
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 2003 Pearson Education, Inc.
Slide 8
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 9
Copyright 2003 Pearson Education, Inc.
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 2003 Pearson Education, Inc.
Slide 10
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 Slow Easily shared with other computers Slower than hard disks Easily shared with other computers Can be read only or re-writable
Floppy disk
Compact disk
Copyright 2003 Pearson Education, Inc.
Slide 11
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 2003 Pearson Education, Inc.
Slide 12
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 13
Copyright 2003 Pearson Education, Inc.
Computer Software
The operating system
Allows us to communicate with the computer Is a program Allocates the computers resources Responds to user requests to run other programs
Common operating systems include
UNIX Windows
Linux DOS Macintosh VMS
Slide 14
Copyright 2003 Pearson Education, Inc.
DOS - DOS (Disk Operating System) was the first
widely-installed operating system for personal computers. (Earlier, the same name had been used for an IBM operating system for a line of business computers.) DOS was (and still is) a non-graphical line-oriented command- or menu-driven operating system, with a relatively simple interface but not overly "friendly" user interface. Its prompt to enter a command looks like this:
Copyright 2003 Pearson Education, Inc.
Slide 15
Computer Input
Computer input consists of
A program
Some data
Display 1.3
Copyright 2003 Pearson Education, Inc.
Slide 16
High-level Languages
Common programming languages include C C++ Java Pascal Visual Basic FORTRAN COBOL Lisp Scheme Ada
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 2003 Pearson Education, Inc.
Slide 17
FORTRAN first high level programming language - The program allows for easy use of arrays, matrices, and loops.
WRITE(6,*) 'Enter Fahrenheit ' READ(5,*) XFAHR XCENT = (XFAHR - 32) * 5 / 9 WRITE(6,*) 'Celsius is ',XCENT STOP END
Copyright 2003 Pearson Education, Inc.
Slide 18
C++ -C++ ("C Plus Plus", pronounced
/siplspls/) is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level and low-level language features.[1] It is a statically typed, free-form, multi-paradigm, compiled language where compilation creates machine code for a target machine hardware, supports procedural programming, data abstraction, object-oriented programming, and generic programming.
Copyright 2003 Pearson Education, Inc.
Slide 19
Visual Basic
- A version of the BASIC
programming language from Microsoft specialized for developing Windows applications
Basic for Applications (VBA) is a subset that provides a common macro language included with many Microsoft applications.
- Visual
Copyright 2003 Pearson Education, Inc.
Slide 20
PERL (Practical Extraction Report Language)
- A programming language written by Larry Wall that combines syntax from several Unix utilities and languages. Introduced in 1987, Perl is designed to handle a variety of system administrator functions and provides comprehensive string handling functions.
Copyright 2003 Pearson Education, Inc.
Slide 21
PASCAL A high-level programming language developed by Swiss professor Niklaus Wirth in the early 1970s and named after the French mathematician, Blaise Pascal
program convert; var fahr, cent : real; Begin write('Enter Fahrenheit '); readln(fahr); cent := (fahr - 32) * 5 / 9; writeln('Celsius is ',cent) end.
Slide 22
Copyright 2003 Pearson Education, Inc.
LISP - (LISt Processing) A high-level programming
language used for developing AI applications.
(defun convert () (format t "Enter Fahrenheit ") (let ((fahr (read))) (format t "Celsius is <126>D (truncate (*(-fahr 32) (/ 5 9))))))
Copyright 2003 Pearson Education, Inc.
Slide 23
JAVA -
Developed by Sun, Java is widely used on the Web for both client and server processing. Modeled after C++, Java added programming enhancements such as "garbage collection," which automatically frees unused memory.
import java.io.*; class Convert { public static void main(String[]args) throws IOException { float fahr; StreamTokenizer in=new StreamTokenizer(new InputStreamReader(System.in)); System.out.print("Enter Fahrenheit "); in.nextToken(); fahr = (float) in.nval; System.out.println ("Celsius is " + (fahr-32)*5/9); } }
Copyright 2003 Pearson Education, Inc.
Slide 24
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 25
Copyright 2003 Pearson Education, Inc.
Compilers
Translate high-level language to machine language
Source code
the original program in a high level language
the translated version in machine language
Object code
Display 1.4
Slide 26
Copyright 2003 Pearson Education, Inc.
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 2003 Pearson Education, Inc.
Slide 27
History Note
First programmable computer
Designed by Charles Babbage Began work in 1822 Not completed in Babbages life time
First programmer
Ada Augusta, Countess of Lovelace
Colleague of Babbage
Copyright 2003 Pearson Education, Inc.
Slide 28
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 29
Copyright 2003 Pearson Education, Inc.
Programming and Problem Solving
1.2
Algorithm
A sequence of precise instructions which leads to a solution
Program
An algorithm expressed in a language the computer can understand
Display 1.6
Copyright 2003 Pearson Education, Inc.
Slide 30
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 Result is the algorithm translated into a programming language
Slide 31
Implementation Phase
Copyright 2003 Pearson Education, Inc.
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 2003 Pearson Education, Inc.
Slide 32
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
Slide 33
Copyright 2003 Pearson Education, Inc.
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 2003 Pearson Education, Inc.
Slide 34
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 35
Copyright 2003 Pearson Education, Inc.
Software Life Cycle
1. Analysis and specification of the task (problem definition) 2. Design of the software (object and algorithm design) 3. Implementation (coding) 4. Maintenance and evolution of the system 5. Obsolescence
Copyright 2003 Pearson Education, Inc.
Slide 36
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 2003 Pearson Education, Inc.
Slide 37
Introduction to C++
1.3
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 2003 Pearson Education, Inc.
Slide 38
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 39
Copyright 2003 Pearson Education, Inc.
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 2003 Pearson Education, Inc.
Slide 40
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 2003 Pearson Education, Inc.
Slide 41
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 Pressa 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 42
Copyright 2003 Pearson Education, Inc.
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
Copyright 2003 Pearson Education, Inc.
Slide 43
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
Copyright 2003 Pearson Education, Inc.
Slide 44
Explanation of code (5/5)
Program statement cout << number_of_pods;
Sends the value of variable number_of_pods to the monitor
Copyright 2003 Pearson Education, Inc.
Slide 45
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 46
Copyright 2003 Pearson Education, Inc.
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 47
Copyright 2003 Pearson Education, Inc.
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 2003 Pearson Education, Inc.
Slide 48
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 49
Copyright 2003 Pearson Education, Inc.
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 2003 Pearson Education, Inc.
Slide 50
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 51
Copyright 2003 Pearson Education, Inc.
1.4
Testing and Debugging
Bug
A mistake in a program
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 52
Debugging
Copyright 2003 Pearson Education, Inc.
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 Errors in the programs algorithm Most difficult to diagnose Computer does not recognize an error
Slide 53
Logic errors
Copyright 2003 Pearson Education, Inc.
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 54
Copyright 2003 Pearson Education, Inc.
Chapter 1 -- End
Copyright 2003 Pearson Education, Inc.
Slide 55
Display 1.1
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 56
Display 1.2
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 57
Display 1.3
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 58
Display 1.4
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 59
Display 1.5
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 60
Display 1.6
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 61
Display 1.7
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 62
Display 1.8
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 63
Display 1.9
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 64
Display 1.10
Back
Next
Copyright 2003 Pearson Education, Inc.
Slide 65