Vous êtes sur la page 1sur 27

Unidad 2

Algoritmos y Lenguajes de Programacin Desarrollo de la lgica algortmica

Metodologa para la solucin de problemas.

L.I. Talia Tllez Bolaos

La principal razn para que las personas aprendan lenguajes de programacin es utilizar un ordenador como una herramienta para la resolucin de problemas.
Anlisis del problema El primer paso para encontrar la solucin a un problema es el anlisis 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.

Algoritmo
Es un mtodo para la resolucin de problemas. Es un conjunto de pasos a seguir para la solucin a un problema. Es una serie finita de instrucciones para realizar una tarea. Formalmente: Es un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.

Diseo del algoritmo Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigedades, que conducen a la resolucin de un problema dado y expresado en lenguaje natural, por ejemplo el castellano, Todo algoritmo debe ser:
-Preciso: Indicando el orden de realizacin de cada uno de los pasos.

- Definido: Si se sigue el algoritmo varias veces proporcionndole ( consistente ) los mismos datos, se deben obtener siempre los mismos resultados. - Finito: Al seguir el algoritmo, este debe terminar en algn momento, es decir tener un nmero finito de pasos.

Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripcin pueden requerir una revisin adicional antes de que podamos obtener un algoritmo claro, preciso y completo. Este mtodo de diseo de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como mtodo descendente (top-down).

Diseo del algoritmo


La solucin de un problema complejo puede requerir muchos pasos, es necesario dividir el problema en subproblemas ms sencillos de resolver. Este mtodo se denomina divide y vencers y es aplicable a la resolucin y escritura de algoritmos y programas para computadora. Este mtodo de divisin de un problema en otros subproblemas ms sencillos se puede expresar para conseguir su solucin en una computadora, mediante el mtodo denominado diseo descendente. El proceso de la rotura de un problema principal en etapas o subproblemas ms sencillos se denomina refinamiento paso a paso o sucesivos.

En un algoritmo se deben de considerar tres partes: -Entrada: Informacin dada al algoritmo. -Proceso: Operaciones o clculos necesarios para encontrar la solucin 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 rectngulo proporcionndole su base y altura. Lo primero que debemos hacer es plantearnos las siguientes preguntas:

Especificaciones de entrada Que datos son de entrada? Cuntos datos se introducirn? Cuntos son datos de entrada vlidos? Especificaciones de salida Cules son los datos de salida? Cuntos datos de salida se producirn? Qu formato y precisin tendrn 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. Clculo de la superficie, multiplicando la base por la altura. Paso 3. Salida por pantalla de base, altura y superficie calculada. El lenguaje algortmico debe ser independiente de cualquier lenguaje de programacin particular, pero fcilmente traducible a cada uno de ellos. Alcanzar estos objetivos conducir al empleo de mtodos normalizados para la representacin de algoritmos, tales como los diagrama de flujo o pseudocdigo.

Verificacin de algoritmos Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseado y produce el resultado correcto y esperado. El modo ms normal de comprobar un algoritmo es mediante su ejecucin 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 obtencin de los resultados. Este proceso se conoce como prueba del algoritmo.

Implementacin Una vez que el algoritmo est diseado, representado mediante pseudocdigo y verificado se debe pasar a la fase de codificacin o traduccin del algoritmo a un determinado lenguaje de programacin, que deber ser completada con la ejecucin y comprobacin del programa en el ordenador.

CODIFICACION DE ALGORITMOS EN PSEUDOCODIGO


En el ejemplo del calculo del rea de un rectngulo podemos observar que en la resolucin de programas nos encontramos con datos que pueden ser nmeros 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?. Podramos 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 ? ???

Diseo de programas Anlisis del problema Diseo del algoritmo Verificacin manual del algoritmo En la computadora Codificacin del algoritmo Ejecucin del programa Verificacin del programa Mantenimiento (documentacin) Anlisis Diseo (descendente, refinamiento paso a paso) Codificacin Ejecucin Prueba Mantenimiento

Fases para resolver un problema computable

Anlisis del problema

Ejemplo: calcular el rea de un rectngulo Anlisis del problema El clculo del rea del rectngulo se puede dividir en: Entrada de datos (altura, base) Proceso: Clculo del rea (= base x altura) Salida de datos (base, altura, rea)

HERRAMIENTAS DE PROGRAMACION
Las herramientas de programacin utilizadas como lenguajes algortmicos son: Pseudocdigo: es un lenguaje algortmico, muy parecido al espaol pero ms conciso que permite la redaccin rpida del algoritmo. Diagramas de flujo: ha sido la herramienta de programacin por excelencia, y an hoy sigue siendo muy utilizada. Es fcil de disear pues el flujo lgico del algoritmo se muestra en un diagrama en lugar de palabras.

Pseudocdigo

Es un lenguaje de pseudoprogramacin, es decir, muy parecido a un lenguaje de programacin. El pseudocdigo es muy fcil de utilizar, ya que es muy similar al espaol. Algunas palabras utilizadas en el pseudocdigo: Inicio Fin Leer Escribir Asignar (x y+z)

Ejemplo de pseudocdigo Programa CalculoAreaRectangulo Inicio leer; base, altura areabase x altura escribir; base, altura, area Fin

Diagramas de flujo
Un diagrama de flujo utiliza smbolos estndar

en el que cada paso del algoritmo se visualiza dentro del smbolo y en el orden en que estos pasos se ejecutan, se indica conectndolos con flechas llamadas lneas de flujo, ya que indican el flujo lgico del algoritmo. Los smbolos utilizados en los diagramas de flujo han sido estandarizados por la ANSI (American National Institute) y por la ISO (International Standard Organization).

Smbolos de diagramas de flujo

Ejemplo: Diagrama de flujo

Solucin de un problema computable