KEMBAR78
Functions in Objective-C and C Programming | PDF
Paul Solt
iPhoneDev.tv
Functions
Instruction manuals for computers
Paul Solt
iPhoneDev.tv
Outline
•Functions
•Stack Frame
•Recursion
•Debugging
•GlobalVariables
Paul Solt
iPhoneDev.tv
Paul Solt
iPhoneDev.tv
Desk
1. Build small drawer
2. Build large drawer
3. Build desk frame
4. Insert small drawer
5. 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”
•LocalVariables
Paul Solt
iPhoneDev.tv
Stack Frame
•“Sandbox”
•LocalVariables
main()
total = area(4,2);
Paul Solt
iPhoneDev.tv
Stack Frame
•“Sandbox”
•LocalVariables
main()
total = area(4,2);
area(4,2)
sideA = 4
sideB = 2
result = 8
Paul Solt
iPhoneDev.tv
Stack Frame
•“Sandbox”
•LocalVariables
main()
total = area(4,2);
Paul Solt
iPhoneDev.tv
Stack Frame
•“Sandbox”
•LocalVariables
main()
total = 8;
Paul Solt
iPhoneDev.tv
Stack Frame
•“Sandbox”
•LocalVariables
Paul Solt
iPhoneDev.tv
Area
Paul Solt
iPhoneDev.tv
Recursion
Space Shuttle: CountdownTimer
1. Display number
2. Subtract one
3. Repeat steps 1 and 2 (until 0) STS-110, NASA
Paul Solt
iPhoneDev.tv
Recursion
Paul Solt
iPhoneDev.tv
Recursion
void countDown(int number) {
if(number == 0) {
printf("Take off!n");
} else {
printf("T-minus %d secondsn", number);
int nextNumber = number - 1;
countDown(nextNumber);
}
}
Paul Solt
iPhoneDev.tv
Recursion
void countDown(int number) {
if(number == 0) {
printf("Take off!n");
} else {
printf("T-minus %d secondsn", number);
int nextNumber = number - 1;
countDown(nextNumber);
}
}
Paul Solt
iPhoneDev.tv
Recursion
void countDown(int number) {
if(number == 0) {
printf("Take off!n");
} else {
printf("T-minus %d secondsn", number);
int nextNumber = number - 1;
countDown(nextNumber);
}
}
Paul Solt
iPhoneDev.tv
Stack Frame
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
countDown(3)
nextNumber = 2
countDown(2)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
countDown(3)
nextNumber = 2
countDown(2)
countDown(2)
nextNumber = 1
countDown(1)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
countDown(3)
nextNumber = 2
countDown(2)
countDown(2)
nextNumber = 1
countDown(1)
countDown(1)
nextNumber = 0
countDown(0)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
countDown(3)
nextNumber = 2
countDown(2)
countDown(2)
nextNumber = 1
countDown(1)
countDown(1)
nextNumber = 0
countDown(0)
countDown(0)
take off!
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
countDown(3)
nextNumber = 2
countDown(2)
countDown(2)
nextNumber = 1
countDown(1)
countDown(1)
nextNumber = 0
countDown(0)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
countDown(3)
nextNumber = 2
countDown(2)
countDown(2)
nextNumber = 1
countDown(1)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
countDown(3)
nextNumber = 2
countDown(2)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
countDown(4)
nextNumber = 3
countDown(3)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
countDown(5)
nextNumber = 4
countDown(4)
Paul Solt
iPhoneDev.tv
Stack Frame
main()
startNumber = 5
countDown(5)
Paul Solt
iPhoneDev.tv
Stack Frame
Paul Solt
iPhoneDev.tv
CountDown!
Paul Solt
iPhoneDev.tv
GlobalVariables
int total = 10
resetTotal()
total = 0;
updateTotal()
total = total + 1;
Paul Solt
iPhoneDev.tv
GlobalVariables
Paul Solt
iPhoneDev.tv
Review
•Functions
•Stack Frame
•Recursion
•Debugging
•GlobalVariables
Paul Solt
iPhoneDev.tv

Functions in Objective-C and C Programming