Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nivel 0 de Módulo
Principal Datos
descomposición
Nivel 1 de
descomposición Módulo 1 Módulo 2 Módulo 3
Nivel 2 Módulo 1.1 Módulo 1.2 Módulo 2.1 Módulo 2.2 Módulo 3.1
Nivel 3 de
descomposición Módulo 2.2.1 Módulo 2.2.2 Módulo 3.1.1
Programación Modular
Programación Modular
Programación modular:
◦ dividir la complejidad de un problema.
identificar subproblemas o tareas más simples.
◦ reutilizar el código. ,
m o d ulo p rinc ip al
Módulo M 1 M 2 M 3
◦ Características básicas: M 1 .1 M 1 .2 M 2 .1 M 3 .1
Alta cohesión.
M 3.1 .1 M 3.1 .2
Bajo acoplamiento.
◦ En C/C++ los módulos se implementan como funciones.
◦ Todos los programas contienen al menos la función main.
Diseño Descendente y Descomposición Modular
FUNCIONES
PROCEDIMIENTOS
int main()
{
<instrucciones>;
NombreProc1(<parámetros llamada>);
NombreProc2(<parámetros llamada>);
<instrucciones>;
return 0;
}
Llamada a un Procedimiento o Función
Principal Procedimiento/función
Llamada procedimiento
Procedimiento/función
Llamada procedimiento
Llamada procedimiento
Llamada procedimiento
Procedimiento/función
Llamada procedimiento
Llamada a un Procedimiento o Función
Definición de una Función
Transferencia de
F. invocadora datos (opcional) F. invocada
#include <stdio.h>
main(){
int i,resultado;
for (i=0;i<10;i++){
resultado = cuadrado (i);
printf("Cuadrado de %d:\t%d\n",i,resultado);
}
return 0;
}
Definición de una Función
Las funciones:
◦ Se declaran
◦ Se definen
◦ Se utilizan... en expresiones, en cálculos, en llamadas a otras
funciones.
Sintaxis de la definición
<Tipo resultado> NombreFunción(<lista
parámetros>)
{
<Cuerpo de la función>
}
Objetivo
Dar nombre a la función, calcular el valor que va a devolver y declarar el
conjunto de valores que necesita que le pase el programa.
Funciones
//Declaración de la función
double potencia(double const x, int const
n)
{
double pot = 1;
for (int i = 0; i < n; i++)
pot = pot * x;
return pot;
}
Parámetros de una Función
Algoritmo Sumatoria
entero función suma (entero s)
Inicio
Leer numero1
Entero S
Leer numero2
S0
S numero1 + numero2
Presentar suma(s)
Devolver S
Presentar s
finfunc
fin
y 10 x 10
Copia
Paso de Parámetros por Valor
#include <iostream.h>
#include <vcl.h>
void ConvertirMoneda (short int const tipo, float const
cantidad)
{
float const Factor = 32.8;
if (tipo == 1)
cout << cantidad << “ córdobas equivalen a ”
<< cantidad/factor << “ dólares”;
else
cout << cantidad << “ dólares equivalen a ”
<< cantidad*factor << “ córdobas”;
}
Paso de Parámetros por Referencia
Algoritmo suma
función suma (entero var s) entero
Inicio
Leer numero1
Entero S
Leer numero2
S0
S numero1 + numero2
Presentar suma(s)
Devolver S
Presentar s
finfunc
fin
¿Cuál es el valor de S?
Paso de Parámetros por Referencia
#include <iostream.h>
main() {
int x=1, y = 2, z = 3;
intercambiar (x, y);
intercambiar (y, z);
cout << endl << "Valores de x: " << x << " y: " <<
y << " z: " << z;
} ¿Resultado?
Uso de Procedimientos
int main()
{
<instrucciones>;
x = NombreFunción1(<parámetros llamada>);
y = x + NombreFunción2(<parámetros llamada>);
<instrucciones>;
return 0;
}
#include “prototipos.h”
int main()
{
<instrucciones>;
x = NombreFunción1(<parámetros llamada>);
y = x + NombreFunción2(<parámetros
llamada>);
<instrucciones>;
return 0;
}
Ficfunción1.cpp prototipos.h
<TipoFunción1> NombreFunción1
(<parámetros llamada>);
<TipoFunción1> NombreFunción1
(<parámetros llamada>)
{
<instrucciones>;
return <valorTipoFunción1>;
}
Ambito de las Variables
Variables Locales:
◦ Se declaran dentro de la función y sólo están
disponibles durante su ejecución.
◦ Se crean cuando se entra en ejecución una
función y se destruyen cuando se termina.
Variables globales:
◦ Se declaran fuera de las funciones. Pueden ser
utilizadas por todas las funciones.
◦ Existen durante toda la vida del programa.
Ambito Local de una Variable
Procedimiento/función Procedimiento/función
principal
Entero numero
Llamada procedimiento
numero = 25
Llamada procedimiento
Presentar numero
Procedimiento/función
Llamada procedimiento
Procedimiento/función
Var. Global
#include <iostream.h>
int x = 2;
x
p = 10; p p, x
x = cuadrado (p);
cout << x;
} Var. Locales a main
Ambito de las Variables
Conflictos de nombres:
◦ Un mismo identificador de variable puede utilizarse en
distintos lugares del programa para declarar variables
distintas.
x 10 x 10
x 10 x 11
main ()
x 11
Ambito de las Variables
#include <iostream.h>
resultado = x * y;
return resultado;
}
void main() {
int resultado, x;
x = por10(y); ¿resultado?
resultado = por10 (x);
cout << resultado;
}
int M = 230; int i, j; Ambito de las Variables
int A ( int i, int incrementa)
{ VARIABLES QUE SE VEN DESDE CADA BLOQUE
int r=1; int s=0; Bloque Variable Descripción
Ppal M Variable Global
int B ( int g, int despedida)
i,j Variables globales
{ A Subprograma declarado en Ppal
int m = 1; int n = 0; main Subprograma declarado en Ppal
if (despedida) main z Variable local a main
M Variable Global
return (n); i,j Variables globales
else A Subprograma declarado en Ppal
return (m); main Subprograma declarado en Ppal
}; A i, incrementa Parámetros de A son locales a A
r, s Variables locales a A
if (incrementa && r || s) B Subprograma local a A
return B ( i, incrementa); j Variable global declarada en ppal
else B Subprograma declarado en A
M Variable global
return B ( M, !incrementa);
B g, despedida Parámetros locales a B
} m ,n Variables locales a B
int main () r, s Variable declaradas en A globales en B
{ i, incrementa Parámetros de A globales en B
j Variable global declara en Main
int z; j = 1;i = 230 + j; z = i; A Subprograma declarado en ppal
printf ( "%d\n", A( z, 1)); B Subprograma declarado en A
} M Variable global declara en ppal
Paso de Argumentos a Funciones
#include <stdio.h>
#include <stdio.h>
main(){
float a;
printf (“\nValor del ángulo a convertir:”);
scanf (“%f”, &a);
a = cent_to_rad (a);
printf (“\nValor del ángulo en radianes: %f\n”, a);
}
Ejemplo: Paso de Parámetros a una Función
int xvalor (int a, int b)
{
a=b; return a;
};
void xref1(int *a, int *b)
{
*a=*b;
}; Pasada de parámetros por
int main() valor. Las variables
{
actuales no se modifican.
int a, b, c;
a = 1; b = 2;
c = xvalor( a, b);
printf("a=%d,b=%d, c=%d\n", a, b, c);
xref1(&a, &b);
printf("a=%d,b=%d\n", a, b);
Pasada de parámetros por
system("PAUSE");
referencia. Significa que se
return 0;
modifican las variables
} actuales.
Paso de Parámetros por Referencia
Uso:
◦ Identificar el tipo de retorno de la función.
◦ Especificar el tipo y el número de argumentos que
utiliza la función.
Ejemplo.
Prototipo de Funciones
#include <stdio.h>
#include <stdio.h>
void intercambio(int *, int *) /*Prototipo*/
main(){
int a=5,b=3;
printf("a=%d b=%d\n",a,b);
intercambio (&a,&b);
printf("a=%d b=%d\n",a,b);
return 0;
}
void intercambio(int *x, int *y){
int temp;
temp=*x;
*x=*y;
*y=temp;
}
Contadores, Acumuladores e Interruptores
Area de un círculo: A * R2
9*º C
Celsius a Fahrenheit:: ºF 32
5
N 1
A[i]
Valor promedio de una onda: P i 0
N
Evalúa f(4): f ( x) x 4 4 x 3 2 x 4
Investigación Documental #2