La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

08/4/2002 Sesión 8 Subprogramas Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.

Presentaciones similares


Presentación del tema: "08/4/2002 Sesión 8 Subprogramas Prof:Eridan Otto Programación de Computadores Lenguaje Pascal."— Transcripción de la presentación:

1 08/4/2002 Sesión 8 Subprogramas Prof:Eridan Otto Programación de Computadores Lenguaje Pascal

2 Sesión 8: Subprogramas Programación de Computadores Lenguaje Pascal TEMARIO Subprogramas PROCEDURE FUNCTION Corrección primer certamen

3 Introducción : Hasta ahora se ha visto una serie de instrucciones que combinadas logran un resultado. Cuando aumenta la complejidad de los problemas es recomendable dividir el problema en problemas más pequeños y manejables. Resolviendo por separado cada uno de ellos. Luego ensamblarlos para obtener el resultado en un programa principal simple. Este es el llamado enfoque TOP-DOWN de diseño de programas. Ventajas: Mejor legibilidad del programa Aislar los errores Reutilizar partes del programa. Sesión 8: Subprogramas:Diseño y estructura de Programas Programación de Computadores Lenguaje Pascal Problema SubProblema 1 SubProblema 2 SubProblema n

4 Introducción : Habrá una correspondencia entre problema --- > Programa sub- problema --- > Sub Programa Sesión 8: Subprogramas:Diseño y estructura de Programas Programación de Computadores Lenguaje Pascal Ejemplo : Diseñar un programa pascal que calcule la suma de los n primeros términos de una sucesión geométrica de razón r y primer término a.: Suma = S ar, sabemos que se puede usar la fórmula Suma=a*(1-r ) El problema se puede subdividir en (1) Lectura de datos (2) Cálculo de la expresión (3) Salida de resultados A su vez, el cálculo de la expresión matemática no es inmediato puesto que, es necesario calcular r, donde r es real y n es entero, descomponiendo el sub problema (2) en: (2) Cálculo de la expresión (2.1) Obtener r (2.2) Realizar operaciones aritméticas. i i=0 n-1 1-r n n n

5 Sesión 8: Subprogramas:PROCEDURE Programación de Computadores Lenguaje Pascal Definición : En pascal se pueden crear sub programas con la definición de procedimientos, que son parte de la zona de declaración de un programa. Sintaxis: es similar a la de un programa PASCAL, pero se usa la palabra reservada PROCEDURE, para indicar que se trata de un subprograma parcial que es parte de un programa global: PROCEDURE ( ); BEGIN END; : se utilizan para comunicar valores de datos al procedimiento, desde el bloque donde ha sido llamado. Por el momento no será detallado.Puede ir vacío. : tiene los mismos elementos que un programa pascal cualquiera, la diferencia es que las variables definidas en esta zona son llamadas LOCALES, y no se pueden usar fuera del procedimiento. : sentencias que constituyen el algoritmo que realizará el procedimiento, y en el se pueden usar datos definidos en la Zona de declaraciones LOCALES, del programa principal, GLOBALES, o parámetros.

6 Sesión 8: Subprogramas:PROCEDURE Programación de Computadores Lenguaje Pascal Para el ejemplo : Aún sin definir el código para cada procedimiento, se puede definir el programa GLOBAL: PROGRAM SumaProgresión; VAR n :INTEGER; r,a,suma :REAL; {se deben definir los procedimientos y las funciones} BEGIN Leerdatos; CalcularExpresion; DesplegarResultados; END. {programa}

7 Sesión 8: Subprogramas:PROCEDURE Programación de Computadores Lenguaje Pascal Para el ejemplo : Primer procedimiento PROCEDURE Leerdatos; BEGIN WRITE (Ingrese valor inicial de la Serie:); READLN(a); REPEAT WRITE (Ingrese número de términos); READLN(n); UNTIL n > 0; WRITE (Ingrese razón de la Serie:); READLN(r); END; Segundo procedimiento PROCEDURE CalcularExpresion; VAR i: INTEGER; {variable local} potencia :REAL; BEGIN potencia := 1; FOR i :=1 TO n DO {n variable global} potencia := potencia * r; suma := a*(1-potencia)/(1-r); END;

8 Sesión 8: Subprogramas:PROCEDURE Programación de Computadores Lenguaje Pascal Para el ejemplo : Tercer procedimiento PROCEDURE DesplegarResultados; BEGIN WRITELN (Resultado de la Serie:,suma); END;

9 Sesión 8: Subprogramas:PROCEDURE Programación de Computadores Lenguaje Pascal Para el ejemplo : Integrando, el programa queda PROGRAM SumaProgresión; VAR n :INTEGER; r,a,suma:REAL; PROCEDURE Leerdatos; BEGIN WRITE (Ingrese valor inicial de la Serie:); READLN(a); REPEAT WRITE (Ingrese número de términos); READLN(n); UNTIL n > 0; WRITE (Ingrese razón de la Serie:); READLN(r); END; PROCEDURE CalcularExpresion; VAR i: INTEGER; {variable local} potencia :REAL; BEGIN potencia := 1; FOR i :=1 TO n DO {n variable global} potencia := potencia * r; suma := a*(1-potencia)/(1-r); END; PROCEDURE DesplegarResultados; BEGIN WRITELN (Resultado de la Serie:,suma); END; BEGIN LeerDatos; CalcularExpresion; DesplegarResultados; END.

10 Sesión 8: Subprogramas:FUNCTION Programación de Computadores Lenguaje Pascal Definición : En pascal, así como ORD(), es una función, el programador puede crearse sus propias funciones. Tienen estructura parecida a la de un procedimiento, la diferencia es que se devuelve un valor, por lo que la función puede ser usada en una expresión. Sintaxis: FUNCTION ( ): ; BEGIN END; :,..., : Pueden ir varias series de identificadores con un tipo de dato, luego punto y coma y otra serie para un tipo de dato diferente. : igual que procedimiento. : igual que procedimiento. La diferencia es que la función debe devolver el valor (terminando su ejecución) con la instrucción: := ;

11 Sesión 8: Subprogramas:Funciones Programación de Computadores Lenguaje Pascal Ejemplo : Siguiendo con el problema anterior, sería útil contar con una función que calculara la potencia de cualquier número y luego utilizarla cambiando el procedimiento CalcularExpresion. FUNCTION poten(base: REAL;exponente: INTEGER):REAL; VAR i: INTEGER; potencia :REAL; BEGIN IF exponente = 0 THEN poten:=1 { en este caso la función termina y devuelve 1} ELSE IF exponente <1 THEN BEGIN base := 1/ base; exponente:=-1*exponente END; potencia := 1; FOR i :=1 TO exponente DO potencia := potencia * base; poten := potencia ; (*se devuelve el valorde la función*) END; Parámetros, por valor

12 Sesión 8: Subprogramas:Funciones Programación de Computadores Lenguaje Pascal Ejemplo : Finalmente teniendo esta función el procedimiento queda: PROCEDURE CalcularExpresion; VAR BEGIN suma := a*(1-poten(r,n))/(1-r); END; Parámetros El programa final, tendría tres procedimientos y una función.

13 Fin Clase 8


Descargar ppt "08/4/2002 Sesión 8 Subprogramas Prof:Eridan Otto Programación de Computadores Lenguaje Pascal."

Presentaciones similares


Anuncios Google