Introduccin a la Programacin Tema 4 La abstraccin
Introducción a la Programación Tema 4: La abstracción procedimental Profesor: Federico Peinado Elaboración del material: - Mercedes Gómez - Pablo Moreno - Manuel Ortega - Carlos Cervigón - Javier Arroyo - Federico Peinado Ingeniería Técnica en Informática de Gestión Departamento de Ingeniería del Software e Inteligencia Artificial Curso 2009 -2010
Descomponer un problema q Problema: Dibujar esta figura Tema 4 1. Dibujar el círculo 2. Dibujar el triángulo 1. Dibujar las dos líneas secantes 2. Dibujar la línea horizontal 3. Dibujar las otras dos líneas secantes Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas Dibujar figura Dibujar círculo Dibujar triángulo Dibujar líneas secantes Dibujar línea horizontal * En realidad son el mismo “subproblema” Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 1
Descomponer un problema de programación Tema 4 Introducción: Subprogramas Procedimientos H Funciones O Alcance y visibilidad Desarrollo con subprogramas L A Y O Introducción a la Programación Ingeniería Técnica en Informática de Gestión * * * … q Problema: Imprimir este mensaje horizontal en la pantalla (formando cada letra con asteriscos) 1. Imprimir HOLA 1. Imprimir H 2. Imprimir O 3. Imprimir L 4. Imprimir A 2. Imprimir dos líneas en blanco 3. Imprimir YO 1. Imprimir Y 2. Imprimir O 4. 2
Descomponer un problema de programación Imprimir mensaje Imprimir HOLA Imprimir H Imprimir O Líneas en blanco Imprimir A Imprimir YO Imprimir Y Imprimir O Imprimir L * Mismo subproblema de programación (= mismo código) 4. 3
Los subprogramas Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Subprogramas: bloques de código que llevan a cabo una tarea concreta (= resuelven un subproblema concreto) q Tienen un propósito q Tienen unas precondiciones q Permiten reutilizar código de manera sencilla y segura q Pueden ser usados más de una vez en el programa principal sin necesidad de reescribir todo (o copiar-pegar) q Ayudan a que el código del programa principal sea q Legible: Resulta más sencillo leer sólo el nombre del subprograma que todo su código q Ordenado: Cada subprograma ocupa un lugar concreto dentro de todo el código Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 4
Ejemplos de subprogramas Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad q Ejemplo: Podemos pensar en subprogramas para… q q q Imprimir una letra con asteriscos en la consola Mostrar un menú de opciones Pedirle datos al usuario Calcular el máximo de 3 números … Desarrollo con subprogramas q De hecho, ya conocemos (y hemos utilizado) algunos subprogramas que no hemos implementado nosotros q q q Para leer del teclado: readln, read, … Para escribir por pantalla: write, writeln, … Para operar con números: sqr, sqrt, ln, exp, abs… Para limpiar la consola: clrscr … Introducción a la Programación Ingeniería Técnica en Informática de Gestión
Datos en un subprograma Tema 4 Introducción: Subprogramas Procedimientos q Dos tipos de datos q Datos locales q Variables y constantes declaradas y usadas dentro del subprograma Funciones Alcance y visibilidad q Datos intercambiados con el exterior (= parámetros) q Datos de entrada (aceptados por el subprograma) Desarrollo con subprogramas q Datos de salida (devueltos por el subprograma) q Datos de entrada/salida (aceptados y devueltos, posiblemente modificados por el subprograma) Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 6
Datos en un subprograma Tema 4 Introducción: Subprogramas Programa Procedimientos Funciones Subprograma Alcance y visibilidad Desarrollo con subprogramas Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 7
Ejemplos Tema 4 Introducción: Subprogramas q Ejemplo q Subprograma que, dado un número, lo muestra por pantalla numero Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Subprograma que, dado un carácter, devuelve su código ASCII caracter codigo q Subprograma que, dado un número, lo devuelve multiplicado por sí mismo numero x Introducción a la Programación Ingeniería Técnica en Informática de Gestión x 2 4. 8
Procedimientos en Pascal Tema 4 Introducción: Subprogramas Procedimientos Funciones q Hay que distinguir entre la declaración y la invocación de procedimientos. q La declaración sirve para definir el procedimiento q La invocación se utiliza para usar el procedimiento dentro del programa principal (o de otro procedimiento). Alcance y visibilidad Desarrollo con subprogramas Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 9
Ejemplo de un procedimiento en Pascal Tema 4 Introducción: Subprogramas q Ejemplo: Subprograma que, dado un número, calcula y devuelve el número correspondiente a su cuadrado q Declaración Procedimientos Funciones Alcance y visibilidad {Calcula el cuadrado de un número} procedure calc. Cuadrado (num: integer; var cuadrado: integer); begin cuadrado: = num * num; end; Desarrollo con subprogramas q Invocación var numero, resultado: integer; begin readln(numero); calc. Cuadrado(numero, resultado); writeln(‘El cuadrado es ’, resultado); end. Introducción a la Programación Ingeniería Técnica en Informática de Gestión
Ejemplo de un programa con procedimientos program figuras ; Tema 4 Introducción: Subprogramas procedure Dibuja. Circulo ; begin {Dibuja. Circulo} Writeln (‘ Procedimientos ’); * Writeln (‘* *’); Writeln (‘ * *’); end; {Dibuja. Circulo} Funciones procedure Dibujalineas ; begin {Dibujalineas} Alcance y visibilidad Desarrollo con subprogramas Writeln (‘ / ’); Writeln (‘ / ’); Writeln (‘/ ’); end; {Dibujalíneas} procedure Dibujabase ; begin {Dibujabase} Writeln (‘----‘); end; {Dibujabase} begin {Programa principal} Dibuja. Circulo; Dibujalineas; Dibujabase; Dibujalineas; end. Introducción a la Programación Ingeniería Técnica en Informática de Gestión
Declaración de procedimientos en Pascal 4. 12
Declaración de procedimientos en Pascal Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Para controlar el intercambio de información de un subprograma con el exterior se usan los parámetros q Tipos de parámetros q Parámetros por valor Datos solo de entrada q Parámetros por referencia (o por variable) Datos de salida o de entrada/salida q Normalmente serán modificados dentro del procedimiento Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 13
Declaración de procedimientos en Pascal q Ejemplos : Tema 4 Introducción: Subprogramas Procedimientos Funciones procedure escribe. H; procedure prueba 1 (var num: integer); Alcance y visibilidad Desarrollo con subprogramas procedure prueba 2 (num 1: integer; var num 2: integer); procedure prueba 3 (p 2, p 5, Aunque el orden no es relevante, mejor acostumbrarse a poner los var parámetros de entrada/salida siempre var al principio o al final de la lista Introducción a la Programación Ingeniería Técnica en Informática de Gestión p 3: p 6: p 1: p 4: real; boolean; char; integer); 4. 14
Invocación de procedimientos Tema 4 q Llamada (o invocación) a procedimientos Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas Para aquellos parámetros del procedimiento que son por variable, el argumento sólo puede ser una variable Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 15
Invocación de procedimientos Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q En la invocación de un procedimiento debe existir una correspondencia entre los argumentos usados en al invocación y los parámetros definidos en la declaración q La invocación debe tener tantos argumentos como parámetros tiene la declaración q ¡Y en el mismo orden! q A un parámetro por valor le puede corresponder un argumento en forma de constante, variable o expresión q Debe haber compatibilidad en la asignación q A un parámetro por variable le puede corresponder únicamente un argumento en forma de variable del mismo tipo q La llamada a un procedimiento es una sentencia q NOTA: Observar la diferencia en este punto con las funciones que veremos más adelante Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 16
Invocación de procedimientos Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Ejemplos var ch 1: char; num. Real: real; num. Entero: integer; incognita: boolean; escribe. H; prueba 1 (num); prueba 1 (num. Entero); Exp l PI icación en ZA RR A ¿Qué llamadas son correctas? prueba 2 (5, num. Entero); prueba 3 (ch 1, num. Real, num. Entero, incognita, false); prueba 3 (‘a’, num. Real, 3 * num. Real, num. Entero, incognita, false); prueba 3 (ch 1, num. Real, 3 * num. Real, num. Entero, incognita, true); Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 17
Parámetros: ejemplo Tema 4 Introducción: Subprogramas Procedimientos program paso; var X, Y : Real ; sum, med : Real; procedure Sumay. Media (num 1, num 2 : Real; Var Suma, media : Real); Funciones Alcance y visibilidad Desarrollo con subprogramas begin { Sumay. Media } suma : = num 1 + num 2 ; media : = suma / 2. 0 end; { Sumay. Media } begin X : =8 ; Y : =10 ; . . . Sumay. Media(X, Y, sum, med); writeln(sum); writeln(med); end. Introducción a la Programación Ingeniería Técnica en Informática de Gestión
Traza Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Prog. principal Procedimiento suma. YMedia(X, Y, sum, med) 8. 0 X 8. 0 num 1 10. 0 Y 10. 0 num 2 ? ? sum med antes suma media Desarrollo con subprogramas 8. 0 X 8. 0 num 1 10. 0 Y 10. 0 num 2 18. 0 suma med 9. 0 después media El programa usa correctamente los parámetros de entrada y salida Introducción a la Programación Ingeniería Técnica en Informática de Gestión
Parámetros por valor program paso; Tema 4 Introducción: Subprogramas Procedimientos Funciones var A : integer; procedure incrementa (X: integer); begin Prog. principal X: =X+1; Alcance y visibilidad end; antes Desarrollo con subprogramas A 5 Procedimiento 5 X Por valor begin A: =5; incrementa(A); writeln(A); end. después A 5 6 X ¡Aunque el valor de la X cambia, la A no se ve afectada! Introducción a la Programación Ingeniería Técnica en Informática de Gestión Luego en este caso el procedimiento incrementa es en realidad inutil porque no tiene ningún efecto
Parámetros por referencia o variable program paso; Tema 4 Introducción: Subprogramas Procedimientos Funciones En la invocación incrementa(A) se asocia la variable A del programa principal con el parámetro X de la declaración del procedimiento incrementa var A : integer; procedure incrementa (var X: integer); begin X: =X+1; Alcance y visibilidad Prog. principal Procedimiento end; A Desarrollo con subprogramas begin 5 X antes Por variable A: =5; incrementa(A); writeln(A); end. Introducción a la Programación Ingeniería Técnica en Informática de Gestión después A 6 X Como el paso de parámetros es por variable, al incrementarse la X se está incrementando en realidad la A declarada en el programa principal.
No se debe acceder a variables globales (I) {Mostrar un número varias veces} program muestra. Repetida; var num, veces: integer; procedure mostrar; var cont: integer; begin for cont: = 1 to veces do writeln(num) end; begin write(‘Introduzca el número: ‘); readln(num); write(‘Introduzca las veces: ‘); readln(veces); mostrar end. Este programa funciona, pero… El procedure mostrar está accediendo a las variables veces y num que están definidas en el programa principal A eso se le llama acceder a una variable global 4. 22
No se debe acceder a variables globales (II) {Mostrar un número varias veces} program muestra. Repetida; var num, veces: integer; procedure mostrar; var cont: integer; begin for cont: = 1 to veces do writeln(num) end; begin write(‘Introduzca el número: ‘); readln(num); write(‘Introduzca las veces: ‘); readln(veces); mostrar end. Uso de VARIABLE GLOBAL!!! Un procedimiento sólo debe acceder a sus parámetros y a las variables que tiene definidas localmente en su zona de declaraciones. La idea es que el procedimiento encapsule los datos que necesita utilizar y, por tanto, NO debe acceder a variables de otros procedimientos o del programa principal 4. 23
No se debe acceder a variables globales (y III) {Mostrar un número varias veces} program muestra. Repetida; var num, veces: integer; procedure mostrar (n, v: integer); var cont: integer; begin write(‘Introduzca el número: ‘); readln(num); write(‘Introduzca las veces: ‘); readln(veces); mostrar(num, veces) end. begin for cont: = 1 to v do writeln(n) end; En este caso, mostrar solo utiliza sus parámetros n y v y a su variable local cont, lo cual es correcto 4. 24
Ejercicios Tema 4 Introducción: Subprogramas Procedimientos Funciones q Subprograma que intercambia dos valores reales dados q Subprograma que, dado un número entero positivo N, calcula y devuelve la suma y la media de los N primeros enteros positivos q Subprograma que calcula el factorial de un número entero N Alcance y visibilidad Desarrollo con subprogramas Exp lica PI ción en ZA RR A Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 25
Funciones Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Son un tipo especial de subprogramas que se pueden emplear dentro de expresiones q La declaración se realiza en el mismo sitio que las de los procedimientos q Su invocación puede realizarse en cualquier punto donde se pueda utilizar un literal q Es decir, pueden emplearse dentro de expresiones o en la parte derecha de una asignación q Cada llamada a una función se comporta como su valor resultante q Y no como una sentencia normal de Pascal (como pasaba con los procedimientos) Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 26
Funciones q ¿Cuándo usar funciones? Tema 4 Introducción: Subprogramas Procedimientos q Si se necesita un subprograma que calcule y devuelva un único valor q Se pueden usar de manera similar a un literal q Dentro de expresiones (siendo el valor devuelto por la expresión compatible) q En la parte derecha de una sentencia de asignación q Como argumento de procedimientos u otras funciones Funciones Alcance y visibilidad Desarrollo con subprogramas q Es recomendable que el subprograma no tenga interacción con el usuario mediante sentencias de entrada o de salida q Algunas cosas a tener en cuenta q Sólo utilizarán parámetros de entrada (de paso por valor) q Un solo parámetro de salida de tipo simple o string q NO se define en la lista de parámetros q Tiene como nombre el mismo nombre de la función Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 27
Sintaxis de las funciones en Pascal Tipo de la función 4. 28
Sintaxis de las funciones en Pascal q Llamada (o invocación) a funciones n n Tantos argumentos como parámetros Cada uno de los argumentos se corresponde con el parámetro situado en la misma posición que él 4. 29
Ejemplo de una función en Pascal Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad q Ejemplo: función que, dado un carácter, devuelve un valor booleano indicando si se trata de un dígito o no function es. Digito (ch: char): boolean; begin es. Digito: = (ch >= ‘ 0’) and (ch <= ‘ 9’) end; Desarrollo con subprogramas Código para devolución del valor de la función: identificador. Funcion: = valor Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 30
Ejemplo Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas {Comprobar si un carácter es un dígito o no} program prueba; var mi_char: char; function es. Digito (ch: char): boolean; begin es. Digito: = (ch >= ‘ 0’) and (ch <= ‘ 9’) end; begin (* p. p. *) writeln(‘Introduzca un carácter: ‘); readln(mi_char); En este punto se ejecuta if es. Digito(mi_char) then la función es. Digito y se le writeln(‘Es un dígito’) pasa el valor de mi_char. else writeln(‘No es un dígito’) Al final, es. Digito(mi_char) será un valor booleano, que end. (* p. p. *) es compatible con lo que espera la instrucción IF en ese punto Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 31
Otro ejemplo Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas {Mostrar los días del mes} program dias. Del. Mes; var mes: integer; function dias. Mes (m: integer): integer; begin case m of 1, 3, 5, 7, 8, 10, 12: dias. Mes: = 31; 4, 6, 9, 11: dias. Mes: = 30; 2: dias. Mes: = 28 end; begin (* p. p. *) write(‘Introduzca el mes: ’); readln(mes); if (mes >= 1) and (mes <= 12) then writeln(‘Días: ’, dias. Mes(mes)) end. (* p. p. *) Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 32
Usando bien la variable de salida Tema 4 Introducción: Subprogramas function producto (X, Y : integer) : integer; {Calcula X * Y mediante sumas} Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas var I, prod : integer ; begin prod: =0; Si se van a realizar cálculos intermedios, es recomendable trabajar primero sobre una variable local for I: =1 to X do prod : = prod + Y; {sumamos Y X veces} producto : = prod; end; Al final se realiza la asignación de la variable local a la variable de salida (que tiene como identificador del nombre de la función) Introducción a la Programación Ingeniería Técnica en Informática de Gestión
Procedimientos anidados Tema 4 Introducción: Subprogramas q Dentro de los subprogramas se pueden definir otros subprogramas Imprimir mensaje Procedimientos Funciones Imprimir HOLA Líneas en blanco Imprimir YO Alcance y visibilidad Desarrollo con subprogramas Imprimir H Imprimir O Imprimir A Imprimir Y Imprimir O Imprimir L q En Pascal, un procedimiento puede llamar a cualquier otro procedimiento que esté declarado previamente q Pero no puede llamar a procedimientos declarados posteriormente (es decir, más abajo en el código) Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 34
Visibilidad de Procedimientos program mi. Programa; var x, y: real; procedure externo (var x: real); var m, n: integer; procedure interno (x: real); var n, p: integer; begin (* interno *). . . end; (* interno *) procedure otro; const blanco = ‘ ‘; begin (* otro *). . . end; (* otro *) begin (* p. p. *). . . end. (* p. p. *) begin (* externo *). . . end; (* externo *) 4. 35
Alcance y visibilidad de variables y constantes Tema 4 Introducción: Subprogramas Procedimientos q Tipos de identificadores q Locales a bloque Declarados en el bloque q No locales a bloque Declarados en un nivel de anidamiento superior al del bloque Funciones Alcance y visibilidad Desarrollo con subprogramas q Regla de alcance q El alcance de un identificador son las sentencias posteriores del bloque en el que se declara y las de los bloques anidados posteriores a su declaración q Regla de visibilidad q Si dos identificadores con igual nombre tienen alcance en una determinada zona del programa, en dicha zona sólo es visible el de menor alcance q La visibilidad de un identificador incluye todas las sentencias posteriores del bloque en el que se declara y las de los bloques anidados posteriores a su declaración en los que el identificador no se redeclara Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 36
Ejercicio program mi. Programa; var x, y: real; procedure externo (var x: real); var m, n: integer; procedure interno (x: real); var n, p: integer; begin (* interno *). . . end; (* interno *) begin (* externo *). . . end; (* externo *) begin (* p. p. *). . . end. (* p. p. *) Exp l PI icación en ZA RR A m? n? p? x? y? 4. 37
Estilo de programación Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Los subprogramas deben documentarse igual que debe hacerse con el resto del programa: q Documentación de programas q Objetivo q Entrada/salida (interacción con el usuario) q Puede incluir también otra información relevante, tal como algoritmos que implementa, fecha de creación, fecha de la última modificación, nombre del/de los programador(es), etc. q Documentación de subprogramas q Objetivo q Entrada/salida (interacción con el usuario) q Datos aceptados, devueltos y aceptado y devueltos posiblemente modificados Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 38
Estilo de programación Tema 4 Introducción: Subprogramas Procedimientos Funciones function dias. Mes (m: integer): integer; {------Objetivo: Obtiene el número de días de un mes Acepta: El número entero que representa al mes (m); m [1, 12] Devuelve: El número de días del mes -------} begin. . . end; Alcance y visibilidad Desarrollo con subprogramas procedure mostrar (n, v: integer); {------Objetivo: Visualiza un número entero un cierto número de veces Acepta: El número entero a mostrar (n) y el número de veces que se muestra (v) Salida (pantalla): Tantas líneas como veces se quiere mostrar el número; cada línea contiene el número -------} var. . . begin. . . end; Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 39
Diseño descendente Tema 4 Introducción: Subprogramas q Tratamiento de los problemas mediante refinamientos sucesivos (descomposición del problema en subproblemas cada vez más pequeños) Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Ejemplo: Diseñar y escribir un programa que haga operaciones de conversión de cantidades hasta que el usuario decida que no quiere hacer más transformaciones q q Centímetros a pulgadas (e inversa) Kilogramos a libras (e inversa) Euros a pesetas (e inversa) Grados centígrados a grados Fahrenheit (e inversa) Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 40
Primer diseño Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad q Programa principal q Repetir q Elegir opción q Ejecutar opción elegida q Mostrar resultado q Hasta que la opción elegida se distinta de cero Desarrollo con subprogramas Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 41
Primer refinamiento Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Subprograma elegir_opcion q Repetir q Mostrar menú con las opciones q Leer la opción elegida q Hasta que la opción sea válida q Subprograma ejecutar_opcion q Si el valor de la opcion es: q 1 traducir_cms_pulgadas q 2 traducir_kgs_libras q 3 traducir_euros_pts q 4 traducir_cent_fahr q 0 No hacer nada q Programa principal q Repetir q Elegir opción q Ejecutar opción elegida q Mostrar resultado q Hasta que la opción elegida se distinta de cero Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 42
Segundo refinamiento Tema 4 Introducción: Subprogramas q Subprograma mostrar_menu q Escribir la estructura del menú con writeln Procedimientos q Subprograma elegir_opcion Funciones Alcance y visibilidad Desarrollo con subprogramas q Repetir q Mostrar menú con las opciones q Leer la opción elegida con readln q Hasta que la opción sea válida Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 43
Segundo refinamiento (cont) Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad q Subprograma traducir_cms_pulgadas q Pedir tipo de conversión (cms->pulgadas, pulgadas->cms) q Pedir la cantidad original q Si cms->pulgadas q Calcular_pulgadas q Si no q Calcular_cms Desarrollo con subprogramas q Subprograma ejecutar_opcion q Si el valor de la opcion es: q 1 traducir_cms_pulgadas q 2 traducir_kgs_libras q 3 traducir_euros_pts q 4 traducir_cent_fahr q 0 No hacer nada Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 44
Tercer refinamiento Tema 4 Introducción: Subprogramas Procedimientos Funciones Alcance y visibilidad Desarrollo con subprogramas q Subprograma pedir_tipo_conversion_cms_pulgadas q… q Función calcular_pulgadas(cent: real) : real; q… q Función calcular_cms(pulgadas: real) : real; q… q Subprograma traducir_cms_pulgadas q Pedir tipo de conversión (cms->pulgadas, pulgadas->cms) q Pedir la cantidad original con readln q Si cms->pulgadas q Calcular_pulgadas q Si no q Calcular_cms Introducción a la Programación Ingeniería Técnica en Informática de Gestión 4. 45
- Slides: 46