4/9/2025
Computer Engineering Department
1
WEEK NO:02
C++ Basics
1
4/9/2025
Overview
2.1 Variables and Assignments
2.2 Input and Output
2.3 Data Types and Expressions
2.4 Simple Flow of Control
2.5 Program Style
Variables and Assignments
Variables are like small blackboards
We can write a number on them
We can change the number
We can erase the number
C++ variables are names for memory locations
We can write a value in them
We can change the value stored there
We cannot erase the memory location
Some value is always there
4
2
4/9/2025
Variables and Assignments
Identifiers
Variables names are called identifiers
Choosing variable names
Use meaningful names that represent data to
be stored
First character must be
a letter
the underscore character
Remaining characters must be
letters
numbers
underscore character
3
4/9/2025
Keywords
Keywords (also called reserved words)
Are used by the C++ language
Must be used as they are defined in
the programming language
Cannot be used as identifiers
Declaring Variables (Part 1)
Before use, variables must be declared
Tells the compiler the type of data to store
Examples: int number_of_bars;
double one_weight, total_weight;
int is an abbreviation for integer.
could store 3, 102, 3211, -456, etc.
number_of_bars is of type integer
double represents numbers with a fractional
component
could store 1.34, 4.0, -345.6, etc.
one_weight and total_weight are both of type double
8
4
4/9/2025
Declaring Variables (Part 2)
Declaring Variables (Part 3)
Declaration syntax:
Type_name Variable_1 , Variable_2, . . . ;
Declaration Examples:
double average, m_score, total_score;
double moon_distance;
int age, num_students;
int cars_waiting;
10
5
4/9/2025
Assignment Statements
An assignment statement changes the value of a variable
total_weight = one_weight + number_of_bars;
total_weight is set to the sum one_weight + number_of_bars
Assignment statements end with a semi-colon
The single variable to be changed is always on the left
of the assignment operator ‘=‘
On the right of the assignment operator can be
Constants -- age = 21;
Variables -- my_cost = your_cost;
Expressions -- circumference = diameter * 3.14159; 11
Assignment Statements and Algebra
The ‘=‘ operator in C++ is not an equal sign
The following statement cannot be true in algebra
number_of_bars = number_of_bars + 3;
In C++ it means the new value of number_of_bars
is the previous value of number_of_bars plus 3
12
6
4/9/2025
Initializing Variables
Declaring a variable does not give it a value
Giving a variable its first value is initializing the variable
Variables are initialized in assignment statements
double mpg; // declare the variable
mpg = 26.3; // initialize the variable
Declaration and initialization can be combined
using two methods
Method 1
double mpg = 26.3, area = 0.0 , volume;
Method 2
double mpg(26.3), area(0.0), volume;
13
Input and Output
A data stream is a sequence of data
Typically in the form of characters or numbers
An input stream is data for the program to use
Typically originates
at the keyboard
at a file
An output stream is the program’s output
Destination is typically
the monitor
a file
14
7
4/9/2025
Output using cout
cout is an output stream sending data to the monitor
The insertion operator "<<" inserts data into cout
Example:
cout << number_of_bars << " candy bars\n";
This line sends two items to the monitor
The value of number_of_bars
The quoted string of characters " candy bars\n"
Notice the space before the ‘c’ in candy
The ‘\n’ causes a new line to be started following the ‘s’ in bars
A new insertion operator is used for each item of output
15
Examples Using cout
This produces the same result as the previous sample
cout << number_of_bars ;
cout << " candy bars\n";
Here arithmetic is performed in the cout statement
cout << "Total cost is $" << (price + tax);
Quoted strings are enclosed in double quotes ("Walter")
Don’t use two single quotes (')
A blank space can also be inserted with
cout << " " ;
if there are no strings in which a space is desired as
in " candy bars\n" 16
8
4/9/2025
Include Directives
Include Directives add library files to our programs
To make the definitions of the cin and cout available to
the program:
#include <iostream>
Using Directives include a collection of defined names
To make the names cin and cout available to our program:
using namespace std; 17
Escape Sequences
Escape sequences tell the compiler to treat characters
in a special way
'\' is the escape character
To create a newline in output use
\n – cout << "\n";
or the newer alternative
cout << endl;
Other escape sequences:
\t -- a tab
\\ -- a backslash character
\" -- a quote character 18
9
4/9/2025
Formatting Real Numbers
Real numbers (type double) produce a variety of outputs
double price = 78.5;
cout << "The price is $" << price << endl;
The output could be any of these:
The price is $78.5
The price is $78.500000
The price is $7.850000e01
The most unlikely output is:
The price is $78.50
19
Showing Decimal Places
cout includes tools to specify the output of type double
To specify fixed point notation
setf(ios::fixed)
To specify that the decimal point will always be shown
setf(ios::showpoint)
To specify that two decimal places will always be shown
precision(2)
Example:cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << "The price is "
<< price << endl;
20
10
4/9/2025
Input Using cin
cin is an input stream bringing data from the keyboard
The extraction operator (>>) removes data to be used
Example:
cout << "Enter the number of bars in a package\n";
cout << " and the weight in ounces of one bar.\n";
cin >> number_of_bars;
cin >> one_weight;
This code prompts the user to enter data then
reads two data items from cin
The first value read is stored in number_of_bars
The second value read is stored in one_weight
Data is separated by spaces when entered
21
Reading Data From cin
Multiple data items are separated by spaces
Data is not read until the enter key is pressed
Allows user to make corrections
Example:
cin >> v1 >> v2 >> v3;
Requires three space separated values
User might type
34 45 12 <enter key>
22
11
4/9/2025
Designing Input and Output
Prompt the user for input that is desired
cout statements provide instructions
cout << "Enter your age: ";
cin >> age;
Notice the absence of a new line before using cin
Echo the input by displaying what was read
Gives the user a chance to verify data
cout << age << " was entered." << endl;
23
Data Types and Expressions
2 and 2.0 are not the same number
A whole number such as 2 is of type int
A real number such as 2.0 is of type double
Numbers of type int are stored as exact values
Numbers of type double may be stored as approximate
values due to limitations on number of significant
digits that can be represented
24
12
4/9/2025
Writing Integer constants & Double Constant
Type int does not contain decimal points
Examples:
34 45 1 89
Type double can be written in two ways
Simple form must include a decimal point
Examples: 34.1 23.0034 1.0 89.9
Floating Point Notation (Scientific Notation)
Examples: 3.41e1 means 34.1
3.67e17 means 367000000000000000.0
5.89e-6 means 0.00000589
Number left of e does not require a decimal point
Exponent cannot contain a decimal point
25
Other Number Types
Various number types have different memory
requirements
More precision requires more bytes of memory
Very large numbers require more bytes of memory
Very small numbers require more bytes of memory
26
13
4/9/2025
Other Number Types
Various number types have
different memory
requirements
More precision requires
more bytes of memory
Very large numbers require
more bytes of memory
Very small numbers
require more bytes of
memory
27
Integer types
long or long int (often 4 bytes)
Equivalent forms to declare very large integers
long big_total;
long int big_total;
short or short int (often 2 bytes)
Equivalent forms to declare smaller integers
short small_total;
short int small_total;
28
14
4/9/2025
Floating point types
long double (often 10 bytes)
Declares floating point numbers with up to
19 significant digits
long double big_number;
float (often 4 bytes)
Declares floating point numbers with up to
7 significant digits
float not_so_big_number;
29
Type char
Computers process character data too
char
Short for character
Can be any single character from the keyboard
To declare a variable of type char:
char letter;
30
15
4/9/2025
Type Char and Char Constant
Computers process character Character constants are enclosed
data too in single quotes
char
Short for character char letter = 'a';
Can be any single character
from the keyboard Strings of characters, even if only
one character
To declare a variable of type
char: is enclosed in double quotes
"a" is a string of characters
char letter; containing one character
'a' is a value of type character
31
Type Char and Char Constant
Computers process character Character constants are enclosed in
data too single quotes
char
Short for character
char letter = 'a';
Can be any single character
from the keyboard Strings of characters, even if only one
character
To declare a variable of type is enclosed in double quotes
char: "a" is a string of characters
containing one character
char letter;
'a' is a value of type character
32
16
4/9/2025
Reading Character Data
cin skips blanks and line breaks looking for data
The following reads two characters but skips
any space that might be between
char symbol1, symbol2;
cin >> symbol1 >> symbol2;
User normally separate data items by spaces
J D
Results are the same if the data is not separated
by spaces
JD
33
Reading Character Data
34
17
4/9/2025
Type string
string is a class, different from the primitive data types discussed so
far
Difference is discussed in Chapter 8
Use double quotes around the text to store into the string variable
Requires the following be added to the top of your program:
#include <string>
To declare a variable of type string:
string name = "Apu Nahasapeemapetilon";
35
Type string
36
18
4/9/2025
Type Compatibilities
In general store values in variables of the
same type
This is a type mismatch:
int int_variable;
int_variable = 2.99;
If your compiler allows this, int_variable will
most likely contain the value 2, not 2.99
37
int double (part 1)
Variables of type double should not Integer values can normally be stored in
be assigned
variables of type double
to variables of type int
int int_variable; double double_variable;
double double_variable; double_variable = 2;
double_variable = 2.00;
int_variable = double_variable; double_variable will contain 2.0
If allowed, int_variable contains
2, not 2.00
38
19
4/9/2025
int double
Variables of type double should not Integer values can normally be stored in
be assigned
variables of type double
to variables of type int
int int_variable; double double_variable;
double double_variable; double_variable = 2;
double_variable = 2.00;
int_variable = double_variable; double_variable will contain 2.0
If allowed, int_variable contains
2, not 2.00
39
char int
The following actions are possible but generally not
recommended!
It is possible to store char values in integer
variables
int value = 'A';
value will contain an integer representing 'A'
It is possible to store int values in char
variables
char letter = 65;
40
20
4/9/2025
bool int
The following actions are possible but generally
not recommended!
Values of type bool can be assigned to int
variables
True is stored as 1
False is stored as 0
Values of type int can be assigned to bool
variables
Any non-zero integer is stored as true
Zero is stored as false
41
Arithmetic
Arithmetic is performed with operators
+ for addition
- for subtraction
* for multiplication
/ for division
Example: storing a product in the variable
total_weight
total_weight = one_weight * number_of_bars;
42
21
4/9/2025
Results of Operators
Arithmetic operators can be used with any
numeric type
An operand is a number or variable
used by the operator
Result of an operator depends on the types
of operands
If both operands are int, the result is int
If one or both operands are double, the result is double
43
Division of Doubles
Division with at least one operator of type double
produces the expected results.
double divisor, dividend, quotient;
divisor = 3;
dividend = 5;
quotient = dividend / divisor;
quotient = 1.6666…
Result is the same if either dividend or divisor is
of type int
44
22
4/9/2025
Division of Integers
Be careful with the division operator!
int / int produces an integer result
(true for variables or numeric constants)
int dividend, divisor, quotient;
dividend = 5;
divisor = 3;
quotient = dividend / divisor;
The value of quotient is 1, not 1.666…
Integer division does not round the result, the
fractional part is discarded!
45
Integer Remainders
% operator gives the remainder from integer
division
int dividend, divisor, remainder;
dividend = 5;
divisor = 3;
remainder = dividend % divisor;
The value of remainder is 2
46
23
4/9/2025
Integer Remainders
% operator gives the remainder
from integer division
int dividend, divisor, remainder;
dividend = 5;
divisor = 3;
remainder = dividend % divisor;
The value of remainder is 2
47
Arithmetic Expressions
Use spacing to make expressions readable
Which is easier to read?
x+y*z or x+y*z
Precedence rules for operators are the same as
used in your algebra classes
Use parentheses to alter the order of operations
x + y * z ( y is multiplied by z first)
(x + y) * z ( x and y are added first)
48
24
4/9/2025
Arithmetic Expressions
49
Operator Shorthand
Some expressions occur so often that C++
contains to shorthand operators for them
All arithmetic operators can be used this way
+= count = count + 2; becomes
count += 2;
*= bonus = bonus * 2; becomes
bonus *= 2;
/= time = time / rush_factor; becomes
time /= rush_factor;
%= remainder = remainder % (cnt1+ cnt2); becomes
remainder %= (cnt1 + cnt2);
50
25
4/9/2025
Operator Shorthand
Some expressions occur so often that C++
contains to shorthand operators for them
All arithmetic operators can be used this way
+= count = count + 2; becomes
count += 2;
*= bonus = bonus * 2; becomes
bonus *= 2;
/= time = time / rush_factor; becomes
time /= rush_factor;
%= remainder = remainder % (cnt1+ cnt2); becomes
remainder %= (cnt1 + cnt2);
51
Comments
// is the symbol for a single line comment
Comments are explanatory notes for the programmer
All text on the line following // is ignored by the
compiler
Example: //calculate regular wages
gross_pay = rate * hours;
/* and */ enclose multiple line comments
Example: /* This is a comment that spans
multiple lines without a
comment symbol on the middle line
*/
52
26
4/9/2025
Constants
Number constants have no mnemonic value
Number constants used throughout a program
are difficult to find and change when needed
Constants
Allow us to name number constants so they have
meaning
Allow us to change all occurrences simply by
changing the value of the constant
53
Constants
const is the keyword to declare a
constant
Example:
const int
WINDOW_COUNT = 10;
declares a constant named
WINDOW_COUNT
Its value cannot be changed by
the program like a
variable
It is common to name
constants with all capitals
54
27