Está en la página 1de 13

Practicas calificadas de Informtica:

Alumno: Bernab Castro Gonzalo Adolfo

COD: 20154081E

Fecha: 7/12/17
Programacin Modular
1. Introduccin a la programacin modula

Es ms fcil resolver un problema complejo cuando se divide en partes manejables:


tcnica de divide y vencers.
En un programa monoltico la cantidad de variables utilizadas y caminos que debe
seguir el flujo de control hace imposible su correcta comprensin, Se dificulta la
correccin de errores y el mantenimiento posterior del programa.
La programacin modular proporciona un mtodo para plasmar el La programacin
modular proporciona un mtodo para plasmar el uso de recursos abstractos y la
programacin descendente.
Consiste en descomponer un problema complejo en partes ms pequeas: mdulos
pequeas: mdulos, subalgori tmos subalgoritmos o subprogramas.
Cada mdulo sera un programa normal pensado para ser integrado en una aplicacin
mayor.

2. Esquema grfico:

Un programa modular est compuesto de

Un programa principal, encargado de coordinar la ejecucin.


Una serie de mdulos que resolveran cada una de las tareas concretas del problema.
3. Ventajas

Facilidad para aprehender el problema.


Divisin del trabajo entre un equipo de programadores.
Facilidad de mantenimiento y correccin de errores.
Reutilizacin del cdigo.

4. Llamadas a mdulos

Un programa modular contar con un programa principal y uno o varios mdulos.


El programa principal llama o invoca a los mdulos, cediendo a stos el control del
flujo del programa.

5. Tipos de subprogramas

Procedimientos :
Ejecutan una accin que puede o no modificar valores Ejecutan una accin que puede
o no modificar valores y puede o no puede o no necesitar datos de entrada.
Imprimir Factura.
Ordenar Lista.
Funciones:
Realizan una operacin que siempre tiene como resultado un valor
Factorial.
Potencia.
Mximo

6. Algunas Funciones
7. Ejemplo 1: Declarar una funcin que calcule el factorial de un nmero entero positivo que
se pasar como argumento de la funcin pasar como argumento de la funcin.

Anlisis del problema:

Se deber proporcionar a la funcin un dato sobre el que vamos a sacar el factorial: el


argumento de tipo entero n.
Para el clculo del factorial habr que acumular las multiplicaciones de todos los
nmeros entre 1 y n, por lo que ser necesario un acumulador de multiplicaciones
(variable por lo que ser necesario un acumulador de multiplicaciones (variable f t ac )
que habr que inicializar ) que habr que inicializar al elemento neutro de la
multiplicacin.
Por ltimo ser necesario realizar un bucle en el que una variable vaya tomando los
valores entre 2 y n (hay que recordar que factorial de 0 es 1 y factorial de 1 tambin es
1).
Se utilizar una estructura de tipo desde. El valor de retorno de la funcin ser el del
acumulador fact.

Llamadas a funciones.

Formato de llamada : Nombre Funcin ([ListaParmetrosActuales])


La lista de parmetros actuales son los valores reales con los que trabajar la funcin.
Al realizar la llama da el valor de los parmetros actuales sustituye a los parmetros
formales a la hora de ejecutar el cdigo. Factorial(3) //Realiza la llamada a la funcin
con n = 3 Factorial(a) //Evala el contenido de la variable a //y realiza la llamada con n
= a //y realiza la llamada con n = a Factorial(a+5)//Evala el contenido de la expresin
a+5 // y realiza la llamada con n = a+5
Una funcin devuelve un valor, por lo que la llamada se deber utilizar en una
expresin que requiera un valor del tipo de dato utilizar en una expresin que requiera
un valor del tipo de dato devuelto por la funcin.
Escribir(Factorial(3) a x * Factorial(y) b Factorial(Factorial(b))

Ejemplo 2. El seno de un ngulo x se puede calcular por la siguiente serie:

Cuanto mayor sea el nmero de trminos de la serie, mayor ser la precisin del clculo
clculo. Implemente una funcin seno que permita calcular el seno de un ngulo x expresado
en radianes utilizando dicha serie. El clculo terminar cuando la diferencia entre dos trminos
correlativos sea menor que 10-3.

Anlisis del problema Anlisis del problema


Cada trmino de la serie se calcular mediante la funcin factorial declarada
en el ejercicio 5.1. En cada trmino, el exponente y el factorial van tomando
valores 1,3,5,7, por lo que ser necesario un contador que, a partir de 1,
incremente los valores de dos en dos.
En la serie el primer trmino se suma el segundo se resta el tercero se suma En
la serie, el primer trmino se suma, el segundo se resta, el tercero se suma,
etc., es decir, se va alternado la suma y la resta. Para solucionar esto se utiliza
una variable lgica (sumar) que cambia de estado en cada iteracin. Si la
variable es cierta se sumar el trmino a la serie, en caso contrario se resta.
Adems es necesario guardar el ltimo y el penltimo trmino para controlar
la salida
Programacin Estructurada.
1. Introduccin. Teorema de la programacin estructurada
El principio fundamental de la programacin estructurada es que en todo momento el
programador pueda mantener el programa dentro de la cabeza. Esto se consigue con:

a) un diseo descendente del programa

