Juan, un estudiante de programación, cree que las funciones y procedimientos son lo mismo y que no hay diferencia en su uso. ¿Cómo puedes explicar las diferencias clave entre los procedimientos y las funciones y cuándo es mejor utilizar uno sobre el otro?