logica subprogramas

18
Subprogramas Grupo 248 Docente: Ma. Eugenia Morales M. Institución Universitaria de Envigado Facultad 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

Upload: memoralesiue

Post on 30-Jun-2015

737 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Logica subprogramas

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

Page 2: Logica subprogramas

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

Page 3: Logica subprogramas

Programa

Subprograma 1

Subprograma 2

Subprograma 3

Se divide en:

Representación de subprogramas

Page 4: Logica 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

Page 5: Logica subprogramas

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.

Page 6: Logica subprogramas

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

Page 7: Logica 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

Page 8: Logica 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…

Page 9: Logica 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

Page 10: Logica subprogramas

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

Page 11: Logica subprogramas

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

Page 12: Logica subprogramas

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

Page 13: Logica subprogramas

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

Page 14: Logica subprogramas

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

Page 15: Logica subprogramas

//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

Page 16: Logica subprogramas

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

Page 17: Logica subprogramas

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.

Page 18: Logica subprogramas

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.