Upload
paul-solt
View
598
Download
3
Embed Size (px)
DESCRIPTION
Course Link: http://skl.sh/11kA0im Website: http://iPhoneDev.tv Learn about functions which allow you to organize your code into chunks. Functions allow you to delegate work between different blocks of code.
Citation preview
Paul Solt iPhoneDev.tv
FunctionsInstruction manuals for computers
Paul Solt iPhoneDev.tv
Outline•Functions
•Stack Frame
•Recursion
•Debugging
•Global Variables
Paul Solt iPhoneDev.tv
Paul Solt iPhoneDev.tv
Desk
1. Build small drawer2. Build large drawer 3. Build desk frame4. Insert small drawer5. Insert large drawer
Paul Solt iPhoneDev.tv
Area = A x B
Area
A
B
Paul Solt iPhoneDev.tv
int area(int sideA, int sideB)
Paul Solt iPhoneDev.tv
int area(int sideA, int sideB)
return type
Paul Solt iPhoneDev.tv
int area(int sideA, int sideB)
name
return type
Paul Solt iPhoneDev.tv
int area(int sideA, int sideB)
name parameter
return type
parameter
Paul Solt iPhoneDev.tv
int area(int sideA, int sideB)
Paul Solt iPhoneDev.tv
int area(int sideA, int sideB) { int result = sideA * sideB; return result; }
Paul Solt iPhoneDev.tv
int total = area(4, 2);
Paul Solt iPhoneDev.tv
int total = area(4, 2);
arguments
Paul Solt iPhoneDev.tv
int total = area(4, 2);
8
arguments
Paul Solt iPhoneDev.tv
int total = area(4, 2);
Paul Solt iPhoneDev.tv
Stack Frame
•“Sandbox”
•Local Variables
Paul Solt iPhoneDev.tv
Stack Frame
•“Sandbox”
•Local Variables
main()total = area(4,2);
Paul Solt iPhoneDev.tv
Stack Frame
•“Sandbox”
•Local Variables
main()total = area(4,2);
area(4,2)sideA = 4sideB = 2result = 8
Paul Solt iPhoneDev.tv
Stack Frame
•“Sandbox”
•Local Variables
main()total = area(4,2);
Paul Solt iPhoneDev.tv
Stack Frame
•“Sandbox”
•Local Variables
main()total = 8;
Paul Solt iPhoneDev.tv
Stack Frame
•“Sandbox”
•Local Variables
Paul Solt iPhoneDev.tv
Area
Paul Solt iPhoneDev.tv
Recursion
Space Shuttle: Countdown Timer1. Display number2. Subtract one3. Repeat steps 1 and 2 (until 0) STS-110, NASA
Paul Solt iPhoneDev.tv
Recursion
Paul Solt iPhoneDev.tv
Recursionvoid countDown(int number) { if(number == 0) { printf("Take off!\n"); } else { printf("T-minus %d seconds\n", number); int nextNumber = number - 1; countDown(nextNumber); }}
Paul Solt iPhoneDev.tv
Recursionvoid countDown(int number) { if(number == 0) { printf("Take off!\n"); } else { printf("T-minus %d seconds\n", number); int nextNumber = number - 1; countDown(nextNumber); }}
Paul Solt iPhoneDev.tv
Recursionvoid countDown(int number) { if(number == 0) { printf("Take off!\n"); } else { printf("T-minus %d seconds\n", number); int nextNumber = number - 1; countDown(nextNumber); }}
Paul Solt iPhoneDev.tv
Stack Frame
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)countDown(3)nextNumber = 2countDown(2)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)countDown(3)nextNumber = 2countDown(2)countDown(2)nextNumber = 1countDown(1)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)countDown(3)nextNumber = 2countDown(2)countDown(2)nextNumber = 1countDown(1)countDown(1)nextNumber = 0countDown(0)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)countDown(3)nextNumber = 2countDown(2)countDown(2)nextNumber = 1countDown(1)countDown(1)nextNumber = 0countDown(0)countDown(0)take off!
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)countDown(3)nextNumber = 2countDown(2)countDown(2)nextNumber = 1countDown(1)countDown(1)nextNumber = 0countDown(0)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)countDown(3)nextNumber = 2countDown(2)countDown(2)nextNumber = 1countDown(1)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)countDown(3)nextNumber = 2countDown(2)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)countDown(4)nextNumber = 3countDown(3)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)countDown(5)nextNumber = 4countDown(4)
Paul Solt iPhoneDev.tv
Stack Framemain()startNumber = 5countDown(5)
Paul Solt iPhoneDev.tv
Stack Frame
Paul Solt iPhoneDev.tv
CountDown!
Paul Solt iPhoneDev.tv
Global Variablesint total = 10
resetTotal()total = 0;
updateTotal()total = total + 1;
Paul Solt iPhoneDev.tv
Global Variables
Paul Solt iPhoneDev.tv
Review•Functions
•Stack Frame
•Recursion
•Debugging
•Global Variables
Paul Solt iPhoneDev.tv