csc 107 – programming for science. science means solving problems physics – how does an atom...

27
LECTURE 18: FUNCTION BASICS & SCOPE CSC 107 – Programming For Science

Upload: hugo-gilbert

Post on 24-Dec-2015

223 views

Category:

Documents


2 download

TRANSCRIPT

  • Slide 1
  • CSC 107 Programming For Science
  • Slide 2
  • Science Means Solving Problems Physics How does an atom work?
  • Slide 3
  • Science Means Solving Problems Physics How does an atom work? Engineering Will the bridge hold?
  • Slide 4
  • Science Means Solving Problems Physics How does an atom work? Engineering Will the bridge hold? Biology What is crawling up my leg?
  • Slide 5
  • Science Means Solving Problems
  • Slide 6
  • Todays Goal Discuss writing & using functions How to declare them, use them, & trace them Could write programs using functions
  • Slide 7
  • Todays Goal Discuss writing & using functions How to declare them, use them, & trace them Could write programs using functions Already been doing this Already been doing this, but should clarify process
  • Slide 8
  • Functions Already written programs using functions One function always present in all programs: main cos, sin, floor also functions you've called before main is a programmer-defined function Pre-defined functions are similar, but part of C++ Programmers can define and use own functions cos radians cosine
  • Slide 9
  • Functions Already written programs using functions One function always present in all programs: main cos, sin, floor also functions you've called before main is a programmer-defined function Pre-defined functions are similar, but part of C++ Programmers can define and use own functions Function Parameters Return Value
  • Slide 10
  • Why We Use Functions Simplify code Replace copies of code by placing in single location Commonly-used math function computation Each function can return a single value Input & output performed in these functions Will discuss ways to change parameters values
  • Slide 11
  • Function Basics
  • Slide 12
  • Return Type Each function must declare a return type Type of value returned by a function float abs(float x); double pow(double x, double t); int main(); May want nothing returned : use void as return type void printFormattedNumber(int x); void readAndPrintAverage(); Must return value from non- void function If function is void, cannot return value
  • Slide 13
  • Function Declaration When definition is after calling function Could be that function is later in file Function in another file for use in many programs Also important for built-in functions without bodies Declare functions at start of the file Often listed in header ( *.h ) files to enable reuse #include "copy-and-paste" code from those files Declaration lists vital information: function signature
  • Slide 14
  • Function Declarations
  • Slide 15
  • Slide 16
  • Function Definitions
  • Slide 17
  • Variable Scope Variables create name for memory address Name is not universal, but limited by the scope Variable usable only in braces in which declared For this copy of variable, scope defines its lifetime Variable "dies" with end of scope in which declared At start of scope, new copy created Cannot use outside scope: error for bad variable Must have unique names within a scope If no overlap, can reuse names since old name gone
  • Slide 18
  • Variable Scope int num = 3; void readNumber(int len) { int num = 0; for (int i = 0; i > ch; num *= 10; num += ch '0'; } cout
  • int num = 3; void readNumber(int len) { int num = 0; // This is name is not unique here! for (int i = 0; i > ch; num *= 10; num += ch '0'; } cout
  • void readNumber(int len) { int num = 0; for (int i = 0; i > ch; num *= 10; num += ch '0'; } cout
  • Variable Scope void readNumber(int len) { int num = 0; for (int i = 0; i > ch; num *= 10; num += ch '0'; } cout
  • Variable Scope void readNumber(int len) { int num = 0; for (int i = 0; i > ch; num *= 10; num += ch '0'; } cout
  • Variable Scope void readNumber(int len) { int num = 0; for (int i = 0; i > ch; num *= 10; num += ch '0'; } cout
  • Variable Scope void readNumber(int len) { int num = 0; for (int i = 0; i > ch; num *= 10; num += ch '0'; } cout