2 PDF
2 PDF
2
Introduction
• Computer program
– Sequence of statements whose objective is to accomplish
a task
• Programming
– Process of planning and creating a program
• Real-world analogy: a recipe for cooking
3
First C++ Program
4
Comments
• Comments are for the reader, not the compiler
• Two types:
– Single line: begin with //
// This is a C++ program.
// Welcome to C++ Programming.
– Multiple line: enclosed between /* and */
/*
You can include comments that can
occupy several lines.
*/
5
Preprocessor Directives
• C++ has a small number of operations
• Many functions and symbols needed to run a C++
program are provided as collection of libraries
• Every library has a name and is referred to by a
header file
• Preprocessor directives are commands supplied to
the preprocessor program
• All preprocessor commands begin with #
• No semicolon at the end of these commands
6
Preprocessor Directives (cont’d.)
• Syntax to include a header file:
• For example:
#include <iostream>
– Causes the preprocessor to include the header file
iostream in the program
• Preprocessor commands are processed before the
program goes through the compiler
7
namespace and Using cin and
cout in a Program
• cin and cout are declared in the header file
iostream, but within std namespace
• To use cin and cout in a program, use the
following two statements:
#include <iostream>
using namespace std;
8
Main Function
• A C++ program is a collection of functions, one of
which is the function main
• The first line of the function main is called the
heading of the function:
– int main()
• The statements enclosed between the curly braces
{ and } form the body of the function
• The program execution starts from the main
function
9
Output
• The syntax of cout and << is:
10
Output (cont’d.)
• A manipulator is used to format the output
– Example: endl causes insertion point to move to
beginning of next line
11
Output (cont’d.)
• The new line character is '\n'
– May appear anywhere in the string
cout << "Hello there.";
cout << "My name is James.";
Output:
Hello there.My name is James.
13
Output(cont’d) - Example
14
Special Symbols
• Token: the smallest individual unit of a program
written in any language
• C++ tokens include special symbols, Keywords, and
identifiers.
• Special symbols in C++ include:
– Punctuators(e.g. [] () {} , ; : * #).
– Operators(arithmetical operators, Relational operators, Logical
operators, Unary operators, Assignment operators, Conditional
operators, Comma operator).
15
Reserved Words (Keywords)
• Reserved word symbols (or keywords):
– Cannot be redefined within program
– Cannot be used for anything other than their intended use
Examples:
– int
– float
– double
– char
– const
– void
– return
16
Whitespaces
• Every C++ program contains whitespaces
– Include blanks, tabs, and newline characters
• Used to separate special symbols, reserved words,
and identifiers
• Proper utilization of whitespaces is important
– Can be used to make the program more readable
17
Identifiers
• Identifier: the name of something [such as variables,
type, template, class ,or function] that appears in a
program[]
– Consists of letters, digits, and the underscore character (_)
– Must begin with a letter or underscore
• C++ is case sensitive
– NUMBER is not the same as number
• Two predefined identifiers are cout and cin
• Unlike reserved words, predefined identifiers may be
redefined, but it is not a good idea
18
Identifiers (cont'd.)
• Identifier restrictions:
– Do not use C++ keywords.
– Never start your identifier with a digit (number) always start it with
alphabet or underscore.
– Do not use white spaces, use underscores instead.
– Do not use special symbols such as #, $,+,=,-,! etc.
• Legal identifiers in C++: first, conversion ,payrate,
counter1
19
Data Types
• Data type: set of values together with a set of
operations
• C++ data types fall into three categories:
– Simple data type
– Structured data type
– Pointers
20
Simple Data Types
• Three categories of simple data
– Integral: integers (numbers without a decimal)
• Can be further categorized:
– char, short, int, long, bool, unsigned char,
unsigned short, unsigned int, unsigned long
– Floating-point: decimal numbers
– Enumeration type: user-defined data type
21
Simple Data Types (cont’d.)
22
int Data Type
• Examples:
-6728
0
78
+763
• Cannot use a comma within an integer
– Commas are only used for separating items in a list
23
bool Data Type
• bool type
– Two values: true and false
– Manipulate logical (Boolean) expressions
• true and false
– Logical values
• bool, true, and false
– Reserved word
– Any none zero value is considered as true.
• bool x = -5; // x is true
• bool y = 10; // y is true
• bool w = 0; // w is false
24
char Data Type
• The smallest integral data type
• Used for single characters: letters, digits, and special
symbols
• Each character is enclosed in single quotes
– 'A', 'a', '0', '*', '+', '$', '&'
• A blank space is a character
– Written ' ', with a space left between the single quotes
25
char Data Type (cont’d.)
• Different character data sets exist
• ASCII: American Standard Code for Information
Interchange
– Each of 128 values in ASCII code set represents a different
character
– Characters have a predefined ordering based on the ASCII
numeric value
• Collating sequence: ordering of characters based on
the character set code
26
ASCII Table
27
Floating-Point Data Types
• C++ uses scientific notation to represent real
numbers (floating-point notation)
28
Floating-Point Data Types (cont’d.)
• float: represents any real number
– Range: -3.4E+38 to 3.4E+38 (four bytes)
• double: represents any real number
– Range: -1.7E+308 to 1.7E+308 (eight bytes)
• Minimum and maximum values of data types are
system dependent
29
Floating-Point Data Types (cont’d.)
• Maximum number of significant digits (decimal
places) for float values: 6 or 7
• Maximum number of significant digits for double:
15
• Precision: maximum number of significant digits
– Float values are called single precision
– Double values are called double precision
30
Variables
• Variable: memory location whose content may
change during execution
• Data must be loaded into main memory before it can
be manipulated
• Storing data in memory is a two-step process:
– Instruct computer to allocate memory (define a variable)
– Include statements to put data into memory (set its value)
31
Variables (cont’d.)
• To declare a variable, must specify the data type it will store
– determines the size and layout of the variable's memory
– The range of values that can be stored within that memory
– The set of operations that can be applied to the variable.
• Syntax to declare a variable:
32
Putting Data into Variables
• Ways to place data into a variable:
– Use C++’s assignment statement
– Use input (read) statements
33
Assignment Statement
• The assignment statement takes the form:
34
Assignment Statement (cont’d.)
35
Assignment Statement (cont’d.)
36
Declaring & Initializing Variables
• Not all types of variables are initialized automatically
• Variables can be initialized when declared:
int first=13, second=10;
char ch=' ';
double x=12.6;
• All variables must be initialized before they are used
– But not necessarily during declaration
37
Allocating Memory with Constants
and Variables
• Named constant: memory location whose content can’t
change during execution
• Syntax to declare a named constant:
38
A C++ Program (cont’d.)
39
A C++ Program (cont’d.)
40
A C++ Program (cont’d.)
• Sample run:
41
Input (Read) Statement
• cin is used with >> to gather input
42
Input (Read) Statement (cont’d.)
• Using more than one variable in cin allows more
than one value to be read at a time
• Example: if feet and inches are variables of type
int, this statement:
cin >> feet >> inches;
– Inputs two integers from the keyboard
– Places them in variables feet and inches respectively
43
Example 2- 18
44
Arithmetic Operators, Operator
Precedence, and Expressions
• C++ arithmetic operators:
– + addition
– - subtraction
– * multiplication
– / division
– % modulus (or remainder) operator
• +, -, *, and / can be used with integral and floating-
point data types
• Use % only with integral data types
45
Arithmetic Operators, Operator
Precedence, and Expressions (cont’d.)
46
Arithmetic Operators, Operator
Precedence, and Expressions (cont’d.)
47
Arithmetic Operators, Operator
Precedence, and Expressions (cont’d.)
• When you use / with integral data types, the integral result is
truncated (no rounding).(5/2 = 2)
• When you use / with floating-point data types returns a
floating point value[i.e. the fraction is kept] For example, 5.0 /
2 = 2.5, 5 / 2.0 = 2.5, and 5.0 / 2.0 = 2.5.
• Arithmetic expressions: contain values and arithmetic
operators
• Operands: the number of values on which the operators will
work
• Operators can be unary (one operand) or binary (two
operands)
48
Order of Precedence
• All operations inside of () are evaluated first
• *, /, and % are at the same level of precedence and
are evaluated next
• + and – have the same level of precedence and are
evaluated last
• When operators are on the same level
– Performed from left to right (associativity)
• 3 * 7 - 6 + 2 * 5 / 4 + 6 means
(((3 * 7) – 6) + ((2 * 5) / 4 )) + 6
49
Expressions
• Integral expression: all operands are integers
– Yields an integral result
– Example: 2 + 3 * 5
• Floating-point expression: all operands are floating-
point
– Yields a floating-point result
– Example: 12.8 * 17.5 - 34.50
50
Mixed Expressions
• Mixed expression:
– Has operands of different data types
– Contains integers and floating-point
• Examples of mixed expressions:
2 + 3.5
6 / 4 + 3.9
5.4 * 2 – 13.6 + 18 / 2
13.0 / 2 + 1
• Remember that % (modulus which finds the remainder) is
applied for integer values only. So, 9%4 = 1, but 9%2.5 →
Syntax Error.
51
Mixed Expressions (cont’d.)
• Evaluation rules:
– If operator has same types of operands
• Evaluated according to the type of the operands
– If operator has both types of operands
• Integer is changed to floating-point
• Operator is evaluated
• Result is floating-point
– Entire expression is evaluated according to precedence
rules
52
Saving and Using the Value of an
Expression
• To save the value of an expression:
– Declare a variable of the appropriate data type
– Assign the value of the expression to the variable that was
declared
• Use the assignment statement
• Wherever the value of the expression is needed, use
the variable holding the value
53
Saving and Using the Value of an
Expression (cont’d)
54
Type Conversion (Casting)
• Implicit type conversion: when value of one type is
automatically changed to another type temporarily
[done by the compiler ]
• Examples:
bool value1 = 10; // the compiler will
implicitly convert 10 to true
int value2 =-13.7; // the compiler will
implicitly convert -13.7 into -13.
• Cast operator: provides explicit type conversion
[coded explicitly by the programmer]
static_cast<dataTypeName>(expression)
55
Type Conversion (cont’d.)
56
Increment and Decrement
Operators
• Increment operator: increase variable by 1
– Pre-increment: ++variable
– Post-increment: variable++
• Decrement operator: decrease variable by 1
– Pre-decrement: --variable
– Post-decrement: variable—
• What is the difference between the following?
x = 5; x = 5;
y = ++x; y = x++;
57
Increment and Decrement
Operators Example 2-20
58
string Type
• Programmer-defined type supplied in ANSI/ISO
Standard C++ library
• Sequence of zero or more characters enclosed in
double quotation marks
• Null (or empty): a string with no characters
• Each character has a relative position in the string
– Position of first character is 0
• Length of a string is number of characters in it
– Example: length of "William Jacob" is 13
– Position of character ‘W’ is 0
– Position of character ‘J’ is 8
59
Using the string Data Type in a
Program
• To use the string type, you need to access its
definition from the header file string
• Include the following preprocessor directive:
#include <string>
60
Input the string Type
• An input stream variable (cin) and >> operator can
read a string into a variable of the data type string
• Extraction operator
– Skips any leading whitespace characters
– Reading stops at a whitespace character
• The function getline
– Reads until end of the current line
string name;
getline(cin,name); //ahmad ali
//the value stored in name is ahmad ali
62
Output the string Type
• Example:
cout << name;
– Outputs the content of name on the screen
– << continues to write the contents of name until it finds
the null character
– If name does not contain the null character, then strange
output may occur
• << continues to output data from memory adjacent to name until
a '\0' is found
63
Creating a C++ Program
• C++ program has two parts:
– Preprocessor directives
– The program
• Preprocessor directives and program statements
constitute C++ source code (.cpp)
• Compiler generates object code (.obj)
• Executable code is produced and saved in a file with
the file extension .exe
64
Creating a C++ Program (cont’d.)
• A C++ program contains two types of statements:
– Declaration statements: declare things, such as variables
– Executable statements: perform calculations, manipulate
data, create output, accept input, etc.
65
The Basics of a C++ Program
• Function (or subprogram): collection of statements;
when executed, accomplishes something
– May be predefined or standard
• Syntax rules: rules that specify which statements
(instructions) are legal or valid
• Semantic rules: determine the meaning of the
instructions Programming language: a set of rules,
symbols, and special words
66
Debugging: Understanding and Fixing
Syntax Errors
• Compile a program
– Compiler will identify the syntax errors
– Specifies the line numbers where the errors occur
Example2_Syntax_Errors.cpp
c:\chapter 2 source
code\example2_syntax_errors.cpp(9) : error
C2146: syntax error :
missing ';' before identifier 'num'
c:\chapter 2 source
code\example2_syntax_errors.cpp(11) : error
C2065: 'tempNum' :
undeclared identifier
67
Syntax
• Syntax rules: indicate what is legal and what is not
legal
• Errors in syntax are found in compilation
int x; //Line 1
int y //Line 2: error
double z; //Line 3
y = w + x; //Line 4: error
68
Use of Blanks
• In C++, you use one or more blanks to separate
numbers when data is input
• Blanks are also used to separate reserved words and
identifiers from each other and from other symbols
• Blanks must never appear within a reserved word or
identifier
69
Use of Semicolons, Brackets, and
Commas
• All C++ statements end with a semicolon
– Also called a statement terminator
• { and } are not C++ statements
– Can be regarded as delimiters
• Commas separate items in a list
70
Semantics
• Semantics: set of rules that gives meaning to a
language
– Possible to remove all syntax errors in a program and still
not have it run
– Even if it runs, it may still not do what you meant it to do
• Ex: 2 + 3 * 5 and (2 + 3) * 5
are both syntactically correct expressions, but have
different meanings
71
Naming Identifiers
• Identifiers can be self-documenting:
– CENTIMETERS_PER_INCH
• Avoid run-together words :
– annualsale
– Solution:
• Capitalizing the beginning of each new word: annualSale
• Inserting an underscore just before a new word: annual_sale
72
Prompt Lines
• Prompt lines: executable statements that inform the
user what to do
cout << "Please enter a number between 1 and 10 and "
<< "press the return key" << endl;
cin >> num;
73
Documentation
• A well-documented program is easier to understand
and modify
• You use comments to document programs
• Comments should appear in a program to:
– Explain the purpose of the program
– Identify who wrote it
– Explain the purpose of particular statements
74
Form and Style
• Consider two ways of declaring variables:
– Method 1
int feet, inch;
double x, y;
– Method 2
int feet,inch;double x,y;
• Both are correct; however, the second is hard to read
75