jueves, 13 de agosto de 2015

Resumen de algoritmos y programas del libro Fundamentos de Programación de Luis Joyanes Aguilar.

Resolución de problemas por computadoras

La principal razón para que las personas aprendan lenguajes de programación es utilizar la computadora como una herramienta para la resolución de problemas. Dos fases pueden ser identificadas en el proceso de resolución de problemas ayudados por computadoras:

·         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

La palabra algoritmo deriva del nombre del famoso matemático y astrónomo árabe Al-khowarizmi (siglo IX) que escribió un conocido tratado sobre la manipulación de números y ecuaciones titulado Kitab al-jabr w’almugabala.
Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado y expresado en lenguaje natural, por ejemplo el castellano.

Todo algoritmo debe ser:

·         Preciso. Indicando el orden de realización de cada uno de los pasos.
·         Definido. Si se sigue el algoritmo varias veces proporcionándole 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 numero finito de pasos.

Para diseñar un algoritmo de debe comenzar por identificar las tareas más importantes para resolver l problema a disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripción de actividades deberán ser refinados, añadiendo más detalles a los mismos e incluso, algunos de ellos, pueden requerir un refinamiento adicional antes de que podamos obtener un algoritmo claro, preciso y completo. Este método de diseño de los algoritmos en etapas, yendo de los conceptos generales a los detalle a través de refinamientos sucesivos, se conoce como método descendente (top-Down). En un algoritmo de 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 cálculos.

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 lo posible rango de valores y anotando en una hoja de papel las modificaciones que se producen en las diferentes fases hasta la obtención de los resultados. Este proceso se conoce como prueba de algoritmo.

Fase de implementación
Una vez que el algoritmo está diseñado, representan gráficamente mediante una herramienta de programación (diagrama de flujo, Diagrama N-S o pseudocodigo) y verificando se debe pasar a la fase de codificación, 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.

Datos
Dato es la expresión general que describe los objetos con los cuales opera el algoritmo.

Constantes
Son datos cuyo valor no cambia durante todo el desarrollo del algoritmo. Las constantes podrán ser literales o con nombres.

Variables
Una variable es un objeto cuyo valor puede cambiar durante el desarrollo del algoritmo. Se identifica por su nombre y por su tipo. Que podrá ser cualquiera, y es el que determina el conjunto de valores que podrán tomar la variable. En los algoritmos se deben declarar las variables. Cuando se traduce el algoritmo a un lenguaje de programación y se ejecuta el programa resultante, la declaración de cada una de las variables originara que se reserve un determinado espacio en memoria etiquetado con el correspondiente identificador.

Expresiones
Una expresión es una combinación de operadores y operadores. Los operandos podrán ser constantes, variables u otras expresiones y los operadores de cadena, aritméticos, relaciones o lógicos.

Funciones
En los lenguajes de programación existen ciertas funciones predefinidas o internas que aceptan unos argumentos y producen un valor denominado resultado.

Reglas para la construcción de identificadores

Identificadores son los nombres que se dan a las constantes simbólicas, variables, funciones, procedimientos, u otros objetos que manipula el algoritmo.