Functions break problems into smaller, more manageable steps and allow code to be reused. A function header specifies the return type, name, and parameters. The body contains local variable declarations and statements that solve the problem, ending with a return. Parameters in the header communicate with code outside the function, while local variables are private and only used within the function.