102 Subalgoritmos puede utilizar repetidamente.Los programadores expertos emplean buena parte de su tiempo en identificar rutinas y reutilizarlas en forma apropiada.Cada módulo es parte de un algoritmo general, por lo cual lo denominaremos subalgoritmo. 5.2 Concepto de subalgoritmo Un subalgoritmo define una tarea específica que puede ser reutilizada en distintos contextos de resolución de problemas algorítmicos Algunos módulos son tan comunes que están incluidos en los lenguajes de programación. Son las denominadas funciones internas, tales como sin( ), cos( ), abs( ), las cuales son suministradas en forma de biblioteca o paquetes de módulos reutilizables. Como se mencionó, cada subalgoritmo puede desarrollarse en forma independiente de los restantes. Debe tener una zona de ingreso de datos y otra de salida de resultados. Los esquemas que se muestran a continuación representan dos posibles estructuras equivalentes de diseño de algoritmos utilizando subalgoritmos. Notar que es lo mismo pensar y escribir primero los subalgoritmos, y luego utilizarlos en el algoritmo principal, o primero pensar y escribir el algoritmo principal proponiendo los subalgoritmos, y luego escribir cada uno de ellos, como se muestra en Fig.1. Es decir, es indistinto el orden en que se piensan y escriben el algoritmo y subalgoritmos que componen el mismo. 1. Es indistinto el orden enque se piensan y escriben el algoritmo y subalgoritmo Se diferencian dos tipos de subalgoritmo acorde a las tareas que desarrollan: los subalgoritmos función y los subalgoritmos subrutina, los que veremos a continuación. 5.3 Subalgoritmo función Este tipo de subalgoritmos se implementa cuando la tarea a desarrollar devuelve un único resultado, en general son cálculos. Responden al concepto matemático de función de una o más variables. Ejemplos de este tipo de subalgoritmos son las funciones internas tales comosin( ), cos( ), abs( ), hallar el máximo de un conjunto de números, etc.