3 Lecture3 BasicElements 2023
3 Lecture3 BasicElements 2023
Technique
Lecture 3 – Basic Elements of C++
Learning Outcomes
At the end of this lecture, you should be able
to
explain the parts of C++ program
use cout object to display output to screen and
cin to read data from the keyboard
describe the use of the basic elements in C++
language including variables, literals, identifiers
and data types
do variable assignments and initialization in the
program
use arithmetic operators and construct
mathematical expressions
The Parts of a C++ Program
// sample C++ program comment
#include <iostream> preprocessor
directive
using namespace std; which namespace to
use
int main() beginning of function named
main
{ beginning of block for
main output
cout << "Hello, there!"; statement
string
return 0;send 0 to operating system literal
} end of block for
main
Special Characters
int item;
Variable Definition in Program 2-7
Variable
Definition
Literals
Literal: a value that is written into a program’s
code.
20 is an integer
literal
String Literals in Program 2-9
itemsOrdered
totalSales Yes
total_Sales Yes
itemsOrdered = 15;
Integer Literals
Integer Literals
Integer literals are stored in memory as ints
by default
To store an integer constant in a long memory
location, put ‘L’ at the end of the number:
1234L
Constants that begin with ‘0’ (zero) are base
8: 075
Constants that begin with ‘0x’ are base 16:
0x75A
The char Data Type
Used to hold characters or very small integer
values
Usually 1 byte of memory
Numeric value of character from the character
set is stored in memory:
CODE: MEMORY:
char letter; letter
letter = 'C';
67
Character Literals
Character literals must be enclosed in single
quote marks. Example:
'A'
Character Literals in Program 2-13
Character Strings
A series of characters in consecutive
memory locations:
"Hello"
Stored with the null terminator, \0, at the
end:
allDone finished
1 0
Boolean Variables in Program 2-17
Determining the Size of a Data Type
The sizeof operator gives the size of any data
type or variable:
double amount;
cout << "A double is stored in "
<< sizeof(double) << "bytes\n";
cout << "Variable amount is stored in "
<< sizeof(amount)
<< "bytes\n";
Variable Assignments and Initialization
An assignment statement uses the = operator
to store a value in a variable.
item = 12;
// ERROR!
12 = item;
Variable Initialization
To initialize a variable means to assign it a
value when it is defined:
int height;
cout << "How tall is the room? ";
cin >> height;
Displaying a Prompt
A prompt is a message that instructs the user
to enter data.
You should always use cout to display a
prompt before each cin statement.
- subtraction ans = 7 - 3; 4
* multiplication ans = 7 * 3; 21
/ division ans = 7 / 3; 2
% modulus ans = 7 % 3; 1
Arithmetic Operators in Program 2-21
A Closer Look at the / Operator
/ (division) operator performs integer division
if both operands are integers
cout << 13 / 5; // displays 2
cout << 91 / 7; // displays 13
If either operand is floating point, the result is
floating point
cout << 13 / 5.0; // displays 2.6
cout << 91.0 / 7; // displays 13.0
A Closer Look at the % Operator
% (modulus) operator computes the remainder
resulting from integer division
cout << 13 % 5; // displays 3
% requires integers for both operands
cout << 13 % 5.0; // error
Mathematical Expressions
Can create complex expressions using
multiple mathematical operators
An expression can be a literal, a variable,
or a mathematical combination of
constants and variables
Can be used in assignment, cout, other
statements:
area = 2 * PI * radius;
cout << "border is: " << 2*(l+w);
Order of Operations
In an expression with more than one
operator, evaluate in this order:
- (unary negation), in order, left to right
* / %, in order, left to right
+ -, in order, left to right
In the expression 2 + 2 * 2 – 2
evaluate
evaluate evaluat third
second e
first
Order of Operations
Associativity of Operators
- (unary negation) associates right to left
*, /, %, +, - associate right to left
parentheses ( ) can be used to override the
order of operations:
2 + 2 * 2 – 2 = 4
(2 + 2) * 2 – 2 = 6
2 + 2 * (2 – 2) = 2
(2 + 2) * (2 – 2) = 0
Grouping with Parentheses
Algebraic Expressions
Multiplication requires an operator:
Area=lw is written as Area = l * w;
There is no exponentiation operator:
Area=s2 is written as Area = pow(s, 2);
Parentheses may be needed to maintain order
of operations:
is written as
m = (y2-y1) /(x2-x1);
y 2 y1
m
x 2 x1
Algebraic Expressions
Multiple Assignment and Combined
Assignment
The = can be used to assign a value to
multiple variables:
x = y = z = 5;
Value of = is the value that is assigned
Associates right to left:
x = (y = (z = 5));
sum = sum + 1;
Continued…
Increment and Decrement
Operators in Program 5-1
Prefix vs. Postfix
++ and -- operators can be used in complex
statements and expressions
In prefix mode (++val, --val) the operator
increments or decrements, then returns the
value of the variable
In postfix mode (val++, val--) the operator
returns the value of the variable, then
increments or decrements
Prefix vs. Postfix - Examples
int num, val = 12;
cout << val++; // displays 12,
// val is now 13;
cout << ++val; // sets val to 14,
// then displays it
num = --val; // sets val to 13,
// stores 13 in num
num = val--; // stores 13 in num,
// sets val to 12
Notes on Increment and Decrement
Can be used in expressions:
result = num1++ + --num2;
Must be applied to something that has a
location in memory. Cannot have:
result = (num1 + num2)++;
Can be used in relational expressions:
if (++num > limit)
pre- and post-operations will cause different
comparisons
Named Constants
Named constant (constant variable): variable
whose content cannot be changed during
program execution
Used for representing constant values with
descriptive names:
const double TAX_RATE = 0.0675;
const int NUM_STATES = 50;
Often named in uppercase letters
Named Constants in Program 2-28
Formatting Output
Can control how output displays for numeric,
string data:
size
position
number of digits
Requires iomanip header file
Stream Manipulators
Used to control how an output field is
displayed
Continued…
The setw Stream Manipulator in Program 3-
13
Stream Manipulators
Some affect values until changed again:
fixed: use decimal notation for floating-point
values
setprecision(x): when used with fixed, print
floating-point value using x digits after the
decimal. Without fixed, print floating-point value
using x significant digits
showpoint: always print decimal for floating-point
values
More Stream Manipulators in Program 3-17
Continued…
More Stream Manipulators in Program 3-17
Stream Manipulators
Programming Style
The visual organization of the source code
Includes the use of spaces, tabs, and blank
lines
Does not affect the syntax of the program
Affects the readability of the source code
Programming Style
Common elements to improve readability:
Braces { } aligned vertically
Indentation of statements within a set of
braces
Blank lines between declaration and other
statements
Long statements wrapped over multiple lines
with aligned operators
Standard and Prestandard C++
Older-style C++ programs:
Use .h at end of header files:
#include <iostream.h>
Use #define preprocessor directive instead of
const definitions
Do not use using namespace convention
May not compile with a standard C++ compiler
#define directive in Program 2-31
Ask yourself
Can you describe the components in a C++
program?
Do you know how to display output to screen
using cout?
Do you know what are variables, literals and
identifiers?
Can you describe the data types in C++ and what
are they used for?
Do you know how to receive an input from the
keyboard using cin?
Do you know how to do the variable assignment?
Do you know how to use the arithmetic operators?