Subalgoritmos o Subprogramas

                                                                                                                                                  
¿Qué es un Subalgoritmo?

     Se llama Subalgoritmo a cada una de 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 probnlema. 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á pon un subalgoritmo.

     Cuando hablamos de algoritmos complejos estamos hablando de problemas complejos es decir, problemas que se dividen en problemas mas pequeños (subproblemas). La solucion de estos subproblemas se realiza mediante los subalgoritmos.


     Está demostrado que ante un problema complejo, este se resuelve mejor cuando el mismo se divide en pequeños problemas. Este concepto es aplicable con los algoritmos, dividiéndolos en subalgoritmos, que en su conjunto logran resolver el algoritmo.

     La programación modular consiste en dividir un programa en partes bien diferenciadas, llamadas módulos (o subprogramas, o subalgoritmos o subrutinas), que pueden ser analizadas y programadas por separado. Existe un algoritmo o programa principal, que cede el control a los módulos, y una vez éstos se han ejecutado, vuelve a tomar el control, continuando la ejecución del programa por dónde los llamó

     El objetivo del uso de subalgoritmos es modularizar un algoritmo, es decir dividir al problema en subpromlemas, resolver el problema con un algoritmo y a los sobproblemas con subalgoritmos. De esta forma cuando resuelvo un problema me abstraigo de los pequeños detalles que no hacen en sí al problema llamando a acciones (Subalgoritmos) que una vez resuelto el problema principal tendré que solucionar.

La ventaja más importante de modularizar es que los subprogramas se pueden reutilizar en el mismo algoritmo o en otros.

 

 

Veamos el ejemplo planteado al principio

 

     El algoritmo, con el uso de subalgoritmos quedaría escrito de la siguiente forma.

 

Algoritmo Ejercicio_1

               Leer_Y_Validar

               X<-Numero

Escribir(‘Ingrese la cantidad de número que quiere ingresar’)

Leer(N)

Para i<-1 hasta N

               Lee_y_Validar

Ver_Cooprimos

Si Son_Coopromos entonces

                              Escribir(‘Los número son cooprimos’)

                              Si no

                              Escribir(‘Los número no son cooprimos’)

                              Fin si

               Fin Para

Fin Algoritmo Ejercicio_1

 

 

Subalgoritmo Leer_y_Validar

               Repetir

                              Escribir(‘Ingrese un número entre 1 y 10’)

                              Leer(Numero)

               Hasta   (Numero<=10)  ^ (Numero>=1)

Fin Subalgoritmo Leer_y_Validar

  

Subalgoritmo Ver_Cooprimos

               Son_Cooprimos<-V

               Si X<Numero entonces

                              Min<-X

               Si no

                              Min<-Numero

               Fin si

               i<-2

Mientras  i<Min ^ Son_Cooprimos Hacer

               Si  Min mod i = 0  Entonces

                              Son_Cooprimos<-F

               Si no

                              i<-i+1

               fin si

 

Fin Subalgoritmo Ver_Cooprimos


¿Qué es un procedimiento?

     Teniendo en cuenta lo anterior, se definiría como un módulo. Concretamente, como un módulo que no retorna ningún valor, ejecuta lo que tenga que ejecutar y devuelve el control al programa que lo llamó.
Supongamos que queremos ordenar tres valores numéricos.
En ese caso, el algoritmo sería:
Algoritmo ordenar
Var
a,b,c, aux : entero
Comienzo
Leer a, b, c
si a > b
aux= a
a=b
b= aux
Tres veces se repite el intercambio, con diferentes variables.
     Obsérvese que las líneas de código son similares, por lo que se podría escribir un fragmento de código aparte, y utilizarlo con los PARAMETROS adecuados en cada caso
finsi
si b>c
aux= c
c=b
b= aux
si a > b
aux= a
a=b
b= aux
finsi
finsi
mostrar a,b,c
fin
Amerita, entonces, utilizar un procedimiento «intercambio » que me permita intercambiar dos variables cada vez que lo necesite y sin necesidad de reescribir el código cada vez.

Funciones:

     Es una que toma una o mas valores llamados argumentos y produce un valor llamado resultado
Ejemplo:
F(x) =x/i+x*x
Para evaluar f debemos darle un valor a x.

Declaración de funciones

     Requiere de una serie de pasos que la definen .
Consta de una cabecera , seguido de la palabra (función) y del nombre del argumento de la
función después ira el cuerpo que es una serie de acciones cuya ejecución hará que se asigne un
valor al nombre de la función , esto determina el resultado que ha de devolver al programa.

Ejemplo:

F(x,y)=x/1+x*x
Se define como :
Real función f(x)
Inicio
Devolver (x/(1+x*x))
Fin_funcion



Para estar informado de los últimos artículos, suscríbase: