ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERA
CONTENIDO DIDCTICO DEL CUSO: 301303 ALGORITMO SUBPROGRAMA O MODULO
Introduccin Hay una expresin que dice Divide y Vencers, precisamente los mdulos lo que permiten es dividir los programas grades, en fragmentos pequeos. Un subprograma o modulo es un trozo de cdigo que tiene Entradas Salidas Instrucciones Es otro programa prendido al programa principal Funciones
Una funcin se considera como un subprograma puede ser utilizado por el programa principal o por otros subprogramas Al dividir un programa en mdulos este permite Permite mayores niveles de abstraccin, por ende capacidad de abordar problemas ms complejos Disear programas ms claros, y por ende ms fciles de mantener Permite la reutilizacin de cdigo, y por ende evita duplicidad de trabajo y aumenta productividad La deteccin de errores y correccin se hace fcil. Puesto que nuestra herramienta de programacin va a ser el lenguaje C# se har una introduccin al uso de de funciones aunque este tema ser estudiado en profundidad en el curso de introduccin a la programacin
En esquema un programa dividido en mdulos ser:
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 301303 ALGORITMO
Como se puede apreciar en la anterior grafica, se debe crear un programa principal que haga el llamado a cada una de las funciones que este necesite y a su vez un modulo o funcin puede llamar a otro. Es de destacar que en algunos casos de la figura se puede apreciar que existen flechas en doble sentido es decir se enva informacin de un lado o del programa principal y este enva informacin de retorno.
Leccin 12: procedimientos A pesar que muchos de los lenguajes de programacin o ara ser mas exactos todos aquellos derivados de C o C++, emplean solamente funciones, existen otros que tambin pueden utilizar procedimientos, la diferencia esencial entre una funcin y un procedimiento radica en que este ltimo es un subprograma que realiza una o varias tarea especficas y Puede recibir cero o mas valores del programa que llama y devolver cero o mas valores a dicho programa, en el caso de una funcin, esta puede recibir varios argumentos o valores y retornar cero o mximo un valor. La declaracin de de los procedimientos es similar a las funciones Procedimiento nombre (lista de parmetros) Instrucciones
Fin procedimiento
Solicita Informacin Enva datos Programa Principal Modulo Modulo Modulo Otro Programa Retorna informacin Retorna informacin
Interacta entre mdulos Figura1: Funciones
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 301303 ALGORITMO Los parmetros tienen el mismo significado que en las funciones En ambos casos es importante tener en cuenta la forma de pasar los datos, que pueden ser por valor o por referencia Paso de parmetros por valor El paso de parmetros por valor es el ms utilizado por los lenguajes de programacin, la gran ventaja de esto es que los valores se transforma en variables para ser trabajadas en los procedimiento o funciones, por ejemplo los valores 5,41 y 2 se transforman en X,Y,Z respectivamente cuando se ejecuta el procedimiento, en este sentido es de desatacar que los cambios que se produzcan dentro de la funcin invocada, esta no tiene cambio directo en los argumentos originales Ejemplo A=5, b=7; Llamar a funcin suma (a, 20, b*2+6) Funcin suma (R entero: X, Y ,Z) Entonces la variable X toma el valor de a (5) La variable Y toma el valor de 20 Y la variable Z toma el valor de 20 (7*2+6) Y todo lo que se haga dentro de la funcin suma no afectara para nada las variables A,B
Paso De Parmetros Por Referencia Para el caso de los parmetros por referencia, esta caracterstica existe tambin en muchos de los lenguajes que manejan memoria dinmica, la caracterstica de este radica en la idea lgica de las variable tienen una posicin de memoria asignada desde la cual se puede asesar o actualizar los valores para este caso los parmetros se denominan parmetros variables. La definicin de los procedimientos se realiza de acuerdo al lenguaje de programacin, para el caso de los algoritmos, tambin se hace una definicin previa en la cabecera y luego su construccin al final del programa principal
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 301303 ALGORITMO
Leccin 15: Construccin de un proyecto Para comprende mejor el concepto, lo realizaremos a travs de un ejemplo, prctico Ejercicio: Realizar un algoritmo que mediante un men, permita realizar la cuatro operaciones bsicas, suma, resta, divisin y multiplicacin, terminando, permitiendo salir con el nmero 0.
Anlisis 1.- ya sabemos cmo se hacen cada una de las operaciones, 2.-sabemos cmo se comportan los ciclos 3.-manos a la obra con funciones Se pide un men 1
Solucin 1 Algoritmo men 2 Var 3 dato1, dato2, op: entero; 4 inicio 5 op=1;
1 Men: Serie de opciones de donde se debe tomar una para realizar una accin Men principal
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 301303 ALGORITMO El resultado viene en el nombre de la funcin y se imprime de unas ves 6 Mientras (op<>0) 7 Escriba (1...Suma); 8 Escriba (2....Resta); 9 Escriba (3....Divisin); 10 Escriba (4....Multiplicacin) 11 Escriba (0....Salir) 12 Lea (op); 13 Si (op=1) 14 Escriba (Entre el primer numero); 15 Lea (dato1); 16 Escriba (Entre el segundo nmero); 17 Lea (dato2); 18 Escriba (El resultado de la suma es, suma (dato1, dato2); 19 Fin _ si 20 Si (op=2) 21 Escriba (Entre el primer numero); 22 Lea (dato1); 23 Escriba (Entre el segundo nmero); 24 Lea (dato2); 25 Escriba (El resultado de la resta es, resta (dato1, dato2); 26 Fin _ si 27 Si (op=3) 28 Escriba (Entre el primer numero); 29 Lea (dato1); 30 Escriba (Entre el segundo nmero); Llamado a la funcin suma, a la cual se le pasan dos parmetros
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 301303 ALGORITMO Retorna la respuesta al programa principal 31 Lea (dato2); 32 Escriba (El resultado de la divisin es, div(dato1,dato2); 33 Fin _ si 34 Si (op=4) 35 Escriba (Entre el primer numero); 36 Lea (dato1); 37 Escriba (Entre el segundo nmero); 38 Lea (dato2); 39 Escriba (El resultado de la multiplicacin es, mult (dato1, dato2); 40 Fin _ si 41 Fin _ mientras 42 Fin 43 Entero funcin Suma (entero: dato1, dato2) 44 Var 45 Respuesta: entero; 46 Inicio 47 Respuesta= (dato1+dato2); 48 Devolver (respuesta); 49 Fin. 50 Entero funcin resta (entero: dato1, dato2) 51 Var 52 Respuesta: entero; 53 Inicio 54 Respuesta= (dato1-dato2); 55 Devolver (respuesta); Se crea la funcin suma, esta es de tipo entero por que devuelve, un valor entero; recibe 2 datos, tambin de tipo entero que son los que se envan del programa principal, estos pueden tener o no el mismo nombre
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 301303 ALGORITMO 56 Fin. 57 Entero funcin div (entero: dato1, dato2) 58 Var 59 Respuesta: entero; 60 Inicio 61 Respuesta= (dato1 div dato2); 62 Devolver (respuesta); 63 Fin. 64 Entero funcin Mult (entero: dato1, dato2) 65 Var 66 Respuesta: entero; 67 Inicio 68 Respuesta= (dato1 * dato2); 69 Devolver (respuesta); 70 Fin. Notas finales 1.-Nota importante: hay dos tipos de paso de parmetros entre el programa y las funciones o entre las funciones: por parmetro o por valor 2.-Nota: en muchos lenguajes de programacin existen funciones y procedimientos, invitamos a los estudiantes a que profundicen ms en estos conceptos, mediante consulta en biblioteca o en sitios web