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