Functions
Function: A reusable block of code that performs a specific task.
#include <iostream>
// Function declaration
int add(int a, int b);
void greet(std::string name);
double calculateAverage(int scores[], int size);
int main() {
// Call functions
int sum = add(5, 3);
std::cout << "Sum: " << sum << std::endl;
greet("Alice");
int testScores[] = {85, 90, 78, 92, 88};
double average = calculateAverage(testScores, 5);
std::cout << "Average score: " << average << std::endl;
return 0;
}
// Function definition
int add(int a, int b) {
return a + b;
}
void greet(std::string name) {
std::cout << "Hello, " << name << "!" << std::endl;
}
double calculateAverage(int scores[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += scores[i];
}
return static_cast<double>(sum) / size;
}
Function Diagram:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Function Structure β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Function Declaration β β
β β β β
β β return_type function_name(parameter_list); β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Function Definition β β
β β β β
β β return_type function_name(parameter_list) { β β
β β // function body β β
β β return value; // for non-void functions β β
β β } β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Function Call β β
β β β β
β β result = function_name(arguments); β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Function Call Flow:
βββββββββββββ βββββββββββββ βββββββββββββ
β β β β β β
β main() ββββββββΆβ add(5,3) ββββββββΆβ return 8 β
β β β β β β
βββββββββββββ βββββββββββββ βββββββββββββ
Output:
Sum: 8
Hello, Alice!
Average score: 86.6