Fundamentos programación

Click here to load reader

  • date post

    13-Jun-2015
  • Category

    Documents

  • view

    120
  • download

    2

Embed Size (px)

Transcript of Fundamentos programación

  • 1. UNIVERSIDAD NACIONAL AUTNOMA DE MXICO Fundamentos de Programacin

2. FUNDAMENTOS DE ALGORITMOS Computabilidad: Trmino matemtico para nombrar a los estudios sobre teora de la computacin. Consiste en encontrar la representacin adecuada para la descripcin de un problema o un fenmeno. Conocimiento transmisible: se da si se cierra el ciclo Descripcin Representacin 3. FUNDAMENTOS DE ALGORITMOS Modelo: Especificacin, generalmente en trminos de un lenguaje matemtico, de los pasos necesarios para reproducir, aqu y ahora, un subconjunto determinado de la realidad descrito previamente Pregunta: Todo aquello que es descriptible es representable? Habr una representacin que simule completamente lo descrito? Cuanto ms adecuada sea la descripcin del proceso, tanto mejor ser el resultado que emula lo real 4. FUNDAMENTOS DE ALGORITMOS Supongamos que se crea una mquina para producir descripciones en trminos de cadenas de smbolos. Dada una descripcin cualquiera, la analiza durante un tiempo finito y despus emite su dictmen (si o no) con respecto al problema Pregunta : existir una mquina as? Descripcin Procedimiento De decisin SI NO HAY SOLUCIN 5. FUNDAMENTOS DE ALGORITMOS Mquina de Turing: Es un modelo matemtico para especificar formalmente los pasos primitivos necesarios para representar una descripcin en trminos totalmente explcitos y claros, sin hacer la menor referencia a conceptos u operaciones ambiguos o sobreentendidos. Elementos: Una cinta de longitud infinita, dividida en celdas (cada celda puede contener un smbolo Un diccionario de smbolos predefinido (De aqu se toman los smbolos para las celdas) Un control finito, que posee un cojunto de estados y que tiene la capacidad de examinar algn smbolo de alguna celda y tomar una decisin (La decisin depende del smbolo observado y del estado en el que se encuentre en ese momento) 6. FUNDAMENTOS DE ALGORITMOS Funcionamiento: Mediante un conjunto de funciones matemticas simples se indica el comportamiento completo del proceso que est siendo representado, mostrando detalladamente los estados por los que atraviesa para lograrlo. Se parte de un estado inicial y se recorre un conjunto de estados intermedios hasta llegar al estado final, que marca entonces el final de la computacin S10 S0 S7 S14 S4 S2 CONTROL FINITO CONTROL FINITO 7. FUNDAMENTOS DE ALGORITMOS Teora de la computabilidad Encontrar formas de representar descripciones de procesos, de manera tal que siempre se pueda decir que la solucin de un problema existe o no Un problema se dice que es Computable si existe una mquina de decisin para l Pregunta: Todos los procesos son computables? Un problema se dice que es No Computable si la mquina de decisin para l llega a un estado en donde no es capaz de decir que si o que no 8. FUNDAMENTOS DE ALGORITMOS 1. Definicin o anlisis del problema: Descripcin especfica y comprensible del problema a resolver 2. Diseo del algoritmo: Planteamiento de los pasos a seguir para resolver el problema 3. Transformacin del algoritmo en un programa independientemente del lenguaje de programacin. 4. Ejecucin y validacin del programa 5. Mejoras y correcciones al programa 9. FUNDAMENTOS DE ALGORITMOS Algoritmo: Conjunto ordenado y finito de pasos u operaciones que permite hallar la solucin de un problema. Es un mtodo formal y sistemtico de representar la descripcin de un proceso. CARACTERSTICAS: Definido: debe indicar el orden de la realizacin de cada paso y no debe tener ambigedad Preciso: Si se sigue dos veces o ms se obtendr e el mismo resultado cada vez Finito: Debe terminar en algn momento. Tiene un nmero determinado de pasos 10. FUNDAMENTOS DE ALGORITMOS Correcto: Sin errores Debe tener al menos una salida Su solucin debe ser concreta Debe ser sencillo y legible Eficiente y efectivo Se ha de desarrollar en el menor tiempo posible Un algoritmo debe describir tres partes: Entrada(s) : elementos o condiciones iniciales necesarios para resolver el problema. Proceso : elaboracin del procedimiento. Salida(s): Resultados que se desean obtener 11. FUNDAMENTOS DE ALGORITMOS Pseudocdigo: Representacin descriptiva de las operaciones de un algoritmo. Representa una secuencia lgica de actividades, que llevarn en conjunto a la solucin de un problema. Los elementos que debe llevar un algoritmo son Cabecera del algoritmo: Existen pasos o procedimientos que se realizan para comenzar un programa. Siempre que se haga debe ponerse un encabezado de programa, en donde debe expresarse el identificador o nombre correspondiente con la palabra reservada que seale el lenguaje, generalmente sta suele ser program que en algoritmia significa algoritmo Declaracin de Variables: En este punto se describen todas las variables que son usadas en el algoritmo, haciendo una lista de sus nombres y especificando a qu tipo corresponde cada uno. 12. FUNDAMENTOS DE ALGORITMOS Declaracin de Constantes: En este punto se declararn todas las constantes de carcter estndar; es decir, que tengan nombre y un valor ya conocido o valores que ya no pueden variar en el transcurso del algoritmo Cuerpo del algoritmo: Una vez aadidas la cabecera y la declaracin de variables y constantes se procede a realizar los pasos del algoritmo A continuacin se muestra un ejemplo: 13. FUNDAMENTOS DE ALGORITMOS Algoritmo rea_Crculo {Clculo del rea de un circulo pidiendo el radio al usuario} var r, A: real cte: :real Inicio Mostrar Dame el radio Leer r A resultado tipo lgico. caracter -> resultado tipo caracter. 24. FUNDAMENTOS DE ALGORITMOS Expresiones Aritmticas Estas expresiones son anlogas a las frmulas matemticas. Las variables y constantes son numricas (real o entera) y las operaciones son las aritmticas Operadores aritmticos Precedencia - (operador monario) ^ (exponenciacin), (radicacin) *, / (divisin real), +, - div o / (cociente de divisin entera) , mod o % (residuo de divisin entera) 25. FUNDAMENTOS DE ALGORITMOS Expresiones lgicas: Su valor es siempre verdadero o falso. Se forman combinando constantes lgicas , variables lgicas y otras expresiones lgicas, utilizando los operadores lgicos y los operadores relacionales Operadores relacionales Precedencia >, < >=,