0% found this document useful (0 votes)
65 views75 pages

2 PDF

The document provides an overview of basic elements in C++ including comments, preprocessor directives, data types, variables, and output statements. It discusses key concepts such as the main function, whitespace, identifiers, and arithmetic operators. It also introduces various data types like int, char, bool, and floating-point types and how variables are used to store and manipulate data in memory.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views75 pages

2 PDF

The document provides an overview of basic elements in C++ including comments, preprocessor directives, data types, variables, and output statements. It discusses key concepts such as the main function, whitespace, identifiers, and arithmetic operators. It also introduces various data types like int, char, bool, and floating-point types and how variables are used to store and manipulate data in memory.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 75

Chapter 2:

Basic Elements of C++


Outlines
• In this chapter, you will study:
– A Quick Look at a C++ Program
– The Basics of a C++ Program (comments, Special Symbols, Keywords and
identifiers)
– Data Types
– Data Types and Variables
– Arithmetic Operators, Operator Precedence, and Expressions
– Type Conversion (Casting)
– string Type
– Variables, Assignment Statements, and Input Statements
– Increment and Decrement Operators
– Output statements
– Preprocessor Directives
– Creating a C++ Program
– Debugging: Understanding and Fixing Syntax Errors
– Program Style and Form

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:

– Called an output statement


• The stream insertion operator is <<
• Expression evaluated and its value is printed at the
current cursor position on the screen

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.

cout << "Hello there.\n";


cout << "My name is James.";
Output :
Hello there.
My name is James.
12
Output (cont’d.)

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

• Different compilers may allow different ranges of


values

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:

• Expression is evaluated and its value is assigned to


the variable on the left side
• A variable is said to be initialized the first time a
value is placed into it
• In C++, = is called the assignment operator

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:

• In C++, const is a reserved word

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

• This is called an input (read) statement


• The stream extraction operator is >>
• For example, if miles is a double variable
cin >> miles;
– Causes computer to get a value of type double and
places it in the variable miles

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

• How To print the content of a string variable?


61
Input the string Type (Cont’d)
string name;
cin >> name; //ahmad ali
//the value stored in name is ahmad only

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;

• Always include prompt lines when input is needed


from users

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

You might also like