DOC PREVIEW
SJSU ME 30 - Modular Programming

This preview shows page 1-2-20-21 out of 21 pages.

Save
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Lecture 5 Modular Programming functions part 1 BJ Furman 27FEB2012 Learning Objectives Explain the concept of modular program design Explain the concept of a function in C Explain why functions are important in programming Explain the structure of a function Return data type Parameters Apply the concept of a function to a practical problem Explain how larger C programs should be structured using h and c files Modular Programming Break a large problem into smaller pieces Smaller pieces sometimes called modules or subroutines or procedures or functions Why Helps manage complexity Smaller blocks of code Easier to read Encourages re use of code Within a particular program or across different programs Allows independent development of code Provides a layer of abstraction a sqrt 9 0 Functions The building blocks of a C program You ve used predefined functions already main printf scanf pow User defined functions Your own code In combination with predefined functions Functions Mathematical View f x x 2 2 x 3 What is f 2 f 2 2 2 2 2 3 4 4 3 11 f 2 is 11 X Function Returned value 2 f x 11 Functions Definition Structure Function header Return data type if any Name Arguments or parameter list Descriptive Notice data type and name Statements Variable declaration Operations Return value if any type function name type arg1 type arg2 statements A function that calculates the product of two numbers double product double x double y double result result x y return result Functions Example Function prototype Like a variable declaration Function definition See previous slide Note NO semicolon Function return return statement terminates execution of the current function Control returns to the calling function if return expression Tells compiler that the function will be defined later Helps detect program errors Note semicolon then value of expression is returned as the value of the function call Only one value can be returned this way Function call main is the calling function product is the called function Control transferred to the function code Code in function definition is executed include stdio h function prototype double product double x double y int main double var1 3 0 var2 5 0 double ans ans product var1 var2 printf var1 2f n var2 2f n var1 var2 printf var1 var2 g n ans function definition double product double x double y double result result x y return result Function Practice 1 Write a function named sum sums two integers returns the sum 2 min on your own Share with neighbor Steps 1 Function header return data type function name argument list with data types 2 Statements in function definition variable declaration operations return value Function sum int sum int int x int y int result result x y return result Functions that do not return a value Use the return type of void void my fun arg list Practice Write two functions the first prints out first name and the second prints out last name Function Practice 2 Program to print out two happy or sad faces Continuously prompts for user input calls two functions for happy face for sad face Quits if q or Q entered happy face sad face Work in pairs Pseudocode first Divide tasks of writing the two functions Steps 1 Pseudocode for program logic 2 Function header return data type if any function name argument list with data types if any 3 Statements in function definition variable declaration if any operations return value Program Faces logic Pseudocode 1 2 Declare and initialize variables WHILE user input not equal to q AND not equal to Q 1 2 5 6 7 Switch on user input to Case call happy face break Case call sad face break Case q Case Q break 8 9 Case 0 Default re prompt for user input Program Faces code Structuring C Programs Modularization Breaking a program up into smaller pieces Instead of one big program c break into groupings of header files h and source code c files module 1 h module 1 c etc Rationale separates the user interface description h from the nittygritty details of implementation c The Application Programming Interface API the h file is distinct from the implementation the c file which may already be compiled and not readily viewed Example math h from Ch can construct and test modules independently promotes re use of code Example math h used in Ch See C Ch include math h Declaration of constants define isgreater x y x y Declaration of global variables caution Function prototypes 3 14159265358979323846 Declaration of macro subsitutions define M PI extern double sin double x Pertinent comments Review Structured Programming All programs can be written using these control structures Sequence Decision three structures IF IF ELSE SWITCH Repetition three structures WHILE DO WHILE FOR Structure of a C program Ex free fall d vs time c C Code for D D 3 15c Programmer s block Pre processor directive Main function statements go between Declare and initialize variables While loop repetition structure return statement Arithmetic with Integers and Mixed Data Types Arithmetic with integers Result is an integer 1 1 2 4 2 2 2 4 BE CAREFUL Arithmetic with mixed data types Automatic conversion of operand so that data types match Conversion is upward in the sizeof sense Example in Ch char a 7 sizeof a double b 3 sizeof b printf a b lf and needs d bytes n a b sizeof a b References Modular Programming in C http www icosaedro it c modules html math h http www opengroup org onlinepubs 007 908799 xsh math h html


View Full Document
Download Modular Programming
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Modular Programming and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Modular Programming and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?