0% found this document useful (0 votes)
26 views

BITP 1113 Programming Technique: Lecture 3 - Basic Elements of C++

The document discusses the basic elements of C++ programming including data types, variables, literals, and input/output. It covers integer, floating point, character, string, and boolean data types. Key points include: - Variables are used to store and manipulate data in a program. - Literals are fixed values written directly in code like numbers and strings. - The cout object displays output and cin reads input from the keyboard or console. - Different data types store different kinds of data like integers, characters, and floating point numbers.

Uploaded by

Xian Lee
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

BITP 1113 Programming Technique: Lecture 3 - Basic Elements of C++

The document discusses the basic elements of C++ programming including data types, variables, literals, and input/output. It covers integer, floating point, character, string, and boolean data types. Key points include: - Variables are used to store and manipulate data in a program. - Literals are fixed values written directly in code like numbers and strings. - The cout object displays output and cin reads input from the keyboard or console. - Different data types store different kinds of data like integers, characters, and floating point numbers.

Uploaded by

Xian Lee
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 88

BITP 1113 Programming 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

2 FTMK - UTeM - Semester 1 2011/2012


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 statement
cout << "Hello, there!";
string literal
return 0; send 0 to operating system
} end of block for main

3 FTMK - UTeM - Semester 1 2011/2012


Special Characters

Character Name Meaning


// Double slash Beginning of a comment
# Pound sign Beginning of preprocessor
directive
<> Open/close brackets Enclose filename in #include
() Open/close Used when naming a function
parentheses
{} Open/close brace Encloses a group of statements

"" Open/close quotation Encloses string of characters


marks
; Semicolon End of a programming
statement
4 FTMK - UTeM - Semester 1 2011/2012
The cout Object
 Displays output on the computer screen

 You use the stream insertion operator << to send output to


cout:
cout << "Programming is fun!";
 Can be used to send more than one item to cout:

cout << "Hello " << "there!";


Or:

cout << "Hello ";


cout << "there!";

5 FTMK - UTeM - Semester 1 2011/2012


The cout Object and the endl Manipulator
 This produces one line of output:

cout << "Programming is ";


cout << "fun!";

 You can use the endl manipulator to start a new line of


output. This will produce two lines of output:

cout << "Programming is" << endl;


cout << "fun!";

6 FTMK - UTeM - Semester 1 2011/2012


The \n Escape Sequence
 You can also use the \n escape sequence to start a new
line of output. This will produce two lines of output:

cout << "Programming is\n";


cout << "fun!";

Notice that the \n is INSIDE


the string.

7 FTMK - UTeM - Semester 1 2011/2012


The #include Directive
 Inserts the contents of another file into the program
 This is a preprocessor directive, not part of C++ language
 #include lines not seen by compiler
 Do not place a semicolon at end of #include line

8 FTMK - UTeM - Semester 1 2011/2012


Variables and Literals
 Variable: a storage location in memory

 Has a name and a type of data it can hold


 Must be defined before it can be used:

int item;

9 FTMK - UTeM - Semester 1 2011/2012


Variable Definition in Program 2-7

Variable Definition

10 FTMK - UTeM - Semester 1 2011/2012


Literals
 Literal: a value that is written into a program’s code.

"hello, there" (string literal)


12 (integer literal)

11 FTMK - UTeM - Semester 1 2011/2012


Integer Literal in Program 2-9

20 is an integer literal

12 FTMK - UTeM - Semester 1 2011/2012


String Literals in Program 2-9

These are string literals

13 FTMK - UTeM - Semester 1 2011/2012


Identifiers
 An identifier is a programmer-defined name for some part
of a program: variables, functions, etc.

14 FTMK - UTeM - Semester 1 2011/2012


C++ Key Words

You cannot use any of the C++ key words as an


identifier. These words have reserved meaning.

15 FTMK - UTeM - Semester 1 2011/2012


Variable Names
 A variable name should represent the purpose of the
variable. For example:

itemsOrdered

The purpose of this variable is to hold the number of items


ordered.

16 FTMK - UTeM - Semester 1 2011/2012


Identifier Rules
 The first character of an identifier must be an alphabetic
character or and underscore ( _ ),
 After the first character you may use alphabetic
characters, numbers, or underscore characters.
 Upper- and lowercase characters are distinct

17 FTMK - UTeM - Semester 1 2011/2012


Valid and Invalid Identifiers

IDENTIFIER VALID? REASON IF INVALID

totalSales Yes

total_Sales Yes

total.Sales No Cannot contain .

4thQtrSales No Cannot begin with digit

totalSale$ No Cannot contain $

18 FTMK - UTeM - Semester 1 2011/2012


Integer Data Types

• Integer variables can hold whole numbers such as 12,


7, and -99.

19 FTMK - UTeM - Semester 1 2011/2012


