Week 5 Modular Programming BJ Furman 20FEB2010 The Plan for Today Recap of structured programming Observations so far Recap the structure of a C program include define Arithmetic with integers and mixed data types Overview of modular programming Top down design Role of functions Functions Function prototype Return data type Arguments Function example Function practice Learning Objectives Explain what include and define do Explain how C handles arithmetic with integers and mixed data types 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 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 Observations so far Starting to get the hang of it Don t give up yet if you are still fuzzy on some of the concepts Don t slack off on the steps in the process of developing a program Define the problem Determine requirements specifications Define inputs and outputs Develop the logic of the program using pseudocode and or a flowchart Develop the C code including comments Test the program consider full range of possible inputs 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 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 Descriptive type function name type arg1 type arg1 statements Arguments or parameter list Statements Variable declaration Operations Return value if any double product double x double y double result result x y return result Functions Example Function prototype Like a variable declaration Tells compiler that the function will be defined later Helps detect program errors Note semicolon Function definition See previous slide Function call main is the calling function product is the called function Control transferred to the function code Code in function definition is executed Function return return statement terminates execution of the current function Control returns to the calling function if return expression then value of expression is returned as the value of the function call Only one value can be returned this way 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 x int y int result result x y return result Function Practice 2 Program to print out two happy or sad faces Continuously prompts for user input for happy face for sad face Quits if q or Q entered calls two functions 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 3 4 Declare variables Prompt user for input Get user input WHILE user input not equal to q AND not equal to Q 1 2 3 4 Prompt for user input Get user input If call happy face else if call call sad face Program Faces code Review References
View Full Document