CSCI 230 - PowerPoint PPT Presentation

1 / 10
About This Presentation
Title:

CSCI 230

Description:

Function call analogy: Boss asks worker to complete task ... Dale Roberts. Acknowledgements. Some examples were obtained from the course textbook. ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 11
Provided by: dalero
Category:
Tags: csci | analogy | examples

less

Transcript and Presenter's Notes

Title: CSCI 230


1
Department of Computer and Information
Science,School of Science, IUPUI
CSCI 230
Functions
Declarations
Dale Roberts, Lecturer IUPUI droberts_at_cs.iupui.edu
2
Functions Support Decomposition
  • Functions
  • Category Programmers Duration Size of Code
  • Trivial 1 1-2 weeks lt 500 lines (student
    homework)
  • Small 1 - 3 Few Weeks 500 -2000 lines (term
    projects)
  • Medium 2 - 5 Few Months 2000 -10000
    (research project)
  • Large 5-25 1 - 3 years 10,000-100,000(current
    applications)
  • Very Large 25-100 3 - 5 years 100,000 - 1M
    (real-time operations)
  • Extremely Large gt 100 gt 5 years gt1M (advanced
    military work)
  • Divide and conquer
  • Large programs cannot be monolithic
  • Construct a program from smaller pieces or
    components. These smaller pieces are called
    modules
  • Each piece is more manageable than the original
    program

3
Program Modules in C
  • Functions
  • Modules in C
  • Programs combine user-defined functions with
    library functions
  • C standard library has a wide variety of
    functions
  • Math function, I/O, string function, such as
    printf(), scanf()
  • Function calls
  • Invoking functions
  • Provide function name and arguments (data)
  • Function performs operations or manipulations
  • Function returns results
  • Write function once and call it many times
  • Function call analogy
  • Boss asks worker to complete task
  • Worker gets information, does task, returns
    result
  • Information hiding boss does not know details
  • Also called Encapsulation

4
Math Library Functions
  • Math library functions
  • perform common mathematical calculations
  • include ltmath.hgt
  • gcc compiler requires lm parameter
  • Format for calling functions
  • FunctionName( argument )
  • If multiple arguments, use comma-separated list
  • printf( ".2f", sqrt( 900.0 ) )
  • Calls function sqrt, which returns the square
    root of its argument
  • All math functions return data type double
  • Arguments may be constants, variables, or
    expressions

5
Functions
  • Functions
  • Modularize a program
  • All variables declared inside functions are local
    variables
  • Known only in function defined
  • Parameters
  • Communicate information between functions
  • Local variables
  • Benefits of functions
  • Divide and conquer
  • Manageable program development
  • Software reusability
  • Use existing functions as building blocks for new
    programs
  • Abstraction - hide internal details (library
    functions)
  • Avoid code repetition

6
Function Definitions
  • Function definition format
  • return-value-type function-name( parameter-list
    ) declarations and statements
  • Function-name any valid identifier
  • Return-value-type data type of the result
    (default int)
  • void indicates that the function returns
    nothing
  • An unspecified return-value-type is always
    assumed by the compiler to be int
  • Parameter-list comma separated list, declares
    parameters
  • A type must be listed explicitly for each
    parameter, unless the parameter is of type int
  • Declarations and statements function body
    (block)
  • Variables can be declared inside blocks (can be
    nested)
  • Functions can not be defined inside other
    functions
  • Returning control
  • If nothing returned
  • return
  • or, until reaches right brace
  • If something returned
  • return expression

7
Function Prototypes
  • Function prototype
  • Function name
  • Parameters what the function takes in
  • Return type data type function returns (default
    int)
  • Used to validate functions
  • Prototype only needed if function definition
    comes after use in program
  • The function with the prototype
  • int maximum( int, int, int )
  • Takes in 3 ints
  • Returns an int
  • Promotion rules and conversions
  • Converting to lower types can lead to errors

8
1 / Fig. 5.4 fig05_04.c
2 Finding the maximum of three integers /
3 include ltstdio.hgt
4
5 int maximum( int, int, int ) / function
prototype /
  • Function prototype
  • (3 parameters)
  • 2. Input values
  • 3. Call function
  • Function definition

6
7 int main()
8
9 int a, b, c
10
11 printf( "Enter three integers " )
12 scanf( "ddd", a, b, c )
13 printf( "Maximum is d\n", maximum( a, b,
c ) )
14
15 return 0
16
17
18 / Function maximum definition /
19 int maximum( int x, int y, int z )
20
21 int max x
22
23 if ( y gt max )
24 max y
25
26 if ( z gt max )
27 max z
28
29 return max
30
Program Output
Enter three integers 22 85 17 Maximum is 85
9
Examples
plus2(int x,y) int sum sum x
y return sum
  • float plus1(float x,y)
  • float sum
  • sum x y
  • return sum
  • The minimal function, called a null function, is
    dummy()
  • Again, the return statement can be
  • return expression Example return aa
  • return (expression) Example return ((a gt 0)? a
    -a))
  • return
  • In conclusion, to call a function from another
    function, you should
  • Declare the type of the called function, if not a
    int function
  • Use format of function_name(actual parameters)

10
Acknowledgements
  • Some examples were obtained from the course
    textbook.
Write a Comment
User Comments (0)
About PowerShow.com