Subprogramas

Solo disponible en BuenasTareas
  • Páginas : 35 (8513 palabras )
  • Descarga(s) : 0
  • Publicado : 4 de marzo de 2012
Leer documento completo
Vista previa del texto
5. Subprogramas(subalgoritmos ):procedimientos y funciones
En este capitulo se describen las funciones y procedimientos, con los conceptos de variables locales y globales. Se introduce el concepto de recursividad como una nueva herramienta para resolver problemas.

5.1 Introducción a los subalgoritmos o subprogramas
Soluciona problemas complejos al dividirlos en subprogramas y luegodividirlos estos en otros mas simples, hasta que estos sean mas fáciles de resolver. Esta técnica se llama “divide y vencerás” . El problema principal denominado controlador o conductor (drive) y la solución de los subproblemas conocidos como procedimientos (subrutinas) o funciones.

Problema Principal

Algoritmo Principal

Subproble ma 1

Subproble ma 2

Subproble ma 3

Subalgorit mo 1Subalgorit mo 2

Subalgorit mo 3

Se dice que el programa principal invoca al subprograma, el subprograma ejecuta la tarea y luego devuelve el control al programa.

Programa

Llamada 1 Retorno 1 Llamada 2 Retorno 2

Subprograma

Algoritmo

Subalgoritmo

Un programa puede llamar a su ves a sus propios subprogramas .

Programa

subprograma 1

subprograma1.1

Subprograma 2

5.2Funciones:
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.

5.2.1 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 deacciones 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. La declaración de la función será :

función (lista de parámetro [declaración locales] inicio //cuerpo de la función devolver () fin_funcion

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

5.2.2 Invocación delas funciones.
Una función puede ser llamada de la siguiente forma:

Nombre_funcion(lista de parámetros actuales)

Nombre_funcion: función que llama Lista de parámetros actuales: constantes variables , expresiones. Cada vez que se llama a una función desde el algoritmo principal se establece una correspondencia entre los parámetros formales y los parámetros actuales . Una llamada a lafunción implica los siguientes pasos: 1._A cada parámetro formal se le asigna el valor real de su correspondiente parámetro actual . 2._Se ejecuta el cuero de acciones de la función . 3._Se devuelve el valor de la función y se retorna al punto de llamada.

Ejemplo:

Función potencia para el calculo de N elevada a A .El numero N deberá ser positivo aunque podrá tener parte fraccionaria , A es un real. Algoritmo elevar_a_potencia Var Real:a.n Inicio Escribir(N elevado a =potencia(n.a)) Fin Real función potencia (E real :n,a) Inicio Devolver(exp(a*1n(n)) Fin_funcion.

Ejemplo 2
Algoritmo que contiene y utiliza unas funciones(sen y cos) a las que les podemos pasar el Angulo en grados. Algoritmo sen_cos_en_grados Ver real :g Inicio Escribir(deme ángulo en grados) Leer (g) Escribir(sen(g))Escribir(cos(g)) Fin Real función coseno(E real:g) Inicio Devolver(cos(g*2*3.141592/360)) Fin_funcion Real_funcion seno(real:g) Inicio Devolver(sen(g*2*3.141592/360)) Fin_funcion La salida del algoritmo sería: 2 al cubo es 8 3 al cubo es 27 Las funciones pueden tener muchos argumentos, pero solamente un resultado: el valor de la función. Esto limita su uso, aunque se encuentran con frecuencia encálculos científicos. Un concepto más potente es el proporcionado por el subprograma procedimiento que se examina en el siguiente apartado.

Ejercicio 5.5 Algoritmo que contiene y utiliza unas funciones (seno y coseno) a las que les podemos pasar el ángulo en grados. algoritmo Sen_cos_en_grados var real : g inicio escribir(´Deme angulo en grados´) leer(g) escribir(seno(g)) escribir(coseno(g)) fin...
tracking img