b) unas estructuras de control limitadas y

c) un mbito limitado de las estructuras de datos del programa.

Hace ms fcil la escritura y verificacin de programas. Se adapta perfectamente al diseo


descendente, Para realizar un programa estructurado existen tres tipos bsicos de estructuras
de control:

Secuencial: Ejecuta una sentencia detrs de otra


Condicional: Se evala una expresin y, dependiendo del resultado, se decide la
siguiente sentencia a ejecutar.
Iterativa: Repetimos un bloque de sentencias hasta que sea verdadera una
determinada condicin.

2. Teorema fundamental de la programacin estructurada:


Todo programa propio se puede escribir utilizando nicamente las estructuras de control
secuencial, condicional e iterativa

Un programa propio es aquel que:

Tiene un nico punto de entrada y un nico punto de salida.


Existen caminos desde la entrada hasta la salida que pasan por todas las partes del
programa
Todas las instrucciones son ejecutables y no existen bucles sin fin, Este teorema
implica que la utilizacin de la sentencia GOTO es totalmente innecesaria, lo que
permite eliminar esta sentencia. Un programa escrito con GOTO es ms difcil de
entender que un programa escrito con las estructuras mencionadas.

3. Estructura secuencial.

Ejecucin de sentencias una detrs de la otra. En C++, toda una estructura secuencial
se agrupa mediante los smbolos { y }.
Todo el bloque se considera una sola sentencia. Despus de las llaves no se pone
punto y coma.

4. Estructura condicional. (Alternativa simple)

4. Estructura condicional. (Alternativa doble)


Programacin dinmica (DP)
Tcnica matemtica orientada a la solucin de problemas con decisiones secuenciales en
etapas sucesivas donde se debe minimizar el coste total de dichas decisiones. En cada etapa se
valora no slo el coste actual de tomar una decisin sino los costes futuros que se originan a
partir de ella.

El nmero de estados puede ser finito o infinito.

Mediante una decisin k u se va de un estado al comienzo de una etapa a otro estado al


comienzo de la siguiente 1+

En cada etapa se evala la decisin ptima para cada uno de sus estados

Cada estado guarda toda la informacin necesaria para tomar las decisiones futuras sin
necesidad de conocer cmo se ha alcanzado dicho estado. Es un procedimiento recursivo que
resuelve de manera iterativa, incorporando cada vez una etapa, partes cada vez mayores del
problema original. El procedimiento puede hacerse hacia delante o hacia atrs.

Principio de optimalidad de la DP o de Bellman

Dado un estado, la poltica ptima para las siguientes etapas no depende de la poltica tomada
en las etapas anteriores. La decisin de ptima inmediata slo depende del estado en el que se
est, no de cmo se lleg hasta l. Toda la informacin sobre el pasado se resume en el estado
en que se encuentra. Una vez conocida la solucin ptima global, cualquier solucin parcial
que involucre slo una parte de las etapas es tambin una solucin ptima. Todo subconjunto
de una solucin ptima es a su vez una solucin ptima para un problema parcial.

Ejemplo:

Buscamos el camino ms corto entre Madrid y Barcelona y averiguamos que la solucin


ptima del problema pasa por Zaragoza.
Si nos preguntamos por el camino ms corto entre Zaragoza y Barcelona, es obvio que ser el
mismo que el utilizado en la solucin del problema global (Madrid - Barcelona). Si existiera un
camino ms corto entre Zaragoza y Barcelona (problema parcial), lo habramos tomado como
parte de la solucin del problema global.

Relacin recursiva (hacia atrs)

Define la poltica ptima en la etapa k conocida la poltica ptima en cualquier estado de la


etapa k +1

Ejemplo: Problema del viajero:


El viajero desea ir de la ciudad A a la J por el camino ms corto.

También podría gustarte