Foundations
Functions
Functions name reusable work and return values to the caller.
function call
A function call runs the named function and can use the returned value in another expression.
Functions
functions.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
int square(int value) {
return value * value;
}
int main() {
int side = 5;
int area = square(side);
std::cout << "side=" << side << std::endl;
std::cout << "area=" << area << std::endl;
return 0;
}
#include <iostream>
int square(int value) {
return value * value;
}
int main() {
int side = 3;
int area = square(side);
std::cout << "side=" << side << std::endl;
std::cout << "area=" << area << std::endl;
return 0;
}
#include <iostream>
int square(int value) {
return value * value;
}
int main() {
int side = 8;
int area = square(side);
std::cout << "side=" << side << std::endl;
std::cout << "area=" << area << std::endl;
return 0;
}
side ← 5
7int main() {8 int side→ 5 = 5; //@side=3, 89 int area = square(side5);int square(int value)
3int square(int value5) {4 return value5 * value;5}area ← 25
8 int side = 5; //@side=3, 89 int area→ 25 = square(side5);1011 std::cout << "side=" << side5 << std::endl;12 std::cout << "area=" << area25 << std::endl;13 return 0;14}outputside=5 area=25
side ← 3
7int main() {8 int side→ 3 = 3;9 int area = square(side3);int square(int value)
3int square(int value3) {4 return value3 * value;5}area ← 9
8 int side = 3;9 int area→ 9 = square(side3);1011 std::cout << "side=" << side3 << std::endl;12 std::cout << "area=" << area9 << std::endl;13 return 0;14}outputside=3 area=9
side ← 8
7int main() {8 int side→ 8 = 8;9 int area = square(side8);int square(int value)
3int square(int value8) {4 return value8 * value;5}area ← 64
8 int side = 8;9 int area→ 64 = square(side8);1011 std::cout << "side=" << side8 << std::endl;12 std::cout << "area=" << area64 << std::endl;13 return 0;14}outputside=8 area=64
Follow the Function Call
sidestarts at5.square(side)sends5into the function.- The function returns
5 * 5. areabecomes25.- The program prints
side=5andarea=25. | side | square result | | --- | --- | | 3 | 9 | | 5 | 25 | | 8 | 64 |
Exercise: functions.cpp
Reproduce area=25 for side 5, then try side 3 and 8 and predict each area before running it.