Title: CSCI 230
1Department of Computer and Information
Science,School of Science, IUPUI
CSCI 230
Functions
Declarations
Dale Roberts, Lecturer IUPUI droberts_at_cs.iupui.edu
2Functions 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
3Program 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
4Math 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
5Functions
- 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
6Function 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
7Function 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
9Examples
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)
10Acknowledgements
- Some examples were obtained from the course
textbook.