Defining Variables
 Variables of the same type can be defined
- On separate lines:
int length;
int width;
unsigned int area;
- On the same line:
int length, width;
unsigned int area;
 Variables of different types must be in different definitions

20 FTMK - UTeM - Semester 1 2011/2012


Integer Types in Program 2-10

This program has three variables: checking,


miles, and days

21 FTMK - UTeM - Semester 1 2011/2012


Integer Literals
 An integer literal is an integer value that is typed into a
program’s code. For example:

itemsOrdered = 15;

In this code, 15 is an integer literal.

22 FTMK - UTeM - Semester 1 2011/2012


Integer Literals in Program 2-10

Integer Literals

23 FTMK - UTeM - Semester 1 2011/2012


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

24 FTMK - UTeM - Semester 1 2011/2012


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

25 FTMK - UTeM - Semester 1 2011/2012


Character Literals
 Character literals must be enclosed in single quote marks.
Example:

'A'

26 FTMK - UTeM - Semester 1 2011/2012


Character Literals in Program 2-13

27 FTMK - UTeM - Semester 1 2011/2012


Character Strings
 A series of characters in consecutive memory
locations:
"Hello"
 Stored with the null terminator, \0, at the end:

 Comprised of the characters between the " "

H e l l o \0

28 FTMK - UTeM - Semester 1 2011/2012


The C++ string Class
 Special data type supports working with strings
#include <string>
 Can define string variables in programs:
string firstName, lastName;
 Can receive values with assignment operator:
firstName = "George";
lastName = "Washington";
 Can be displayed via cout
cout << firstName << " " << lastName;

29 FTMK - UTeM - Semester 1 2011/2012


The string class in Program 2-15

30 FTMK - UTeM - Semester 1 2011/2012


Floating-Point Data Types
 The floating-point data types are:
float
double
long double

 They can hold real numbers such as:


12.45 -3.8

 Stored in a form similar to scientific notation


 All floating-point numbers are signed

31 FTMK - UTeM - Semester 1 2011/2012


Floating-Point Data Types

32 FTMK - UTeM - Semester 1 2011/2012


Floating-Point Literals
 Can be represented in
 Fixed point (decimal) notation:
31.4159 0.0000625
 E notation:
3.14159E1 6.25e-5
 Are double by default
 Can be forced to be float (3.14159f) or long double
(0.0000625L)

33 FTMK - UTeM - Semester 1 2011/2012


Floating-Point Data Types in Program 2-16

34 FTMK - UTeM - Semester 1 2011/2012


The bool Data Type
 Represents values that are true or false
 bool variables are stored as small integers
 false is represented by 0, true by 1:
bool allDone = true;
bool finished = false;

allDone finished

1 0

35 FTMK - UTeM - Semester 1 2011/2012


Boolean Variables in Program 2-17

36 FTMK - UTeM - Semester 1 2011/2012


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";

37 FTMK - UTeM - Semester 1 2011/2012


Variable Assignments and Initialization
 An assignment statement uses the = operator to store a
value in a variable.

item = 12;

 This statement assigns the value 12 to the item variable.

38 FTMK - UTeM - Semester 1 2011/2012


Assignment
 The variable receiving the value must appear on the left
side of the = operator.
 This will NOT work:

// ERROR!
12 = item;

39 FTMK - UTeM - Semester 1 2011/2012


Variable Initialization
 To initialize a variable means to assign it a value when it
is defined:

int length = 12;

 Can initialize some or all variables:


int length = 12, width = 5, area;

40 FTMK - UTeM - Semester 1 2011/2012


Variable Initialization in Program 2-19

41 FTMK - UTeM - Semester 1 2011/2012


Scope
 The scope of a variable: the part of the program in which
the variable can be accessed
 A variable cannot be used before it is defined

42 FTMK - UTeM - Semester 1 2011/2012


Variable Out of Scope in Program 2-20

43 FTMK - UTeM - Semester 1 2011/2012


The cin Object
 Standard input object
 Like cout, requires iostream file
 Used to read input from keyboard
 Information retrieved from cin with >>
 Input is stored in one or more variables

44 FTMK - UTeM - Semester 1 2011/2012


The cin Object in Program 3-1

45 FTMK - UTeM - Semester 1 2011/2012


The cin Object
 cin converts data to the type that matches the variable:

int height;
cout << "How tall is the room? ";
cin >> height;

46 FTMK - UTeM - Semester 1 2011/2012


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.

cout << "How tall is the room? ";


cin >> height;

47 FTMK - UTeM - Semester 1 2011/2012


The cin Object
 Can be used to input more than one value:
cin >> height >> width;

 Multiple values from keyboard must be separated by


spaces

 Order is important: first value entered goes to first


variable, etc.

48 FTMK - UTeM - Semester 1 2011/2012


