Transcript Chapter 2
Overview of C++
By
Dr. Awad Khalil
Computer Science & Engineering Department
C++ Language Elements
Comments make a program easier to
understand
// Used to signify a comment on a single
line
/* Text text */ use if comments on multi
lines
Don’t embed comments within /* */
comments
CSCI 106, Overview of C++, by Dr.
Awad Khalil
2
Compiler Directives
#include
Compiler directive
Processed at compilation time
Instructs compiler on what you want in the
program
#include <iostream>
Adds library files to program
Used with < >
Also “ “ user defined
CSCI 106, Overview of C++, by Dr.
Awad Khalil
3
Compiler Directives
Stream data type
Object that is a stream of characters
Defined in iostream
Entered on the keyboard
(cin)
Displayed on monitor (cout)
CSCI 106, Overview of C++, by Dr.
Awad Khalil
4
Declarations
Direct compiler on requirements
Based on data needs (data identifiers)
Each identifier needed must be declared
Comma used to separate identifiers
cin and cout are undeclared identifiers
Special elements called streams
cin - input stream , cout - output stream
Included with the iostream not declared
CSCI 106, Overview of C++, by Dr.
Awad Khalil
5
Executable Statements
cout get output
cout << “Enter the fabric size in square meters: ”;
cin get input
cin >> sizeInSqmeters;
Assignment
sizeInSqyards = metersToYards * izeInSqmeters;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
6
Reserved Words and Identifiers
Reserved words have special meanings
Can NOT be used for other purposes (const,
float and void are some examples)
Identifiers (variables)
Used to store data by the program (user
defined)
Valid identifiers - letter, letter1, _letter
Invalid identifiers - 1letter, const, hell o
Special symbols
C++ has rules for special symbols
= * ; { } ( ) // << >>
CSCI 106, Overview of C++, by Dr.
Awad Khalil
7
Upper and Lower Case
C++ case sensitive
Compiler differentiates upper & lower
case
Identifiers can be either
Be careful though (cost != Cost)
Blank spaces
Use space to make program readable
Use care in placing spaces
CSCI 106, Overview of C++, by Dr.
Awad Khalil
8
User-Defined Identifier
An Identifier must always begin with a letter or
underscore symbol (not recommended)
An identifier must consist of letters, digits, or
underscore only.
You cannot use a C++ reserved word as an
identifier.
CSCI 106, Overview of C++, by Dr.
Awad Khalil
9
User-Defined Identifier
Invalid Identifiers
1Letter
Float
Const
Two*Four
Joe’s
Two-dimensional
CSCI 106, Overview of C++, by Dr.
Awad Khalil
10
Data Types and Declarations
Predefined data types
int
(integers)
Positive or negative whole numbers
1000
12
199
100000
INT_MAX - largest int allowed by compiler
float
(real numbers)
Positive or negative decimal numbers
10.5
1.2
100.02
99.88
bool
(boolean)
true
false
char
(Characters)
Represent characters
CSCI 106, Overview of C++, by Dr.
Awad Khalil
11
Data Type: int
The basic integer type is int
The size of an int depends on the machine and
the compiler
On pc’s it is normally 16 or 32 bits
Other integers types
short: typically uses less bits
long: typically uses more bits
Different types allow programmers to use
resources more efficiently
Standard arithmetic and relational operations are
available for these types
CSCI 106, Overview of C++, by Dr.
Awad Khalil
12
Data Type: float
Floating-point types represent real numbers
Integer part
Fractional part
The number 108.1517 breaks down into the following
parts
108 - integer part
1517 - fractional part
C++ provides three floating-point types
float
double
long double
CSCI 106, Overview of C++, by Dr.
Awad Khalil
13
Data Type: char
(characters)
Individual character value (letter or
number)
Character literal enclosed in single
quotes ‘A’
Character type char is related to the
integer types
Characters are encoded using a scheme
where an integer represents a particular
character
char
CSCI 106, Overview of C++, by Dr.
Awad Khalil
14
Character Encoding Schemes
ASCII is the dominant encoding scheme
Examples
' ' encoded as 32
'+' encoded as 43
'A' encoded as 65
'Z' encoded as 90
’a' encoded as 97
’z' encoded as 122
CSCI 106, Overview of C++, by Dr.
Awad Khalil
15
Character Encoding Schemes
UNICODE
CSCI 106, Overview of C++, by Dr.
Awad Khalil
16
string Class
String object data type
A literal string constant is a sequence of
zero or more characters enclosed in
double quotes
"Are you aware?\n"
Individual characters of string are stored
in consecutive memory locations
The null character ('\0') is appended to
strings so that the compiler knows where
in memory strings ends
CSCI 106, Overview of C++, by Dr.
Awad Khalil
17
string Class
String literal
“A”
“1234”
“Enter the distance”
Additional data types included in library
#include <string>
Various operations on strings
CSCI 106, Overview of C++, by Dr.
Awad Khalil
18
Declarations
Identifiers should be
Short enough to be
reasonable to type (single
word is norm)
Standard abbreviations
are fine (but only
standard abbreviations)
Long enough to be
understandable
When using multiple
word identifiers
capitalize the first letter
of each word
Examples
char response;
int minelement;
float score;
float
temperature;
int i;
int n;
char c;
float x;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
19
Constant Declarations
Types of constants
integer
float
char
bool
string objects
Associate meaningful terms
const float PAYRATE = 10.25;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
20
Hello.cpp
// FILE: Hello.cpp
// DISPLAYS A USER'S NAME
#include <iostream>
#include <string>
using namespace std;
int main ()
{
char letter1, letter2;
string lastName;
// Enter letters and print message.
cout << "Enter 2 initials and last name: ";
cin >> letter1 >> letter2 >> lastName;
cout << "Hello " << letter1 << ". " <<
letter2 << ". " << lastName << "! ";
cout << "We hope you enjoy studying C++." << endl;
return 0;
}
CSCI 106, Overview of C++, by Dr.
Awad Khalil
21
Executable Statements
Memory status
Before and after
Assignments
Form: result = expression;
sizeInSqyards = metersToYards * sizeInMeters;
sum = sum + item;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
22
Arithmetic Operators
+
*
/
%
Addition
Subtraction
Multiplication
Division
Modulus
CSCI 106, Overview of C++, by Dr.
Awad Khalil
23
Input / Output Operations
Input
#include <iostream> library
cin >> sizeInSqmeters;
Output
#include <iostream> library
cout << squareArea;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
24
Program Input: cin
Form:
cin >> dataVariable;
cin >> age >> firstInitial;
Extracted from cin (input stream)
>> Directs input to variable
cin associated with keyboard input (stdin)
Used with int, float, char, bool and strings
Leading blanks ignored (floats, int, char,bool and strings)
Char read 1 at a time (1 non blank)
Case issues
int or float will read until space
Stings same as int and float
CSCI 106, Overview of C++, by Dr.
Awad Khalil
25
Program Output: cout
Form:
cout << dataVariable;
cout << squareArea;
Output stream cout
<< Output operator (insertion operator)
cout << “my height in inches is: “ << height;
Blank lines
endl; or “\n”;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
26
General Form of a C++ Program
General program form
Function basic unit (collection of related
statements)
A C++ program must contain a main function
void main ()
int - function returns integer value
main - lower case with ()
{ } - Braces define the function body
CSCI 106, Overview of C++, by Dr.
Awad Khalil
27
General Form of a C++ Program
General form of function body parts
Declaration statements
Variables and constants
Executable statements
C++ statements
CSCI 106, Overview of C++, by Dr.
Awad Khalil
28
General Form of a C++ Program
General form
// File: filename
// Program description:
#include directives
int main()
{
Declarations section
Executable statements section
}
CSCI 106, Overview of C++, by Dr.
Awad Khalil
29
Arithmetic Expressions
int data type
+ - * /, Assignment, input and output on int
%
Only used with int
Examples of integer division
15 / 3 = 5
15 / 2 = 7
0 / 15 = 0
15 / 0 undefined
CSCI 106, Overview of C++, by Dr.
Awad Khalil
30
Modulus and Integer
Used only with integer and yields remainder
Examples of integer modulus
7%2=1
299 % 100 = 99
49 % 5 = 4
15 % 0 undefined
CSCI 106, Overview of C++, by Dr.
Awad Khalil
31
Mixed-type Assignments
Expression evaluated
Result stored in the variable on the left side
C++ can mix types
float a, b, x;
int m, n;
a=10;
b=5;
x = m / n;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
32
Expressions With Multiple Operators
Operator precedence tells how to evaluate
expressions
Standard precedence order
()
Evaluated first, if nested innermost
done first
* / % Evaluated second. If there are
several,
then evaluate from left-to-right
+ Evaluate third. If there are several,
then evaluate from left-to-right
CSCI 106, Overview of C++, by Dr.
Awad Khalil
33
Mathematical Formulas in C++
a = bc not valid C++ syntax
* Operator a = b * c;
m=y-b
x-a
( ) And /
m = (y - b) / (x - a);
CSCI 106, Overview of C++, by Dr.
Awad Khalil
34
Example 1: Milesbatch.cpp
// File: milesBatch.cpp
// Converts distance in miles to
kilometers.
#include <iostream>
using namespace std;
int main()
// start of main function
{
const float KM_PER_MILE = 1.609;
float miles,
kms;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
35
Milesbatch.cpp
// Get the distance in miles.
cin >> miles;
cout << "The distance in miles is " <<
miles << endl;
// Convert the distance to kilometers.
kms = KM_PER_MILE * miles;
// Display the distance in kilometers.
cout << "The distance in kilometers is " <<
kms << endl;
return 0;
}
CSCI 106, Overview of C++, by Dr.
Awad Khalil
36
Milesbatch.cpp
Program output
The distance in miles is 10
The distance in kilometers is 16.09
CSCI 106, Overview of C++, by Dr.
Awad Khalil
37
Example 2: Coin Collection Case Study
Problem statement
Saving nickels and pennies and want to
exchange these coins at the bank so need
to know the value of coins in dollars and
cents.
Analysis
Count of nickels and pennies in total
Determine total value
Use integer division to get dollar value
/ 100
CSCI 106, Overview of C++, by Dr.
Awad Khalil
38
Coin Collection Case Study
Analysis (cont)
Use modulus % to get cents value
% 100
Design
Prompt for name
Get count of nickels and pennies
Compute total value
Calculate dollars and cents
Display results
CSCI 106, Overview of C++, by Dr.
Awad Khalil
39
Coin Collection Case Study
Implementation
Write C++ code of design
Verify correct data types needed
Mixed mode types and promotion
Testing
Test results using various input combinations
CSCI 106, Overview of C++, by Dr.
Awad Khalil
40
Coins.cpp
// File: coins.cpp
// Determines the value of a coin collection
#include <iostream>
#include <string>
using namespace std;
int main()
{
// Local data ...
string name;
int pennies;
int nickels;
int dollars;
int change;
int totalCents;
// Prompt sister for name.
cout << "Enter your first name: ";
cin >> name;
CSCI 106, Overview of C++, by Dr.
Awad Khalil
41
Coins.cpp
// Read in the count of nickels and pennies.
cout << "Enter the number of nickels: ";
cin >> nickels;
cout << "Enter the number of pennies: ";
cin >> pennies;
// Compute the total value in cents.
totalCents = 5 * nickels + pennies;
// Find the value in dollars and change.
dollars = totalCents / 100;
change = totalCents % 100;
// Display the value in dollars and change.
cout << "Good work " << name << '!' << endl;
cout << "Your collection is worth " <<
dollars << " dollars and " <<
change << " cents." << endl;
return 0;
}
CSCI 106, Overview of C++, by Dr.
Awad Khalil
42
Coins.cpp
Program output
Enter your first name and press return: Sally
Enter number of nickels and press return: 30
Enter number of pennies and press return: 77
Good work sally!
Your collection is worth 2 dollars and 27
cents.
CSCI 106, Overview of C++, by Dr.
Awad Khalil
43
Interactive Mode, Batch and Data
Files
Two modes interactive or batch
Keyboard input interactive
Batch mode data provided prior to start
File as input
Input / output redirection
Direct input to program use ‘<‘ symbol
Direct output to a file use ‘>‘ symbol
CSCI 106, Overview of C++, by Dr.
Awad Khalil
44
Input / Output Redirection
Program name < datafile
Metric < mydata
Program name > outFile
Metric > outFile
Input and output redirection
Metric < inFile > outFile
CSCI 106, Overview of C++, by Dr.
Awad Khalil
45
Common Programming Errors
Syntax
Programs rarely compile
Something always goes wrong
Systematic solutions
Compiler not descriptive
Look at line number before and after error
Watch missing ; and }
Run-time errors
Illegal operation (divide by 0)
Logic errors
Program functions differently than you expect
CSCI 106, Overview of C++, by Dr.
Awad Khalil
46