Presentation is loading. Please wait.

Presentation is loading. Please wait.

EECE.2160 ECE Application Programming

Similar presentations


Presentation on theme: "EECE.2160 ECE Application Programming"— Presentation transcript:

1 EECE.2160 ECE Application Programming
Instructor: Dr. Michael Geiger Fall 2018 Lecture 15: Functions

2 ECE Application Programming: Lecture 15
Lecture outline Announcements/reminders Program 4 due 10/22 Today’s lecture Review: for loops Functions 7/6/2019 ECE Application Programming: Lecture 15

3 ECE Application Programming: Lecture 15
Review: for loops for (<init var>; <test>; <change var>) <statements> Operators to directly change variable x++, x--  post-increment/decrement ++x, --x  pre-increment/decrement +=, -=, *=, /=  augmented assignment 7/6/2019 ECE Application Programming: Lecture 15

4 ECE 160 - Introduction to Computer Engineering I
02/09/2005 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. 7/6/2019 ECE Application Programming: Lecture 15 (c) 2005, P. H. Viall

5 ECE Application Programming: Lecture 15
7/6/2019 ECE Application Programming: Lecture 15

6 ECE Application Programming: Lecture 15
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 7/6/2019 ECE Application Programming: Lecture 15

7 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 ) 7/6/2019 ECE Application Programming: Lecture 15

8 ECE Application Programming: Lecture 15
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 ? 7/6/2019 ECE Application Programming: Lecture 15

9 ECE Application Programming: Lecture 15
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 ? 7/6/2019 ECE Application Programming: Lecture 15

10 ECE Application Programming: Lecture 15
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 ? 7/6/2019 ECE Application Programming: Lecture 15

11 ECE Application Programming: Lecture 15
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 ? 7/6/2019 ECE Application Programming: Lecture 15

12 ECE Application Programming: Lecture 15
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 7/6/2019 ECE Application Programming: Lecture 15

13 ECE Application Programming: Lecture 15
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 7/6/2019 ECE Application Programming: Lecture 15

14 ECE Application Programming: Lecture 15
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 7/6/2019 NOTE - a and b are NOT copied back to x and y ECE Application Programming: Lecture 15

15 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 7/6/2019 ECE Application Programming: Lecture 15

16 ECE Application Programming: Lecture 15
Answer Trgle w legs and has hyp of 7/6/2019 ECE Application Programming: Lecture 15

17 ECE Application Programming: Lecture 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; } 7/6/2019 ECE Application Programming: Lecture 15

18 ECE Application Programming: Lecture 15
Example solution x = 1, y = 2 Result 1: 2 Result 2: 4 Result 3: 8 7/6/2019 ECE Application Programming: Lecture 15

19 ECE Application Programming: Lecture 15
Final notes Next time Continue with functions Exams to be returned next week Reminders: Program 3 graded; regrades due 3/7 Program 4 due 3/2 No Thursday office hours this week If normal office hours don’t work, please make an appointment for another day 7/6/2019 ECE Application Programming: Lecture 15


Download ppt "EECE.2160 ECE Application Programming"

Similar presentations


Ads by Google