The cin Object Gathers Multiple Values in
Program 3-2

49 FTMK - UTeM - Semester 1 2011/2012


Arithmetic Operators
 Used for performing numeric calculations
 C++ has unary, binary, and ternary operators:
 unary (1 operand) -5
 binary (2 operands) 13 - 7
 ternary (3 operands) exp1 ? exp2 : exp3

50 FTMK - UTeM - Semester 1 2011/2012


Binary Arithmetic Operators

SYMBOL OPERATION EXAMPLE VALUE OF


ans
+ addition ans = 7 + 3; 10

- subtraction ans = 7 - 3; 4

* multiplication ans = 7 * 3; 21

/ division ans = 7 / 3; 2

% modulus ans = 7 % 3; 1

51 FTMK - UTeM - Semester 1 2011/2012


Arithmetic Operators in Program 2-21

52 FTMK - UTeM - Semester 1 2011/2012


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

53 FTMK - UTeM - Semester 1 2011/2012


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

54 FTMK - UTeM - Semester 1 2011/2012


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);

55 FTMK - UTeM - Semester 1 2011/2012


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 evaluate third
second first

56 FTMK - UTeM - Semester 1 2011/2012


Order of Operations

57 FTMK - UTeM - Semester 1 2011/2012


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

58 FTMK - UTeM - Semester 1 2011/2012


Grouping with Parentheses

59 FTMK - UTeM - Semester 1 2011/2012


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

60 FTMK - UTeM - Semester 1 2011/2012


Algebraic Expressions

61 FTMK - UTeM - Semester 1 2011/2012


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));

value value value


is 5 is 5 is 5

62 FTMK - UTeM - Semester 1 2011/2012


Combined Assignment
 Look at the following statement:

sum = sum + 1;

This adds 1 to the variable sum.

63 FTMK - UTeM - Semester 1 2011/2012


Other Similar Statements

64 FTMK - UTeM - Semester 1 2011/2012


Combined Assignment
 The combined assignment operators provide a
shorthand for these types of statements.
 The statement
sum = sum + 1;
is equivalent to
sum += 1;

65 FTMK - UTeM - Semester 1 2011/2012


Combined Assignment Operators

66 FTMK - UTeM - Semester 1 2011/2012


The Increment and Decrement
Operators
 ++ is the increment operator.

It adds one to a variable.

val++; is the same as val = val + 1;

 ++ can be used before (prefix) or after (postfix) a


variable:
++val; val++;

67 FTMK - UTeM - Semester 1 2011/2012


The Increment and Decrement
Operators
 -- is the decrement operator.

It subtracts one from a variable.

val--; is the same as val = val - 1;

 -- can be also used before (prefix) or after (postfix) a


variable:
--val; val--;

68 FTMK - UTeM - Semester 1 2011/2012


Increment and Decrement
Operators in Program 5-1

Continued…
69 FTMK - UTeM - Semester 1 2011/2012
Increment and Decrement
Operators in Program 5-1

70 FTMK - UTeM - Semester 1 2011/2012


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

71 FTMK - UTeM - Semester 1 2011/2012


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

72 FTMK - UTeM - Semester 1 2011/2012


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

73 FTMK - UTeM - Semester 1 2011/2012


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

74 FTMK - UTeM - Semester 1 2011/2012


Named Constants in Program 2-28

75 FTMK - UTeM - Semester 1 2011/2012


Formatting Output
 Can control how output displays for numeric, string data:
 size
 position
 number of digits
 Requires iomanip header file

76 FTMK - UTeM - Semester 1 2011/2012


Stream Manipulators
 Used to control how an output field is displayed

 Some affect just the next value displayed:


 setw(x): print in a field at least x spaces wide. Use more
spaces if field is not wide enough

77 FTMK - UTeM - Semester 1 2011/2012


The setw Stream Manipulator in Program 3-13

Continued…
78 FTMK - UTeM - Semester 1 2011/2012
The setw Stream Manipulator in Program 3-13

79 FTMK - UTeM - Semester 1 2011/2012


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

80 FTMK - UTeM - Semester 1 2011/2012


More Stream Manipulators in Program 3-17

Continued…
81 FTMK - UTeM - Semester 1 2011/2012
More Stream Manipulators in Program 3-17

82 FTMK - UTeM - Semester 1 2011/2012


Stream Manipulators

83 FTMK - UTeM - Semester 1 2011/2012


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

84 FTMK - UTeM - Semester 1 2011/2012


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

85 FTMK - UTeM - Semester 1 2011/2012


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

86 FTMK - UTeM - Semester 1 2011/2012


#define directive in Program 2-31

87 FTMK - UTeM - Semester 1 2011/2012


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?

88 FTMK - UTeM - Semester 1 2011/2012

You might also like