Documentos de Académico
Documentos de Profesional
Documentos de Cultura
claseVirtualCom121 060522subprogramas
claseVirtualCom121 060522subprogramas
AGENDA de TRABAJO
Subalgoritmos
Aplicado con:
CONTADORES
ACUMULADORES
PROMEDIOS
PORCENTAJES
MÁXIMOS / MÍNIMOS (y sus posiciones)
BANDERAS
CORTE DE CONTROL
Codificación en lenguaje
Subalgoritmos
Programación modular
Subalgoritmos
Funciones
Subrutinas
Programación Modular
Programación Modular
(pág. 101)
Dado un problema,
se debe pensar en sub-problemas que constituyan módulos separados,
que luego se ensamblen,
para construir el algoritmo que resuelva el problema de origen.
Sub-problema 2
Programación Modular
(pág. 101)
Ventajas de la modularidad:
•Probar los diferentes módulos en forma independiente
•Modificar los diferentes módulos sin afectar a los otros
•Diferentes diseñadores puedan trabajar simultáneamente en cada módulo
•Reuso: volver a usar soluciones ya conocidas y testeadas con anterioridad
Un subalgoritmo define una tarea específica que puede ser reutilizada en distintos
contextos de resolución de problemas algorítmicos.
Es lo mismo:
Pensar y escribir primero el algoritmo principal proponiendo los subalgoritmos, y
luego escribir cada uno de ellos
Que:
Pensar y escribir primero los subalgoritmos, y luego utilizarlos en el algoritmo
principal
Subalgoritmo
1- Interpretar el enunciado
3- Escribir el algoritmo
Algoritmo POTENCIA
Variables
real x, y
entero n
Inicio
escribir("Ingrese la base y el exponente")
leer(x, n)
y x ** n
escribir("El resultado de la potencia es: ", y)
Fin.
Xn
Si existe una función interna de biblioteca para calcular la potencia: y = pot(x, n)
3- Escribir el algoritmo
Algoritmo POTENCIA
Variables
real x, y
entero n
Inicio
escribir("Ingrese la base y el exponente")
leer(x, n)
y pot(x,n)
escribir("El resultado de la potencia es: ", y)
Fin.
Pero supongamos ahora, que trabajamos con un lenguaje que no posee
la potencia implementada ni como operador ni como función interna.
1- Interpretar el enunciado
Ejemplos:
23 2-3
y=2x2x2=8 y=2x2x2=8
y = 1/8 = 0,125
xn
3- Escribir el algoritmo
Algoritmo POTENCIA
Variables
real x, y
entero n, i
Inicio
escribir("Ingrese la base y el exponente")
leer(x, n)
y1
repetir para i 1, abs(n)
yy*x
finpara
si (n < 0) entonces
y 1/y
fin si
escribir("El resultado de la potencia es: ", y)
Fin.
Resolvamos nuestra situación problemática
encarándola de otra manera…
I ON
PEN AC
MO SAM AM R
DU IEN R
G LA
LA TO O U
R PR OD
M
xn
3- Escribir el algoritmo
Algoritmo POTENCIA
Variables
real x, y
entero n, i
Inicio
escribir("Ingrese la base y el exponente")
leer(x, n)
y1
repetir para i 1, abs(n) Todas estas
yy*x acciones las
finpara haremos formar
si (n < 0) entonces parte de un
y 1/y SUBPROGRAMA
fin si
escribir("El resultado de la potencia es: ", y)
Fin.
Subalgoritmo de tipo función - Ejemplo 1
(pág. 103)
1- Interpretar el enunciado
Ejemplos:
23 2-3
y=2x2x2=8 y=2x2x2=8
y = 1/8 = 0,125
Subalgoritmo de tipo función - Ejemplo 1
(pág. 103)
Subalgoritmo
real Función potencia (real x, entero n) o Función potencia (x: real, n: entero): real
Variables
entero i
real y
Inicio
y1 Características de los módulos:
repetir para i 1, abs(n) •independiente uno del otro
yy*x •definido en sí mismo (entradas,
finpara acciones y resultados)
si (n < 0) entonces
y 1/y
fin si
devolver (y)
finfunción
Subalgoritmo de tipo función
(pág. 104)
w potencia(2,a*4+1) / 40
Usando en el algoritmo principal los mismos nombres de variables
que en el subalgoritmo
Algoritmo EJEMPLO1
Variables
real x, y
entero n
Inicio
escribir("Ingrese la base y el exponente")
leer(x, n)
y potencia(x, n)
escribir("El resultado de la potencia es: ", y)
Fin.
Algoritmo EJEMPLO1
Variables
real base, pot
entero exp
Inicio
escribir("Ingrese la base y el exponente")
leer(base, exp)
pot potencia(base, exp)
escribir("El resultado de la potencia es: ", pot)
Fin.
4- Escribir el programa
if (n < 0)
y=1/y ;
return y;
}
Subalgoritmo de tipo función - Ejemplo 1
main()
{
//Variables
float base, pot;
int exp;
//Inicio
printf("Ingrese la base y el exponente ");
scanf("%f%d",&base,&exp);
pot=potencia(base, exp);
printf("El resultado de la potencia es: %f", pot);
}
Aclaración
main()
{
.
.
}
Subalgoritmo de tipo función - Ejemplo 1
2 8 4 2, 3 8 3
Subalgoritmo de tipo función
Inicio
devolver (3.1415)
finfunción
Inicio
devolver (valor/100.)
finfunción
¿Dudas/preguntas?
Ejercitación - Práctica 5
1x2x3x4
Subalgoritmo