C++ for Engineers and Scientists - Problem Solving Using C++
Problem Solving Using C++
Objectives
•Introduction to C++
•Programming Style
•Data Types
•Arithmetic Operations
•Variables and Declaration Statements
•Applying the Software Development Procedure
•Applications
•Common Programming Errors
Introduction to C++
•Modular Program: a program consisting of interrelated segments arranged in a logical and understandable form
–Easier to develop, correct, and modify than other kinds of programs
•Module: a small segment which is designed to perform a specific task
–A group of modules is used to construct a modular program
•Modules in C++ can be classes or functions
•Function: accepts an input and produces an output by processing the input in some fashion
•A function’s processing is encapsulated and hidden within the function
•Class: contains both data and functions used to manipulate the data
•Function: encapsulates a set of operations, while a class encapsulates data plus one or more sets of operations
•Identifier: a name given to an element of the language, such as a class or function
•Rules for forming identifier names:
–First character must be a letter or underscore
–Only letters, digits, or underscores may follow the initial letter (no blanks allowed)
–Keywords cannot be used as identifiers
–Max length of an identifier = 1024 characters
•Use underscores to separate multiple words in a name, or capitalize the first letter of each word
•Function names
–Require a set of parentheses at the end
–Can use mixed upper and lower case
–Should be meaningful, or be a mnemonic
•Mnemonic: a word designed as a memory aid
Examples of function names:
easy() c3po() r2d2() theForce()
•Note that C++ is a case-sensitive language!
Introduction to C++: The main() Function
•Overall structure of a C++ program contains one function named main(), called the driver function
•All other functions are invoked from main()
•Function header line: the first line of a function, which contains
–The type of data returned by the function (if any)
–The name of the function
–The type of data that must be passed into the function when it is invoked (if any)
•Arguments: the data passed into a function
•Function body: the statements inside a function (enclosed in braces)
•Each statement inside the function must be terminated with a semicolon
•return: a keyword causing the appropriate value to be returned from the function
•return 0 in the main() function causes the program to end
Figure 2.4 The structure of a main() function.
Introduction to C++: The cout Object
•cout object: an output object that sends data to a standard output display device
•Preprocessor command: starts with a #; causes an action before the source code is compiled into machine code
•#include : causes the named file to be inserted into the source code
•C++ provides a standard library with many pre-written classes that can be included
•Header files: files included at the head (top) of a C++ program
•Escape sequence: one or more characters preceded by a backslash, \
Programming Style
Programming Style: Comments
•Comments: explanatory remarks in the source code added by the programmer
•Line comment: begins with // and continues to the end of the line
–Line comment can be on a line by itself, or at the end of a line of code
–Line comment cannot be longer than one line
•Block Comment: a comment that spans across two or more lines
–Block comment begins with /* and ends with */
Example:
/* This is a block comment that
spans
across three lines */
Data Types
Data Types: Integer
•int data type: whole numbers, optionally with + or – sign
Example: 2
•char data type: individual character; any letter, digit, or special character enclosed in single quotes
Example: ‘A’
•Character values are usually stored in ASCII code
•Escape character: the backslash, \; indicates an escape sequence
•Escape sequence: tells compiler to treat the following characters as special instruction codes
Escape sequences
•bool data type: represents Boolean (logical) data; restricted to two values: true or false
•sizeof operator: shows the number of bytes used to store values of any data type
•Values returned by sizeof are compiler dependent
•Signed data type: one that permits negative, positive, and zero values
•Unsigned data type: permits only positive and zero values
•An unsigned data type provides essentially double the range of its signed counterpart
Data Types: Floating-Point Types
•Floating-point number (real number): zero or any positive or negative number containing a decimal point
Examples: +10.625 5. -6.2
• No special characters are allowed
•Three floating-point data types in C++:
–float (single precision)
–double (double precision)
–long double
Data Types: Exponential Notation
•Floating point numbers can be written in exponential notation, where e stands for exponent
Arithmetic Operations
Arithmetic Operations:
Expression Types
Arithmetic Operations:
Integer Division
Arithmetic Operations:
Negation
Arithmetic Operations
Summary of Operators
Arithmetic Operations:
Operator Precedence & Associativity
•Rules for writing arithmetic expressions:
–Never place two consecutive binary arithmetic operators side by side
–Use parentheses to form groupings; contents within parentheses are evaluated first
–You may nest parentheses within other parentheses; evaluated from innermost to outermost
–Use the * operator for multiplication, not parentheses
•Expressions with multiple operators are evaluated by precedence of operators:
–All negations occur first
–Multiplication, division, and modulus are next, from left to right
–Addition and subtraction are last, from left to right
Variables and Declaration Statements
•Assignment statement: used to store a value into a variable
•Value of the expression on the right side of the = is assigned to the memory location of the variable on the left side of the =
Examples:
num1 = 45;
num2 = 12;
total = num1 + num2;
•Declaration statement: specifies the data type and identifier of a variable; sets up the memory location
Syntax: ;
•Data type is any valid C++ data type
Example: int sum;
•Declarations may be used anywhere in a function; usually grouped at the opening brace
•Character variables: declared using the char keyword
•Multiple variables of the same data type can be declared in a single declaration statement
Example:
double grade1, grade2, total, average;
•Variables can be initialized in a declaration
Example: double grade1 = 87.0
•A variable must be declared before it is used
•Declaring a variable causes memory to be allocated based on the data type
•Definition statement: a declaration that causes the computer to allocate storage for the variable
•Three items associated with each variable:
–Data type
–Actual value stored in the variable (its contents)
–Memory address of the variable
•Address operator (&) provides the variable’s address
Applying the Software
Development Procedure
•Step 1: Analyze the problem
–Understand the desired outputs
–Determine the required inputs
•Step 2: Develop a solution
–Determine the algorithms to be used
–Use top-down approach to design
•Step 3: Code the solution
•Step 4: Test and correct the program
Applications: Radar Speed Trap
•Step 1: Analyze the Problem
–Output: speed of the car
–Inputs: emitted frequency and received frequency
•Step 2: Develop a Solution
–Algorithm:
–Assign values to f0 and f1
–Calculate and display speed
•Step 3: Code the Solution
•Step 4: Test and Correct the Program
Applications:
Telephone Switching Networks
•Number of lines required for a directly connected network:
•Step 1: Analyze the Problem
–Outputs: number of direct lines for 100 phones, and additional number of lines to add 10 more phones
–Inputs: number of telephones (n)
•Step 2: Develop a Solution
–Calculate total number of lines for 100 subscribers
–Calculate total number of lines for 110 subscribers
–Subtract to get additional lines needed
–Display number of lines for 100 subscribers
–Display number of additional lines needed
•Step 3: Code the Solution
•Step 4: Test and Correct the Program
Common Programming Errors
•Missing parentheses after main
•Missing or incorrect braces around function body
•Misspelling a reserved word
•Missing ending double quotes on string literal
•Missing semicolon at end of statement
•Adding a semicolon at end of #include statement
•Missing \n to indicate new line
•Substituting letter O for zero and vice versa
•Failing to declare all variables
•Storing incorrect data type into a variable
•Attempting to use a variable with no value
•Dividing integer values incorrectly
•Mixing data types in the same expression
Summary
•C++ program contains one or more functions, one of which must be called main()
•All C++ statements must be terminated by a semicolon
•Data types include int, float, bool, char
•cout object can be used to display data
•cout object requires the preprocessor command #include
•Variables must be declared with their data type
•A variable can be used only after it has been declared
•Variables may be initialized when declared
•Definition statement causes computer to allocate memory for a variable
•sizeof() operator yields the amount of storage reserved for a variable