1 engineering problem solving with c++ an object based approach chapter 2 simple c++ programs

27
1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

Post on 21-Dec-2015

223 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

1

Engineering Problem Solving with C++

An Object Based ApproachChapter 2

Simple C++ Programs

Page 2: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

2

First Program – volume of a box

/************************************************************//* Program chapter1 *//* *//* This program computes the volume of a box *//************************************************************/#include <iostream>using namespace std;

int main(){ // Declare and initialize objects double length( 20.75), width(11.5),height(9.5), volume;

// Calculate volume. volume = length * width * height; // Print the volume. cout << “The volume is “ << volume << endl;

// Exit program. return 0;}/************************************************************/

Page 3: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

3

Program structure

preprocessor directives

int main()

{

declarations

statements

}

Page 4: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

4

Comments

• Comments help people read programs, but are ignored by the compiler.

• In C++ there are two types of comments.– Line comments begin with // and continue for

the rest of the line.– Delimited comments begin with /* and end

with */

Page 5: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

5

#include Preprocessor Command

• Copies source code into the program from the specified file.

• #include <iostream>– Contains class information for input and

output.

Page 6: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

6

C++ Data Types

Keyword Example of a constant

bool true

char ‘5’

int 25

double 25.0

string “hello” //must include <string>

Page 7: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

7

Naming entities in C++

• Identifiers are used to name entities in C++.

• Rules for construction of identifiers– Start with a letter or underscore _– Consist of letters digits and underscore– Can not be a reserved word.– Only first 31 characters used to distinguish it

from other identifiers.– Case sensitive

Page 8: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

8

Variable Declarations

Declarations define memory locations, including type of data to be stored, identifer, and possibly an initial value.

General Form: data_type identifier_list;

Examples:double length( 20.75), width(11.5), volume;int numberOfFeetInYard(3);

Page 9: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

9

Symbolic Constants

• Used to name values which do not change during the execution of the program.

• Are always initialized at declaration.

• Used wherever an expression is allowed.

General Form:const data_type identifier = value;

Page 10: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

10

• Example 1 - initializationdouble sum = 0; sum

Example 2

int x;x=5; x

Assignment Statements

• Used to assign a value to a variableGeneral Form:

identifier = expression;

0

5

a

Example 3

char ch;ch = ‘a’; ch

Page 11: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

11

Assignment Statements - continued

• Example 3int x, y, z;x=y=0;z=2; x

y

z

0

0

2

2

Example 4y=z; y

Page 12: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

12

Arithmetic Operators

• Addition +• Subtraction -• Multiplication *• Division /• Modulus %

– Modulus returns remainder of division between two integers

– Example

5%2 returns a value of 1

Page 13: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

13

Integer Division

• Division between two integers results in an integer.

• The result is truncated, not rounded

• Example:5/3 is equal to 1

3/6 is equal to 0

Page 14: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

14

Priority of Operators

1. Parentheses Inner most first

2. Unary operators Right to left (+ -)

3. Binary operators Left to right (* / %)

4. Binary operators Left to right (+ -)

Page 15: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

15

Self-test - Evaluate

• 7 + 3 * 5 – 2

• 4 + 7 / 3

• 8 % 3 * 6

• (7 + 3) * 5 - 2

Page 16: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

16

Overflow and Underflow

• Overflow – answer to large to store – Example: using 16 bits for integers– result = 32000 +532;

• Exponent overflow – answer’s exponent too large– Example: using float, with exponent range –38 to 38– result = 3.25e28 * 1.0e15;

• Exponent underflow – answer’s exponent to small– Example: using float, with exponent range –38 to 38– Result = 3.25e-28 *1.0e-15;

Page 17: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

17

Increment and Decrement Operators

• Increment Operator ++• post increment x++;• pre increment ++x;

• Decrement Operator - -• post decrement x- -;• pre decrement - -x;

• For examples assume k=5 prior to executing the statement.

• m= ++k; both m and k become 6• n = k- -; n becomes 5 and k becomes 4

Page 18: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

18

Abbreviated Assignment Operator

operator example equivalent statement += x+=2; x=x+2;

-= x-=2; x=x-2;

*= x*=y; x=x*y;

/= x/=y; x=x/y;

%= x%=y; x=x%y;

Page 19: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

19

Precedence of Arithmetic and Assignment Operators

Precedence Operator Associativity 1 Parentheses: () Innermost first

2 Unary operators

+ - ++ -- (type)

Right to left

3 Binary operators * / %

Left ot right

4 Binary operators + -

Left ot right

5 Assignment operators = += -= *= /= %=

Right to left

Page 20: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

20

Simple I/O - cin

cin

• is an istream object

•streams input from standard input

•uses the >> (input operator)

General Form: cin >> identifier >> identifier;

Note: Data entered from the keyboard must be compatible with the data type of the variable.

Page 21: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

21

Simple Output - cout

• cout

– is an ostream object

– streams output to standard output

– uses the << (output) operatorGeneral Form:

cout << expression << expression;Note: An expression is any C++ expression (string

constant, identifier, formula or function call)

Page 22: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

22

output1,2,4.5 cm_

//Example1 for input and output#include <iostream>#include <string>using namespace std;int main(){

int i, j;double x;string units = “ cm”;cin >> i >> j;cin >> x;cout << “output \n”;cout << i << ‘,’ << j << ‘,’ << endl

<< x << units << endl;return 0;

} // Input stream:1,2,3,4

Page 23: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

23

//Example 2 of input and output#include <iostream>using namespace std;int main(){ int i, j; double x, y; cin >> i >> j >> x >> y;

cout << “First output “ << endl; cout << i << ',' << j << ',' << x << ',' << y << endl; cin >> x >> y >> i >> j;

cout << “Second output” << endl; cout << i << ',' << j << ',' << x << ',' << y << endl; return 0;} //Input stream is:1 23.4 52 3 3.4 7

First output1,2,3.4,5Second output3,2,2,3_

Page 24: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

24

Manipulators and methods

• endl – places newline character in stream and flushes the buffer.

• setf() and unsetf()

Flag Meaning

ios:: showpoint

display the decimal point

ios::fixed fixed decimal notation

ios::scientific scientific notation

ios::right right justification

ios::left left justificationManipulators in <iomanip>

–setprecision(n)–setw(n)

Page 25: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

25

Functions in <cmath>abs(x) computes absolute value of x

sqrt(x) computes square root of x, where x >=0

pow(x,y) computes xy

ceil(x) nearest integer larger than x

floor(x) nearest integer smaller than x

exp(x) computes ex

log(x) computes ln x, where x >0

log10(x) computes log10x, where x>0

sin(x) sine of x, where x is in radians

cos(x) cosine of x, where x is in radians

tan(x) tangent of x, where x is in radians

Page 26: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

26

Characters and input

• >> discards leading whitespace• get() method used to input whitespace

characters• Example:

int x;char y;cin >> x >> y;cin >> x;cin.get(y); x y

x y

45c39b

45 ‘c’

39 ‘\n ’

Page 27: 1 Engineering Problem Solving with C++ An Object Based Approach Chapter 2 Simple C++ Programs

27

Wind-Tunnel Data• Flight-Path Angle• -4• -2• 0• 2• 4• 6• 8• 10• 12• 14• 15• 16• 17• 18• 19• 20• 21

• Coefficient of Lift• -0.182• 0.056• 0.097• 0.238• 0.421• 0.479• 0.654• 0.792• 0.924• 1.035• 1.076• 1.103• 1.120• 1.121• 1.121• 1.099• 1.059