title: Subalgoritmo
text: # Subalgoritmo
  
  Se llama subalgoritmo es un método de programación para dividir las partes de un algoritmo más general que resuelve cada una de las tareas particulares necesarias para que dicho algoritmo general alcance el objetivo para el que fue diseñado, es decir resolver un problema. Esta técnica se suele denominarse "divide y vencerás" esto debido a que se divide el problema en pequeñas partes hasta alcanzar lograr el problema general.
  
  Este concepto está vinculado al diseño estructurado de algoritmos, en el cual un problema se divide en partes que posteriormente son resueltas por un módulo. Cada módulo coincidirá con un subalgoritmo.
  
  ## Tipos de subalgoritmos
  
  * Funciones: devuelven un valor.
  * Procedimientos: cambian un valor.
  
  ## Ámbito de las variables
  
  Desde el punto de un subalgoritmo las variables pueden ser locales o globales:
  
  * Las variables locales se declaran dentro de un módulo o subalgoritmo y solo tienen utilidad dentro de ese módulo, no se podrá acceder a ellas desde otros módulos. Pueden existir variables locales con el mismo nombre siempre que estén en módulos diferentes.
  * Las variables globales son declaradas de forma que puedan ser utilizadas (consultada y/o modificada) desde cualquiera de los módulos que forman el programa. En este caso, no puede haber dos variables globales con el mismo nombre, ya que esto produciría una ambigüedad que el compilador no podría resolver. En el diseño estructurado de algoritmos se desaconseja el uso de variables globales ya que este produciría acoplamiento común.
  
  ## Paso de argumentos
  
  Cuando se hace una llamada a un subalgoritmo, se le pueden pasar argumentos para determinar ciertas condiciones en su funcionamiento. Este paso de argumentos se puede hacer por valor o por referencia.
  
  Ver Paso de argumentos en Argumento (Ciencias de la computación)'
  
  