ALGORITMOS
Enviado por cantero95 • 26 de Noviembre de 2014 • 2.583 Palabras (11 Páginas) • 198 Visitas
ALGORITMOS Y PROGRAMAS
Resolución de problemas por computadoras
La principal razón para que las personas aprendan lenguajes de programación es utilizar un ordenador como una herramienta para la resolución de problemas. Tres fases pueden ser identificadas en el proceso de resolución :
- Fase de Identificación (qué nos plantean) - Fase de resolución del problema - Fase de implementación (realización) en un lenguaje de programación
Fase de resolución del problema
Esta fase incluye, a su vez, el análisis del problema así como el diseño y posterior verificación del algoritmo.
Análisis del problema
El primer paso para encontrar la solución a un problema es el análisis del mismo. Se debe examinar cuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los datos necesarios para conseguirlo.
Diseño del algoritmo
Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y expresado en lenguaje natural, por ejemplo el castellano, Todo algoritmo debe ser:
Metodología de Programación, Programación en C, Aplicaciones electrónicas 2 / 47
Técnicas de Programación 1ª Parte: Metodología de Programación
- Preciso: Indicando el orden de realización de cada uno de los pasos. - Definido: Si se sigue el algoritmo varias veces proporcionándole ( consistente ) los mismos datos, se deben obtener siempre los mismos resultados. - Finito: Al seguir el algoritmo, este debe terminar en algún momento, es decir tener un número finito de pasos.
Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripción pueden requerir una revisión adicional antes de que podamos obtener un algoritmo claro, preciso y completo. Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).
En un algoritmo se deben de considerar tres partes:
- Entrada: Información dada al algoritmo. - Proceso:Operaciones o cálculos necesarios para encontrar la solución del problema. - Salida: Respuestas dadas por el algoritmo o resultados finales de los procesos realizados.
Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie de un rectángulo proporcionándole su base y altura. Lo primero que debemos hacer es plantearnos las siguientes preguntas:
Metodología de Programación, Programación en C, Aplicaciones electrónicas 3 / 47
Técnicas de Programación 1ª Parte: Metodología de Programación
Especificaciones de entrada
¿Que datos son de entrada? ¿Cuántos datos se introducirán? ¿Cuántos son datos de entrada válidos?
Especificaciones de salida
¿Cuáles son los datos de salida? ¿Cuántos datos de salida se producirán? ¿Qué formato y precisión tendrán los resultados?
El algoritmo que podemos utilizar es el siguiente:
Paso 1. Entrada desde el teclado, de los datos de base y altura. Paso 2. Cálculo de la superficie, multiplicando la base por la altura. Paso 3. Salida por pantalla de base, altura y superficie calculada.
El lenguaje algorítmico debe ser independiente de cualquier lenguaje de programación particular, pero fácilmente traducible a cada uno de ellos. Alcanzar estos objetivos conducirá al empleo de métodos normalizados para la representación de algoritmos, tales como los diagrama de flujo o pseudocódigo.
Verificación de algoritmos
Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseñado y produce el resultado correcto y esperado. El modo más normal de comprobar un algoritmo es mediante su ejecución manual, usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel las modificaciones que se den estos datos y en los del resto del algoritmo, en las diferentes fases hasta la obtención de los resultados. Este proceso se conoce como prueba del algoritmo.
Metodología de Programación, Programación en C, Aplicaciones electrónicas 4 / 47
Técnicas de Programación 1ª Parte: Metodología de Programación
Fase de implementación
Una vez que el algoritmo está diseñado, representado mediante pseudocódigo y verificado se debe pasar a la fase de codificación o traducción del algoritmo a un determinado lenguaje de programación, que deberá ser completada con la ejecución y comprobación del programa en el ordenador. CODIFICACION DE ALGORITMOS EN PSEUDOCODIGO
[ Nota: Aunque las normas de programación en pseudocódigo están cuasi-estandarizadas, en este curso las enfocaremos lo máximo posible a la nomenclatura que se emplea en lenguaje C para que en el momento de programar en esta lenguaje la adaptación sea lo mas rápida posible ]
En el ejemplo del calculo del área de un rectángulo podemos observar que en la resolución de programas nos encontramos con datos que pueden ser números como por ejemplo la base o la altura y otros que pueden ser los mensajes que aparecen por pantalla ( “ La superficie es ....” ). Quiere esto decir que previamente necesitamos conocer qué TIPOS de datos puede manejar un ordenador en un programa. ¿Porqué es importante este apartado?. Podríamos pensar en lo siguiente: ¿Qué tipo de numero es el 7? → Entero ¿Qué tipo de numero es el 3? → Entero ¿Qué tipo de numero es 7/3 ? → ???
Tipos de Datos básicos
• entero: Subconjunto finito de los números enteros, cuyo rango dependerá del lenguaje en el que posteriormente codifiquemos el algoritmo y del ordenador. El rango depende de cuantos bits utilice para codificar el numero,
Metodología de Programación, Programación en C, Aplicaciones electrónicas 5 / 47
Técnicas de Programación 1ª Parte: Metodología de Programación
normalmente 2 bytes, Para números positivos, con 16 bits se pueden almacenar 216= 65536 números enteros diferentes: de 0 al 65535, y de -32768 al 32767 para números con signo. Por ejemplo 2, 14, -199,.... Operaciones asociadas al tipo entero: Como norma general las operaciones asociadas a un tipo cualquiera serán aquellas cuyo resultado sea un elemento del mismo tipo, por tanto: +, - , *, división→ div (cociente) , modulo→ mod (resto), sucesor, predecesor, es_par * (*) es_par(n)→ si n es par devuelve un 0 sino, un 1.
• real: Subconjunto de los números reales limitado
...