Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 107 – Programming For Science. Announcements  Lectures may not cover all material from book  Material that is most difficult or challenging is focus.

Similar presentations


Presentation on theme: "CSC 107 – Programming For Science. Announcements  Lectures may not cover all material from book  Material that is most difficult or challenging is focus."— Presentation transcript:

1 CSC 107 – Programming For Science

2 Announcements  Lectures may not cover all material from book  Material that is most difficult or challenging is focus  All material is important & you are responsible for it  This is one reason why using book & post all solutions  PPTX slides posted onto Angel for each lecture  For reasons unclear to me, IE may treat file as ZIP  Could rename ZIP to PPTX & use with PowerPoint  Or, for many reasons, just use Firefox to download file

3 The Lecture’s Goal

4 Functions  C++ actually tries being useful on occasion

5 Functions  C++ actually tries being useful on occasion

6 C++ Being Helpful functions  Defines built-in functions for use in any program  Functions in C++ work similar to algebraic functions  Consider black-box that takes value & returns another  (Will discuss other types of functions later)  Functions must be declared before using it  Just like variables, computer needs some warning  For built-in functions, use #include statements

7 Mathematical Functions  Add #include at top of file  Should go with #include and others  Order does not matter, can list however you want  All of these mathematical functions return value  Will NOT change arguments’ value(s), so safe to use

8 Mathematical Functions  Function result is ignored unless you take action  Use within an expression your program is computing  Result of the function can be assigned to variable  Could be ignored, but why bother calling function?

9 Mathematical Functions  Function result is ignored unless you take action  Use within an expression your program is computing  Result of the function can be assigned to variable  Could be ignored, but why bother calling function?

10 Using These Functions  abs( x ) returns absolute value of number  Result’s type matches type of expression x int i1 = abs(-1); double d1 = abs(-56.54); double d2 = abs(i1); int i2 = abs(i1 + 1 * d2); double d3 = d2 * abs(d1); i2 = 46 * abs(i1); d3 = abs(abs(d2));

11 Using These Functions  abs( x ) returns absolute value of number  Result’s type matches type of expression x int i1 = abs(-1); double d1 = abs(-56.54); double d2 = abs(i1); int i2 = abs(i1 + 1 * d2); double d3 = d2 * abs(d1); i2 = 46 * abs(i1); d3 = abs(abs(d2));

12 Other Functions  Decimal data only returned by trig. functions sin( x ), cos( x ), tan( x ), asin( x ), atan( x )…  Whether float or double depends on x ’s type  Measure angle in radians for these to work (2π = 360˚)  Exponent functions also return decimal data log10( x ), sqrt( x ), log( x ), exp( x )…  x ’s type also specifies if float or double returned  Decimals needed since results could be decimal  pow( x, y ) computes x y  x ’s (decimal) type determines type of value computed

13 Errors In Functions  Some values may cause errors in function  Nothing output, but result appears funny if printed  If assigned to variable, variable used without error  Using funny value yields funny value for all equations acos( x ), asin( x ) x must be in range [-1, 1] sqrt( x ) x must be number ≥ 0 exp( x ) e x must be in range of x ’s type pow( x, y ) x y must fit in x ’s type; y ≥ 0

14 Rounding Functions  Safely convert decimal numbers into integers  floor( x ) returns x to nearest smaller integer ([ x ]) floor(2.01) returns 2.0 floor(78.999999) returns 78.0 floor(-0.0001) returns -1.0 floor(floor(-65.561)) returns -66.0  ceil( x ) takes x & returns nearest larger integer ([ x ]) ceil(2.01) returns 3.0 ceil(78.999999) returns 79.0 ceil(-0.0001) returns 0.0 ceil(ceil(-65.561)) returns -65.0

15 What Planet Are [They] From?  Why do floor( x ) & ceil( x ) return decimals

16 What Planet Are [They] From?  Why do floor( x ) & ceil( x ) return decimals

17 Data Types  Assignments are legal only if always safe  C++ defines ordering of legal assignments long double double float long int short char Legal to assign to higher type

18 Type of An Expression  Within expression, C++ tracks types computed  Uses simple rules and cannot apply common sense  As seen in integer division, this can have big impact  Computers are stupid & cannot think ahead  Type of expression computed step-by-step as it goes  Only examines current operation & ignores future if  Looks at arguments’ types & promotes if needed

19 Type of An Expression

20 Computing Expression Type int whole; double stuff; stuff = (3 + 4 * 1.0) / (3 / (2 * 2) + 1.0); whole = abs((5 * 3 / 2) + (10 / 2.0));

21 Typecasting Requires typecast to work

22 Typecasting int i1 = static_cast (-1.0); char c1 = static_cast (abs(48.3)); float f1 = static_cast (48.3); i1 = static_cast (f1 * 2); c1 = i1 + 3; c1 = static_cast (i1 + 256); i1 = static_cast (i1 + 256); f1 = static_cast (f1 + 256); i1 = (int)(49.0 * 2);

23 Typecasting int i1 = static_cast (-1.0); char c1 = static_cast (abs(48.3)); float f1 = static_cast (48.3); i1 = static_cast (f1 * 2); c1 = i1 + 3; c1 = static_cast (i1 + 256); i1 = static_cast (i1 + 256); f1 = static_cast (f1 + 256); i1 = (int)(49.0 * 2);

24 Normal Rounding  C++ does not have function for typical rounding  floor( x + 0.5) works with numbers > -0.5  ceil( x + 0.5) works with numbers < -0.5  We will revisit this problem later…

25 Your Turn  Get in groups & work on following activity

26 For Next Lecture  Read section 1.9 for Wednesday  How does the computer store information?  What does “100101” mean? What is its value?  Why do we use numbers to represent characters?  Week #2 weekly assignment due Tuesday at 5PM  Problems available on Angel  If problem takes more than 10 minutes, TALK TO ME!


Download ppt "CSC 107 – Programming For Science. Announcements  Lectures may not cover all material from book  Material that is most difficult or challenging is focus."

Similar presentations


Ads by Google