Download P roblemas , datos , variables , modelos
Document related concepts
Transcript
Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Resolución de problemas. El proceso de resolución de un problema abarca desde la descripción inicial del mismo, hasta el desarrollo de un programa en una computadora que lo resuelve. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, Resolución de problemas. modelos?. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Proceso de Diseño de Programas. Consta de una serie de fases que generalmente deben seguir todos los programadores, son las siguientes. Análisis del problema y Diseño del algoritmo.Conducen a un diseño detallado en forma de algoritmo. Codificación.- Se implementa el algoritmo en código escrito en lenguaje de programación. Compilación y ejecución.- Traduce y ejecuta el programa. Verificación y Depuración.- Se buscan los errores de las etapas previas y se eliminan. Mantenimiento y documentación. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Fases en el Proceso de Diseño de Programas.. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Proceso de Diseño de Programas. Un concepto Importante a definir previamente es el siguiente término. Algoritmo.- Es un conjunto finitos de reglas que proponen una serie de operaciones que sirven para resolver un determinado problema. Cumplen las siguientes características: Finito.- Debe acabar tras un numero finito de pasos. Definible.- Cada paso del algoritmo debe definirse de modo preciso. Efectividad.- Las operaciones del algoritmo deben ser básicas, estar expresadas de modo exacto y deben ejecutarse en un tiempo finito. Entrada.- Todo algoritmo debe tener cero o más datos de entrada. Salida.- Todo algoritmo debe tener cero o más datos de salida. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Proceso de Diseño de Programas. Análisis del problema.- Consiste en definir el problema y especificar claramente aquello que es necesario para su resolución. Para ser el análisis hay que responder las siguientes preguntas: ¿Qué entradas tiene el problema?. ¿Cuál es la salida deseada?. ¿Qué método produce la salida deseada a partir de los datos de entrada?. Normalmente la definición comienza analizando los requisitos del usuario. Estos requisitos suelen ser imprecisos y difíciles de escribir. La fase de especificación requiere normalmente una gran comunicación entre programadores y futuros usuarios del sistema. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Proceso de Diseño de Programas. Diseño del Algoritmo Aquí hay que indicar cómo hace el algoritmo la tarea solicitada, y eso se traduce en la construcción de un algoritmo. Métodos más eficaces basados en técnica divide y vencerás. Divide y Vencerás.El problema se divide en subproblemas y a continuación se divide cada uno de estos subproblemas en otros hasta que pueda implementarse una solución. Esta fase de diseño es bastante larga. Gasto (en tiempo) en diseño será ahorro en tiempo de codificación y depuración. Resultado final. La solución debe ser fácil de traducir a estructuras de datos y estructuras de control en un lenguaje de programación específico. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Proceso de Diseño de Programas. Diseño del Algoritmo.La Herramienta de Programación mas comúnmente utilizada es: Pseudocódigo. Se escriben instrucciones en palabras similares al español, que facilitan la escritura/escritura de programas. Se puede definir como un lenguaje de especificación de algoritmos. Introducción a los Lenguajes de Programación. ¿Problemas, datos, variables, modelos?. Plantilla Escritura de Algoritmos Nombre del Algoritmo Objetivo del Algoritmo Datos de Entrada Datos de Salida Descomposición del Problema en Operaciones Descomposición del Problema en Elementos Proceso Nombre del Algoritmo, Declaración de Variables, Cuerpo -Inicio...procedimiento... Fin Consideraciones Especiales Introducción a los Lenguajes de Programación. ¿Problemas, datos, variables, modelos?. Ejemplo de Algoritmo “Hola Mundo” Escriba un algoritmo que escriba la frase “Hola Mundo” Nombre: Hola Mundo Objetivo: Escribir la frase Hola Mundo Datos de Entrada: No hay. Datos de Salida: Mensaje “Hola Mundo” Introducción a los Lenguajes de Programación. ¿Problemas, datos, variables, modelos?. Ejemplo de Algoritmo “Hola Mundo” Descomposición del Problema en Operaciones: Imprimir mensaje. Descomponer el problema en Elementos: Mensaje Algoritmo: Proceso Hola_mundo Variables No hay Inicio Escribe(“Hola Mundo”) Fin Consideraciones especiales: El algoritmo se ejecuta una sola vez y termina. Introducción a los Lenguajes de Programación. ¿Problemas, datos, variables, modelos?. Algoritmo Propuesto Desarrollar un algoritmo que dado un número que se le proporcione entregue la sumatoria de él, de acuerdo a la siguiente fórmula: Sumatoria(N)= N*(N+1)/2 Solución Problema Sumatoria ∉ ∉ ∉ ∉ ∉ Nombre: Sumatoria Objetivo: calcular la sumatoria de un número natural. Datos de Entrada: número al que se le calculará la sumatoria. Datos de Salida: sumatoria del número ingresado. Descomposición del Problema en Operaciones: leer el número, calcular la sumatoria aplicando la fórmula dada, escribir resultado. Solución del Problema Sumatoria ∉ ∉ Descomposición del problema en elementos: Número n, resultado de la sumatoria de n. Algoritmo Proceso Sumatoria Variables N, sumatoria Inicio Leer (n) sumatoria=n*(n+1)/2 Imprimir (sumatoria) Fin ∉ Consideraciones especiales: Válido para números enteros positivos. P r o b l e m a G r a d o s Fahrenheit ∉ Desarrolle un algoritmo que permita la transformación de cualquier temperatura dada en grados Celsius a su equivalente en grados Fahrenheit, considerando que: Celsius Fahrenheit -1 30.2 0 32.0 1 33.8 2 35.6 3 37.4 4 39.2 : : 100 212 P r o b l e m a G r a d o s Fahrenheit ∉ Más de una forma para resolverlo. Usar una tabla de conversión, es decir tener un conjunto de datos preestablecidos en grados Celsius y su equivalente en Fahrenheit, esto implica mantener los datos de la tabla almacenados de alguna manera. Usar una fórmula de conversión, es decir, dada una temperatura en grados Celsius, se calcula su equivalente en Fahrenheit (esta solución es más eficiente). S o l u c i ó n G r a d o s F ah r e n h e i t ∉ ∉ ∉ ∉ ∉ Nombre: Conversión a grados Fahrenheit Objetivo: Convertir una temperatura que está en grados Celsius a su equivalente en grados Fahrenheit. Datos de Entrada: valor en grados Celsius Datos de Salida: valor equivalente al ingresado en grados Fahrenheit Descomposición del Problema en Operaciones: leer los grados Celsius, convertir a grados Fahrenheit aplicando la fórmula de equivalencia, escribir resultado. S o l u c i ó n G r a d o s Fahrenheit ∉ ∉ Descomposición del problema en elementos: grados Celsius, grados Fahrenheit. Algoritmo Proceso Conversión Variables Celsius, Fahrenheit Inicio Leer (Celsius) Fahrenheit=32+Celsius*1.8 Imprimir (Fahrenheit) Fin ∉ Consideraciones especiales: No tiene. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Proceso de Diseño de Programas. Codificación de un Programa.Consiste en escribir en un lenguaje de programación el algoritmo creado en la fase de diseño. Se deben seguir las siguientes reglas: Si un problema se ha dividido en subproblemas los algoritmos que resuelven estos deben ser codificados y probados independientemente. Deben usarse como identificadores términos significativos, usando nombres para los datos y verbos para los subprogramas. Cuidado especial en la comunicación de los distintos subprogramas, recomendable hacerlo mediante parámetros La variables globales se usa si son datos inherentes e importantes del programa. El sangrado y los comentarios facilitan la posterior lectura. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Proceso de Diseño de Programas. Compilación y Ejecución de un Programa.Una vez que el algoritmo se ha convertido en programa fuente, es preciso introducirlo mediante un procesador de texto en la memoria de la computadora. Mediante un compilador puede ser traducido a lenguaje de maquina. Si hay errores de compilación es necesario volver a editar el programa y corregirlos. Resueltos estos errores y si no hay errores de ejecución se puede obtener una salida de resultados. Introducción a los Lenguajes de Programación. ¿Problemas, datos, • variables, modelos?. Proceso de Diseño de Programas. Verificación y Depuración.Depuración de un programa es el proceso de encontrar errores del programa y corregir o eliminar dichos errores. Para ello hay que eliminar errores de ejecución y errores lógicos La eliminación de errores se efectúa proporcionando al programa datos de entradas validos que conducen a una solución conocida. También deben incluirse datos no validos para comprobar la capacidad de detección de errores del programa, esto es un método de depuración Hay que probar todos los posibles datos de entrada o una muestra suficientemente significativa. Demostrar formalmente que el programa funciona correctamente. Programas en Lenguaje C ∉ Un programa escrito en lenguaje C tiene la siguiente estructura: Segmento de Definición: ∉ ∉ ∉ Definición de bibliotecas a utilizar dentro del programa Definición de Constantes. Definición de Funciones escritas por el programador Cuerpo principal del programa ∉ Declaración de variables locales ∉ procedimiento. Ejemplo: Traducir a C “Hola Mundo” ∉ ∉ Se necesita la instrucción de escritura printf(“%formato”, variable). Cuando lo que se escribe es un mensaje, este se pone entre comillas dobles. #include<stdio.h> main() { printf(“Hola Mundo \n”); } Traducir a C Cálculo Sumatoria ∉ Se necesita la instrucción de lectura: scanf(“%d”,&n) #include <stdio.h> main() { Int n, sumatoria; scanf(“%d”,&n); sumatoria=n*(n+1)/2; printf(“%d”,sumatoia); }