Sie sind auf Seite 1von 33

Analytical and Computational Methods in Civil Engineering I

1
st
Semester A.Y. 2013-2014
Lecture 4 C Functions
Elvin B. Cruz
Lecturer II
Institute of Civil Engineering
Overview:
- Functions in C Programming
- Recursive Functions
- Math Functions
- Scope and Lifetime of C Identifiers
- Random Number Generation in C
CE 26 Lecture 4 C Functions
Functions
CE 26 Lecture 4 C Functions
Functions
Types of Functions:
1. Standard library Functions
2. User-defined functions
Components:
1. Declaration
2. Definition (body)
CE 26 Lecture 4 C Functions
Function Declaration
Introduces the name, return type, and
parameters of a function
Must be done before calling the function
int myfunction ( float h, int y);
CE 26 Lecture 4 C Functions
Return Type
Function
Name
Parameters
Function Definition
CE 26 Lecture 4 C Functions
Contains the executable statements of the function and
all its variable and their declarations
Function
definition of
the main ()
function
#include<stdio.h>
double sqr ( double x );
int main( )
{
:
disc = sqr ( b ) 4*a*c;
:
}
double sqr ( double x )
{
return (x*x) ;
}
Example:
CE 26 Lecture 4 C Functions
Recursive Functions
CE 26 Lecture 4 C Functions
Recursive Functions
A recursive function is a function that calls itself
either directly or indirectly through another
function.
The function actually knows how to solve only the
simplest case(s), or so-called base case(s). If the
function is called with a base case, the function
simply returns a result. If the function is called with
a more complex problem, the function divides the
problem into pieces until it arrives with the base
case.
CE 26 Lecture 4 C Functions
CE 26 Lecture 4 C Functions
CODE:
OUTPUT:
CE 26 Lecture 4 C Functions
CODE:
OUTPUT:
Math Functions
CE 26 Lecture 4 C Functions
CE 26 Lecture 4 C Functions
Math Functions
CE 26 Lecture 4 C Functions
Math Functions
CE 26 Lecture 4 C Functions
CE 26 Lecture 4 C Functions
Scope and Lifetime of
C Identifiers
CE 26 Lecture 4 C Functions
a. File Scope
Such identifiers are known (i.e., accessible)
in all functions from the point at which the
identifier is declared until the end of the file.
Global variables, function definitions, and
function prototypes placed outside the main
function all have file scope.
CE 26 Lecture 4 C Functions
b. Block/Body Scope
Block scope ends at the terminating right brace (}) of the
block.
Local variables defined at the beginning of a function
have block scope as do function parameters (inputs),
which are considered local variables by the function.
Any block may contain variable definitions. When blocks
are nested, and an identifier in an outer block has the
same name as an identifier in an inner block, the
identifier in the outer block is hidden until the inner
block terminates.
CE 26 Lecture 4 C Functions
c. Function Scope (Labels)
Labels (an identifier followed by a colon such
as start: or stop:) are the only identifiers with
function scope.
Labels can be used anywhere in the function
in which they appear, but cannot be
referenced outside the function body.
Labels are used in switch statements (as case
labels) and in goto statements
CE 26 Lecture 4 C Functions
Example: goto
CE 26 Lecture 4 C Functions
d. Function Prototype Scope
The only identifiers with function-prototype scope are those
used in the parameter list of a function prototype.
Example:
void function(int x); // prototype -- x is a parameter
.
void function (int x) // declaration -- x is a parameter
{
Body statement
}
CE 26 Lecture 4 C Functions
Random Number Generation
CE 26 Lecture 4 C Functions
Random Number Generation
rand ()
- defined within <stdlib.h>
- rand () generates an integer between 0 and
RAND_MAX (32767)
- If rand () truly produces integers at random,
every number between 0 and RAND_MAX has
an equal chance (or probability) of being
chosen each time rand is called.
CE 26 Lecture 4 C Functions
CE 26 Lecture 4 C Functions
Random Number Generation
srand(seed);
function defined within <stdlib.h>
function rand actually generates pseudorandom
numbers, hence, the sequence repeats itself each time
the program is executed
function srand takes an unsigned integer argument
(seed) and seeds function rand to produce a different
sequence of random numbers for each execution of the
program.
The function time() is commonly used as the seed of the
srand() function
CE 26 Lecture 4 C Functions
Random Number Generation
CE 26 Lecture 4 C Functions
CODE:
OUTPUT:
C Standard Library Header Files
CE 26 Lecture 4 C Functions
CE 26 Lecture 4 C Functions
CE 26 Lecture 4 C Functions
CE 26 Lecture 4 C Functions
CE 26 Lecture 4 C Functions
References:
C How to Program: Introducing C++ and Java,
3
rd
Ed. byDeitel&Deitel.
Lecture Notes and Presentations by Dr. Eric
Tingatinga and Rahf Alvarez
CE 26 Lecture 4 C Functions

Das könnte Ihnen auch gefallen