La diferencia entre ellos es que un procedimiento ejecuta una serie de acciones que están relacionadas entre sí, puede devolver ningún valor o múltiples valores, y escribir en pantalla y leer datos, mientras que la función devuelve como mínimo 1 valor, y no puede ni escribir en pantalla ni leer datos.