1 / 47

Programming in C++

Programming in C++. Chapter 3 Arithmetic Expressions, Function Calls, and Output. What is an Expression in C++?. An expression is any valid combination of operators and operands. In C++ each expression has a value. . Operators can be. binary involving 2 operands 2 + 3

jamesdorsey
Télécharger la présentation

Programming in C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programming in C++ Chapter 3 Arithmetic Expressions, Function Calls, and Output

  2. What is an Expression in C++? • An expression is any valid combination of operators and operands. • In C++ each expression has a value.

  3. Operators can be binary involving 2 operands 2 + 3 unary involving 1 operand - 3 ternary involving 3 operands later

  4. Some C++ Operators PrecedenceOperator Description Higher ( ) Function call + Positive - Negative * Multiplication / Division % Modulus (remainder) + Addition - Subtraction Lower = Assignment

  5. Precedence • Higher Precedence determines which operator is applied first in an expression having several operators.

  6. Associativity • Left to right Associativity means that in an expression having 2 operators with the same priority, the left operator is applied first. • In C++ the binary operators * , / , % , + , - are all left associative. • Expression 9 - 5 - 1 means ( 9 - 5 ) - 1 4 - 1 3

  7. Evaluate the Expression 7 * 10 - 5 % 3 * 4 + 9 means (7 * 10) - 5 % 3 * 4 + 9 70 - 5 % 3 * 4 + 9 70 - (5 % 3) * 4 + 9 70 - 2 * 4 + 9 70 - ( 2 * 4 ) + 9 70 - 8 + 9 ( 70 - 8 ) + 9 62 + 9 71

  8. Parentheses • Parentheses can be used to change the usual order • Parts in ( ) are evaluated first • Evaluate (7 * (10 - 5) % 3) * 4 + 9 ( 7 * 5 % 3 ) * 4 + 9 ( 35 % 3 ) * 4 + 9 2 * 4 + 9 8 + 9 17

  9. Assignment Operator Syntax VariableName = Expression First, Expression on right is evaluated. Then the resulting value is stored in the memory location of VariableName on left. NOTE: An automatic type coercion occurs after evaluation but before the value is stored if the types differ for Expression and VariableName

  10. 8.5 ? A A 9.37 ? B B What value is stored? float A; float B; A = 8.5; B = 9.37; A = B;

  11. What is stored? float SomeFloat; SomeFloat SomeFloat = 12;// causes implicit type conversion ? 12.0 SomeFloat

  12. What is stored? int SomeInt; SomeInt SomeInt = 4.8;// causes implicit type conversion ? 4 SomeInt

  13. Type Casting is Explicit Conversion of Type int(4.8) has value 4 float(5) has value 5.0 float(7/4) has value 1.0 float(7) / float(4) has value 1.75

  14. <iostream.h> is header file • for a library that defines 3 objects • an istream object named cin (keyboard) • an ostream object named cout (screen) • an ostream object named cerr (screen)

  15. Keyboard Screen executing program No I/O is built into C++ • Instead, a library provides input stream and output stream istream ostream

  16. >> is a binary operator >> is called the input or extraction operator >> is left associative EXPRESSION HAS VALUE cin >> Age cin STATEMENT cin >> Age >> Weight ;

  17. << is a binary operator << is called the output or insertion operator << is left associative EXPRESSION HAS VALUE cout << Age cout STATEMENT cout << “You are “ << Age << “ years old\n” ;

  18. Some Expressions int Age; EXAMPLE VALUE Age = 8 8 - Age - 8 5 + 8 13 5 / 8 0 6.0 / 5.0 1.2 float ( 4 / 8 ) 0.0 float ( 4 ) / 8 0. 5 cout << “How old are you?” cout cin >> Age cin cout << Age cout

  19. What values are stored? float LoCost; float HiCost; LoCost = 12.342; HiCost = 12.348; LoCost = float (int (LoCost * 100.0 + 0.5) ) / 100.0; HiCost = float (int (HiCost * 100.0 + 0.5) ) / 100.0;

  20. Values were rounded to 2 decimal places LoCost 12.34 12.35 HiCost

  21. Functions • Every C program must have a function called main ( ) • Program execution always begins with function main ( ) • Any other functions are subprograms and must be called.

  22. What is in a block? { 0 or more statements here }

  23. Function Calls • One function calls another by using the name of the called function together with ( ) containing a parameter list • A function call temporarily transfers control from the calling function to the called function

  24. Parts of a Function • Every function has 2 parts int main (void) heading { body block return 0; }

  25. type of returned value says no parameters name of function What is in a heading? int main (void)

  26. More about functions • It is not considered good practice for the body block of main ( ) to be long. • Function calls are used to do tasks • Every C++ function has a return type • If the return type is not void, the function returns a value to the calling block.

  27. Where are functions? located in libraries OR written by programmers

  28. HEADER FILE FUNCTION EXAMPLE VALUE OF CALL <stdlib.h> abs(i) abs(-6) 6 fabs(x) fabs(-6.4) 6.4 <math.h> pow(x,y) pow(2.0,3.0) 8.0 <math.h> sqrt(x) sqrt(100.0) 10.0 sqrt(x) sqrt(2.0) 1.41421 <math.h> log(x) log(2.0) .693147 <iomanip.h> setprecision(n) setprecision(3)

  29. Write C++ Expressions for The square root of b2 - 4ac sqrt ( b * b - 4.0 * a * c ) The square root of the average of MyAge and YourAge sqrt ( (MyAge + YourAge) / 2 )

  30. Manipulators • Manipulators are used only in input and output statements. • endl, setw, and setprecision are manipulators that can be used to control output format. • endl is use to terminate the current output line, and create blank lines in output.

  31. Insertion Operator ( << ) • The insertion operator << takes 2 operands. • The left operand is a stream expression, such as cout. • The right operand is an expression of simple type, or a string, or a manipulator.

  32. Output Statements SYNTAX (revised) cout << ExprOrStringOrManipulator << ExprOrStringOrManipulator . . . ;

  33. setprecision(n) • requires #include <iomanip.h> and appears in an expression using insertion operator (<<) • specifies n as the number of places displayed after the decimal point for floating point values • remains in effect until explicitly changed by another call to setprecision

  34. What is exact output? #include <iomanip.h> #include <iostream.h> int main ( void) { float myNumber = 123.4587 ; cout.setf ( ios::fixed , ios::floatfield ) ; // use decimal format cout.setf ( ios::showpoint ) ; // print decimal point cout << “Number is ” << setprecision ( 3 ) << myNumber << endl ; return 0 ; }

  35. OUTPUT Number is 123.459 value is rounded if necessary to be displayed with exactly 3 placesafter the decimal point

  36. To Remember • To cause your program to output numbers that have a decimal point to a certain number of decimal places • cout.setf(ios::fixed); • cout.setf(ios::showpoint); • cout.precision(2); • Any output after these statements will have the precision as indicated

  37. setw(n) • requires #include <iomanip.h> and appears in an expression using insertion operator (<<) • affects only the very next item displayed • “set width” specifies n as the number of total columns in which to display a number or string (not char data). Parameter n is called the fieldwidth specification. The number of columns used is expanded if n is too narrow. • is useful to align columns of output

  38. What is exact output? #include <iomanip.h> #include <iostream.h> int main ( void) { float myNumber = 123.4 ; float yourNumber = 3.14159 ; cout.setf ( ios::fixed , ios::floatfield ) ; // use decimal format cout.setf ( ios::showpoint ) ; // print decimal point cout << “Numbers are: ” << setprecision ( 4 ) << endl << setw ( 10 ) << myNumber << endl << setw ( 10 ) << yourNumber << endl ; return 0 ; }

  39. OUTPUT Numbers are: 123.4000 3.1416 each is displayed right-justified and rounded if necessary and each is located in a total of 10 columnswith 4 placesafter the decimal point

  40. Using setf( ) • setf( ) is a function associated with output streams. To call this function use this syntax DesiredOutputStream.setf( ParameterList ) ; • setf( ) can be used to print the decimal point (even if there are trailing zeros) for floating values that are output, and to specify that the value be printed with a fixed position decimal point (rather than in scientific notation).

  41. cout.setf( ) statements • Use the following statements to specify that (for output sent to the cout stream) decimal format (not scientific notation) be used, and that a decimal point be included (even for floating values with 0 as fractional part). cout.setf( ios :: fixed, ios :: floatfield ) ; cout.setf( ios :: showpoint ) ;

  42. 312.0 4.827 x y More examples float x = 312.0 ; float y = 4.827 ; cout.setf ( ios::fixed , ios::floatfield ) ; cout.setf ( ios::showpoint ) ; OUTPUT cout << setprecision ( 2 ) << setw ( 10 ) << x << endl ’’’’312.00 << setw ( 10 ) << y << endl ; ’’’’’’4.83 cout << setprecision ( 1 ) << setw ( 10 ) << x << endl ’’’’’312.0 << setw ( 10 ) << y << endl ; ’’’’’’’4.8 cout << setprecision ( 5 ) << setw ( 7 ) << x << endl 312.00000 << setw ( 7 ) << y << endl ; 4.82700

  43. Program with several functions main( ) function Square( ) function Cube( ) function

  44. Value-returning functions #include <iostream.h> int Square ( int ) ; // declares these 2 functions int Cube ( int ) ; int main ( void ) { cout << “The square of 27 is “ << Square (27) << endl ; // function call cout << “The cube of 27 is “ << Cube (27) << endl ; // function call return 0 ; }

  45. Rest of Program int Square ( int n )// header and body here { return n * n ; } int Cube ( int n )// header and body here { return n * n * n ; }

  46. A void function call stands alone #include <iostream.h> void DisplayMessage ( int n ) ; // declares function int main(void) { DisplayMessage( 15 ) ; //function call cout << “Good Bye“ << endl ; return 0 ; }

  47. A void function does NOT return a value void DisplayMessage ( int n ) // header and body here { cout << “I have liked math for “ << n << “ years” << endl ; }

More Related