Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 PHY 107 – Programming For Science

2 Announcements  Lectures may not cover all material from readings  Material that is most difficult or challenging is focus  All material is important & you are responsible for it  PPTX slides posted onto D2L for each lecture  Also post all solutions to activities, labs, & assignments  Grades available on D2L and updated regularly  Since submissions electronic, e-mails sent with grades

3 The Lecture’s Goal

4

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

6 Functions  C/C++ actually tries being useful on occasion

7 C/C++ Being Helpful functions  Defines built-in functions for use in any program  Functions in C/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

8 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

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 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?

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

13 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

14 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

15 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

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

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

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

19 Type of An Expression  Within expression, C/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

20 Type of An Expression

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

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

23 Typecasting Requires typecast to work

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

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

26 Normal Rounding  C/C++ lacks 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…

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

28 For Next Lecture  Week #3 weekly assignment due Tuesday at 5PM  Read web page for Friday  How does the computer store information?  Why do we use numbers to represent characters?  Why is this funny?


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

Similar presentations


Ads by Google