logica subprogramas
TRANSCRIPT
Subprogramas
Grupo 248Docente: Ma. Eugenia Morales M.
Institución Universitaria de EnvigadoFacultad de Ingenierías
Programación Modular
Subprogramas
Ámbitos
Parámetros
Procedimientos o subrutinas y activación de un procedimiento
Funciones y activación de una función
Programación Modular
Método flexible para mejorar la productividad de los programas.
En esta los programas se dividen en módulos independientes que ejecutan las diferentes tareas del programa, cada módulo se codifica y procesa en forma independiente
Programa
Subprograma 1
Subprograma 2
Subprograma 3
Se divide en:
Representación de subprogramas
Un programa modular se compone de un programa principal y subprogramas. El programa principal debe contener operaciones fundamentales y las llamadas a los subprogramas, este modulo principal controla todo lo que sucede, y transfiere el control a los diferentes módulos o subprogramas.
Cada modulo es independiente de los otros en el sentido que ninguno puede acceder directamente a otro.
Un subprograma recibe datos de un programa y le devuelve resultados (el programa “llama” o “invoca” al subprograma, este ejecuta una tarea especifica y devuelve el “control” al programa que lo llamo).
Programa Principal
Subprograma
Invoca
Retorna el
control
Realiza procesos
Programación Modular
Subprogramas
Un problema complejo se puede dividir en pequeños subproblemas más sencillos: “Divide y Vencerás”. Estos subproblemas se conocen como “Módulos” y su complementación en un lenguaje se llama subprograma (procedimientos y funciones).
Un subprograma realiza las mismas acciones que un programa, sin embargo, un subprograma lo utiliza solamente un programa para un propósito especifico.
La mayoría de los lenguajes de programación permiten la programación modular y según el lenguaje reciben diferentes nombres: funciones, módulos, subrutinas, procedimientos.
La comunicación entre los módulos se realiza por medio de parámetros que contendrán los datos que se desean pasar al módulo llamado.
La utilización de los subprogramas consta de tres etapas:
◦Declaración: Proceso en el cual se especifica nombre del subprograma y los parámetros que contendrá.
◦Invocación o llamada: es proceso en el cual se utiliza el subprograma dentro del programa.
◦Definición: Proceso en el cual se escribe el programa
Subprogramas
Declaración de los subprogramas a utilizar incluyendo la lista de parámetros. Esto sirve para indicar al compilador los tipos de retorno y los de los parámetros de una función, de modo que compruebe si son del tipo correcto cada vez que se use esta función dentro del programa. No requiere los identificadores de los parámetros, basta con el tipo de identificador, p.e. int Mayor (int, int);
Programa Principal dónde se invocan o llaman los subprogramas declarados, incluyendo los valores o variables para los parámetros, p.e. Llamar Mayor (a, b);
Definición de cada subprograma declarado e invocado, incluye todo el proceso del subprograma, aquí se escriben completos los tipos e identificadores, así:Int Mayor (int a, int b)
Inicio
Proceso;
Fin
Estructura de un programa con Subprogramas
Programa principal◦Inicio
<acciones> llamar a subprograma
1 <acciones> llamar a
subprograma2 <acciones>
◦Fin programa_ppal
Subprograma 1 ◦Inicio
<acciones> ◦Fin y Retorna a
principalSubprograma2
◦Inicio <acciones>
◦Fin y Retorna principal
Ejemplo de un programa dividido en Subprogramas…
El ámbito de un identificador es la parte del programa donde se conoce al identificador, por ejemplo: En qué ámbitos son reconocidos:◦ Jaime Molina
◦ Jonier Rendón
◦ La coordinadora del programa
◦ Ma. Eugenia Morales M.
◦ Héctor Londoño
◦ Sergio Fajardo
◦ Juan Manuel Santos
◦ Barack Obama
◦ Shakira
◦ Sammy la mascota
Los ámbitos pueden ser:
◦Globales: es un identificador
declarado para el programa principal, del cual dependen todos los subprogramas. Es reconocido en cualquier parte del programa.
◦Locales: Es un identificador
declarado y definido dentro de un subprograma, por lo tanto sólo es reconocida dentro de ese subprograma.
◦Bloque: es un identificador
que se declara antes de un conjunto de instrucciones y sólo tiene significado a partir de su declaración y dentro del subprograma dónde ha sido declarado.
Ámbitos de Identificadores
Son subprogramas que toman uno o mas valores (argumentos) y devuelven un resultado (valor de la función para los argumentos dados). Por ejemplo: F(X) = X / (1+X2), donde:
◦ F : Nombre de la función
◦ X: Es el argumento (también conocido como parámetro formal)
Nota: las funciones pueden tener muchos argumentos, pero solamente un resultado: el valor de la función. Los nombres de función van asociados al proceso que realiza.
Definición de funciones: Tipo_retorno nombre_funcion (p1, p2,
…, pn)◦ Inicio
Bloque de instrucciones◦ Fin
Donde: ◦ Tipo retorno: Es el tipo de dato
que devolverá la función como resultado, por ejemplo, en C++ si no devuelve resultado se especifica con la palabra reservada void.
◦ Nombre función: Es el identificador con el cual se reconoce a la función en el cuerpo del programa.
◦ P1,p2,…,pn: Es el grupo de parámetros que define a la función, no se pasan parámetros se pasan los paréntesis vacíos ().
Funciones
Int cubo (int);Programa principalInicio
Int: x;x = cubo (2);Muestre “El cubo de 2 es: “, x;x = cubo (3);Muestre “El cubo de 3 es: “, x;
FinInt cubo (Int: z)Inicio
z = z * z * z; //Retorne z * z * z;
Fin
Ejemplo de una función
Es un subprograma que permite realizar procesos: toma valores, realiza cálculos y devuelve varios resultados. Por ejemplo:
Nom_Proc (lista parámetros); de dónde:
◦ Nom_Proc: es el nombre asignado al procedimiento.
◦ Lista parámetros: son las variables, constantes o expresiones que pasan del programa principal al procedimiento y viceversa.
Ingreso_datos (string: nom
[20], prog [15]; int ed)Inicio
Muestre “Ingrese nombre: “;
Lea nom;Muestre “ingrese edad: “;Lea ed;Muestre “ingrese
programa: “;Lea prog;
Fin
Procedimientos
Es la lista de argumentos que pasan de un subprograma a otro, o del programa principal a un subprograma.
Los parámetros pueden pasar vacíos o pasar variables, constantes, expresiones, valores de funciones o nombres de funciones o procedimientos.
Se clasifican en:
◦ Formales: Se denominan así la lista de parámetros utilizados en la declaración del subprograma.
◦ Actuales: Se denominan así la lista de parámetros utilizados en la llamada o invocación del subprograma.
Parámetros
Los parámetros pueden ser:
◦ De entrada: cuando comunican valores al procedimiento;
◦ De salida: cuando
envían valores desde el procedimiento al programa que llama;
◦ De E/S: que sirve para
ambos propósitos
Los parámetros se pueden pasar:
◦ Por Valor: Los parámetros
formales, reciben una copia de los parámetros actuales, por lo tanto, los cambios que se produzcan en el subprograma no afectan el valor de los parámetros actuales.
◦ Por referencia: Lo que se
pasa al subprograma es la dirección de memoria del parámetro actual, por lo tanto puede ser accedido y modificado durante la ejecución del subprograma.
Parámetros
//declaración de Procedimiento:
f_suma (int, int);//Programa principal
e invocación de la función:
InicioInt a, b, c = 0;Llamar Suma (2, b);c = a + b;Muestre “Suma dos
es: “, c;
Fin
//Definición de procedimiento:
Int f_suma (int: x,y)Inicio
Int: z = 0; x = 5; y = 3;z = x + y;Muestre “Suma uno es: “, z;Fin
P/E:Suma uno es: 8Suma dos es: 5
Ejemplo: paso de parámetros por Valor
Ejemplo de paso de parámetros por referencia:
//declaración de Procedimiento:
f_suma (int, int);//Programa principal
e invocación de la función:
InicioInt a, b, c = 0;Llamar Suma (a, b);c = a + b;Muestre “Suma dos
es: “, c;Fin
//Definición de procedimiento:
Int f_suma (int: x,y)Inicio
Int: z = 0; x = 5; y = 3;
z = x + y;Muestre “Suma uno es: “, z;Fin
P/E:Suma uno es: 8Suma dos es: 8
Ejemplo: paso de parámetros por Referencia
Ejercicios con Subprogramas -1
Ingresar un número e imprimir su potencia, leída por el usuario. Elaborar un programa que de acuerdo a un año dado calcule si es bisiesto o no. Dado el lado de un cuadrado calcular e imprimir su área. Ingresar edad de tres personas e imprimir el promedio. Ingresar referencia, valor de un artículo y de acuerdo a la cantidad comprada,
mostrar el valor a pagar incluyendo el IVA del 16%.
Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto dinero ganara después de un mes si el banco paga a razón de 2% mensual.
Un vendedor recibe un sueldo base mas un 10% extra por comisión de sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.
Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra.
Dada una cantidad en pesos, obtener la equivalencia en dólares. Dada una cantidad en Euros, obtener el valor en pesos y en dólares.
Ejercicios con subprogramas -2
Un alumno desea saber cuál será su calificación final en la materia de Algoritmos. Dicha calificación se compone de los siguientes porcentajes:
50% del promedio de sus tres calificaciones parciales.
25% de la calificación del examen final.
25% de la calificación de un trabajo final. Calcular el número de pulsaciones que una persona debe tener por cada 10
segundos de ejercicio, si la fórmula es: num. pulsaciones = (220 - edad)/10 Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su
salario anterior. El dueño de una tienda compra un artículo a un precio determinado. Obtener el
precio en que lo debe vender para obtener una ganancia del 30%. Una persona sale de su casa a hacer un viaje en auto, hasta una ciudad distante a
80 kilómetros y regresa después de cinco horas, ¿Cual fue su velocidad si no se detuvo?
Se leen los catetos de un triángulo rectángulo y hallar el valor de la hipotenusa H = (a^2 + b^2)^(1/2).
Realice un procedimiento que permita intercambiar el valor de dos variables Leer una cantidad que represente un valor en pulgadas y hallar su equivalente en
centímetros. Determine la media de una lista de 10 medidas leídas.