1 / 17

16.216 ECE Application Programming

16.216 ECE Application Programming. Instructor: Dr. Michael Geiger Fall 2013 Lecture 14 Functions. Lecture outline. Announcements/reminders Program 4 due today Program 5 to be posted; due 10/16 Exam regrades due 10/11 Today’s lecture Functions Early feedback forms. Functions.

geneva
Download Presentation

16.216 ECE Application Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 16.216ECE Application Programming Instructor: Dr. Michael Geiger Fall 2013 Lecture 14 Functions

  2. Lecture outline • Announcements/reminders • Program 4 due today • Program 5 to be posted; due 10/16 • Exam regrades due 10/11 • Today’s lecture • Functions • Early feedback forms ECE Application Programming: Lecture 14

  3. Functions • Functions used to break problem down into small, "bite-sized" pieces. • Make code more manageable and readable • Identify reusable pieces • Functions have an optional type of return value, a name, and optional arguments • Functions return at most, ONE value • Functions must be either "prototyped" or declared prior to use. Good programming practices requires all functions to be prototyped. ECE Application Programming: Lecture 14

  4. Functions name of function type of value returned parameters of function (variables in) double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} Alternate way of writing above function double hyp(double a, double b){ return sqrt(a*a + b*b);} Single value returned by function ECE Application Programming: Lecture 14

  5. Functions - complete program #include <stdio.h>#include <math.h> double hyp(double a, double b); void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} prototype (note semi-colon ) actual function definition (NO semi-colon ) ECE Application Programming: Lecture 14

  6. Functions - scope #include <stdio.h>#include <math.h> double hyp(double a, double b); void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} x ? y ? h ? a ? b ? sum ? result ? ECE Application Programming: Lecture 14

  7. Functions - scope #include <stdio.h>#include <math.h> double hyp(double a, double b); void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} x 3.0 y 4.0 h ? a ? b ? sum ? result ? ECE Application Programming: Lecture 14

  8. Functions - scope #include <stdio.h>#include <math.h> double hyp(double a, double b); void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} x 3.0 y 4.0 h ? a 3.0 b 4.0 sum ? result ? ECE Application Programming: Lecture 14

  9. Functions - scope #include <stdio.h>#include <math.h> double hyp(double a, double b); void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} x 3.0 y 4.0 h ? a 3.0 b 4.0 sum 25.0 result ? ECE Application Programming: Lecture 14

  10. Functions - scope #include <stdio.h>#include <math.h> double hyp(double a, double b); void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} x 3.0 y 4.0 h ? a 3.0 b 4.0 sum 25.0 result 5.0 ECE Application Programming: Lecture 14

  11. Functions - scope #include <stdio.h>#include <math.h> double hyp(double a, double b); void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} x 3.0 y 4.0 h ? a 3.0 b 4.0 sum 25.0 result 5.0 ECE Application Programming: Lecture 14

  12. Functions - scope #include <stdio.h>#include <math.h> double hyp(double a, double b); void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; sum = a*a + b*b; result = sqrt(sum); return result;} x 3.0 y 4.0 h 5.0 NOTE - a and b are NOT copied back to x and y ECE Application Programming: Lecture 14

  13. Exercise - What prints (if 5, 12 entered) #include <stdio.h>#include <math.h>double hyp(double a, double b);void main(){ double x,y,h; printf("Enter two legs of triangle: "); scanf("%lf %lf",&x,&y); h=hyp(x,y); printf("Trgle w legs %lf and %lf has hyp of %lf\n",x,y,h); } double hyp(double a, double b){ double sum, result; a = 3; b = 4; sum = a*a + b*b; result = sqrt(sum); return result;} x y h a b sum result ECE Application Programming: Lecture 14

  14. Answer Trgle w legs 5.000000 and 12.000000 has hyp of 5.00000 ECE Application Programming: Lecture 14

  15. Example • What does the following print? int f(int a, int b); int main() { int x = 1; int y = 2; int result1, result2, result3; result1 = f(x, y); result2 = f(y, result1); result3 = f(result1, result2); printf("x = %d, y = %d\n", x, y); printf("Result 1: %d\n", result1); printf("Result 2: %d\n", result2); printf("Result 3: %d\n", result3); return 0; } int f(int a, int b) { int i; // Loop index int r = 0; // Result for (i = 0; i < a; i++) r += b; return r; } ECE Application Programming: Lecture 14

  16. Example solution x = 1, y = 2 Result 1: 2 Result 2: 4 Result 3: 8 ECE Application Programming: Lecture 14

  17. Final notes • Next time • Continue discussion of functions • Pointers • Reminders: • Program 4 due today • Program 5 to be posted; due 10/16 • Exam regrades due 10/11 ECE Application Programming: Lecture 14

More Related