domingo, 25 de septiembre de 2011

INTRODUCCIÓN


Un problema computacional es un conjunto de datos de entrada, junto con una especificación de  la  salida deseada en base a cada entrada.


Un problema en una función o asociación de entradas con salidas


¿Que es un algoritmo?
Un algoritmo es un conjunto de reglas operacionales inherentes a un computo, en pocas palabras en un conjunto de pasos que sirven para resolver un problema.


Características:


Entrada: Definir lo que necesita el algoritmo.


Salida: Definir lo que produce.


No ambiguo: explicito, siempre sabe que comando ejecutar.


Finito: El algoritmo termina en un numero finito de pasos.


Correcto: Hace lo que se supone que debe de hacer


Efectividad: Cada instrucción se emplea en tiempo finito.


General: Debe ser lo suficientemente general como para contemplar todos los casos de entrada.


El algoritmo mas famoso de todos los tiempos es el algoritmo de Euclides para calcular el máximo comun divisor de dos enteros.


Un programa entonces es una instanciacion de un algoritmo en un lenguaje de programación.
Ademas consiste en la especificación formal de un algoritmo por medio de un lenguaje de programación de forma que pueda ser ejecutado por una computadora.


FORMULACIÓN Y RESOLUCIÓN DE PROBLEMAS.


El análisis de un problema tiene dos etapas claramente definidas y relacionadas.


-Formulación o planteamiento del problema.
-Resolución del problema.


La formulación la podemos descomponer en tres etapas:
-Definición del problema.
-Supuestos:aserciones y limitaciones suministradas.
-Resultados esperados.


La fase del planteamiento del problema lo que pretende un algoritmo es sintetizar de alguna forma  una tarea, calculo o mecanismo antes de ser transcrito a la computadora(análisis previo del problema, primera visión de solución, resultados parciales y totales, etc)


La fase del resolución del problema se puede descomponer en tres etapas:


Análisis de alternativas y seleccion de la solución.
Especificacion detallada del procedimiento solucion.
Adopcion o utilizacion de una herramienta para su implementacion si es necesaria


ALGORITMIA:
La algoritmia es el estudio sistemático del diseño y análisis de algoritmos:


ÁREA DE ESTUDIO DE LOS ALGORITMOS
¿Como construir algoritmo?
Enfoques:
Divide y vencerás, programación dinamica, exacta, estocástica.


¿Como expresar algoritmos?
Programación estructurada, de objetos, funcional, lógica.


¿Como validar algoritmos?
Verificación formal.


¿Como analizar algoritmos?
Complejidad computacional, robustez, amigabilidad.....


REFINAMIENTO POR PASOS


Es necesario pasar por varias etapas de formalizacion hasta llegar a un programa cuyos pasos tengan un significado formalmente definido en el manual de algún lenguaje de programacion.


ETAPAS
Modelacion:
La primera etapa es la modelacion, en esta etpa la solucion del problema del algoritmo expresado de manera muy informal. 


Pseudolenguaje: En la siguiente etapa el algoritmo se escribe en pseudolenguaje.En algun punto del proceso, el programa  en pseudolenguaje estara suficientemente etallado para que las operaciones que se deban realizar con los distintos tipos de datos esten bien determinados. Entonces se crean los tipos de datos abstractos para cada tipo de dato, dando un nombre de procedimiento a cada operacion y sustituyendo los usod de las operaciones por incocaciones a los procedimientos correspondientes.


En la tercera etapa se elige una aplicacion para cada tipo de datos abstracto