Transcription of Tema 5 Algoritmos y estructuras de programaci¶on
1 Tema 5 Algoritmos y estructuras deprogramaci onVersi on: 2 de marzo de Fases de creaci on de un programaEl proceso de resoluci on de problemas en un ordenador conduce a la escritura de unprogramaysu ejecuci on. Las fases en el desarrollo de un programa pueden resumirse de la siguiente el problemaconsiste en conocer perfectamente en qu e consiste y qu e resultados sedesean onde la resoluci on del problema, dividi endolo, si es complicado, en una secuencia deetapas m as simples. Esta fase se lleva a cabo EN UN PAPEL, estableciendo lo m as claramenteposible la finalidad de cada etapa, los datos que se necesitan de entrada, los datos que producir anen salida, losalgoritmos(ver la Secci on ) que se utilizar an, ondel c odigo fuente, es decir, escritura del mismo utilizando un editor de textos simple (sinformato) y un lenguaje de programaci on.
2 Los programas fuente ser an almacenados en ficherosde texto, normalmente en el disco duro del on y ejecuci ondel programa al lenguaje m on de erroresdel programa. Los errores se corregir an en el c odigo fuente, repitiendolos pasos 3 y 4 tantas veces como sea necesario. Si se producen errores en la l ogica del programa,es decir, si el programa funciona pero produce resultados incorrectos, hay que modificar elalgoritmo volviendo al paso 2. Estos errores son los m as dif ciles de on. Una vez que el programa funcione correctamente, es convenienterevisarelc odigo fuente para ordenarlos, eliminar c alculos innecesarios e incluir las l neas de comentarionecesarias, que normalmente deben incluir unasbrevesexplicaciones al principio del c odigosobre la finalidad del programa y sus argumentos de entrada y de AlgoritmosUn ordenador es capaz de realizar s olo determinadas acciones sencillas, tales como sumar, com-parar o transferir datos, pero los problemas que normalmente interesa resolver son m as resolver un problema real es necesario.
3 En primer lugar, encontrar un m etodo de resoluci on y,31 Algoritmos y estructuras de programaci on32posteriormente, determinar la sucesi on de acciones sencillas (susceptibles de ser ejecutadas por unordenador) en que se descompone dicho m todos los m etodos de soluci on de un problema pueden ser puestos es pr actica en un que un procedimiento pueda ser implantado en un ordenador debe ser:Preciso:estar compuesto de pasosbien definidos(no ambiguos) :si se sigue dos veces, se obtiene el mismo resultado cada :tener un n umero finito de procedimiento o m etodo para resolver un problema que cumpla los requisitos anteriores se diceque es unalgoritmo.
4 Se puede dar por tanto la siguiente definici on:Unalgoritmoes un m etodo para resolver un problema mediante una secuencia de pasosbien definidos, ordenados y que se pueda ejecutar el algoritmo es preciso, adem as, que se disponga de las herramien-tas adecuadas para llevar a cabo cada uno de los pasos. Si no es as , estos deber an, a su vez, serdescompuestos en una secuencia (algoritmo) de pasos m as simples que s se puedan llevar a de ordenadores una sucesi on de ordenes que describen un algoritmo,escritas de forma que puedan ser entendidas por el un algoritmo (y por tanto en un programa) se distinguen las siguientes acciones:Entrada:es la informaci on de partida que necesita el algoritmo para :es el conjunto de todas las operaciones a :son los resultados ejemplo elemental es el Algoritmo una taza de t : tetera, taza, bolsa de t eSalida.
5 Taza de t eInicioTomar la teteraLlenarla de aguaEncender el fuegoPoner la tetera en el fuegoEsperar a que hierva el aguaTomar la bolsa de t eIntroducirla en la teteraEsperar 1 minutoEchar el t e en la tazaFinAlgoritmos y estructuras de programaci Representaci on de algoritmosLas dos herramientas m as utilizadas com unmente para describir Algoritmos son:Diagramas de flujo:son representaciones gr aficas de secuencias de pasos a realizar. Cada operaci onse representa mediante un s mbolo normalizado el Instituto Norteamericano de Normalizaci on(ANSI - American National Standars Institute).
6 Las l neas de flujo indican el orden de ejecuci de los s mbolos principales se muestran en la Figura , como son:Inicio/Findelalgoritmo,Lectura/Escri turade datos que el programa necesita o genera (por ejemplo,lecturade datos que se teclean o escritura de datos en un fichero);Procesoconjunto de instruccionessecuenciales;Decisi ones una bifurcaci on en el flujo del algoritmo en base a que se verifique ono cierta condici on (ver la Secci on ).Los diagramas de flujo suelen ser usados s olo para representar Algoritmos peque nos, ya queabarcan mucho nNoS Figura : S mbolos en diagramas de odigos:describen un algoritmo de forma similar a un lenguaje de programaci on pero sin surigidez, de forma m as parecida al lenguaje natural.
7 Presentan la ventaja de ser m as compactosque los diagramas de flujo, m as f aciles de escribir para las instrucciones complejas y m as f acilesde transferir a un lenguaje de programaci on. El pseudoc odigo no est a regido por ning un est estos apuntes usaremos las palabrasLEER/IMPRIMIR para representar las acciones delectura de datos(el programa recibe datos desde alg un sitio) ysalida de datos(el programaescribe informaci on en alg un medio)El Algoritmo y la Figura muestran respectivamente el pseudoc odigo y el diagrama deflujo del algoritmo para calcular la altura de una persona en pulgadas y pies a partir de la altura encent metros introducida por el y estructuras de programaci on34 Algoritmo una altura en pulgadas (1 pulgada= cm)
8 Y pies (1 pie=12pulgadas), a partir de la altura en cent metros, que se introduce por el IMPRIMIR Introduce la altura en centimetros: 2- LEER: altura3- CALCULAR pulgadas= CALCULAR pies=pulgadas/125- IMPRIMIR La altura en pulgadas es: , pulgadas6- IMPRIMIR La altura en pies es : , piesFinpies=pulgadas/12pulgadas= , piesFinFigura : Diagrama de flujo para determinar la altura de una persona en pulgadas y pies a partirde la altura en cent metros introducida por el Estructura secuencialEs aquella en la que una acci on (instrucci on) sigue a la otra en el orden en el que est an representaci on y el diagrama de flujo se muestra en la Figura Los Algoritmos y sonejemplos de Algoritmos on 1 Instrucci on 2 Instrucci on n 2 Instrucci n 1 Instrucci n 3 Figura : Estructura secuencial de y estructuras de programaci estructuras de control.
9 Condicionales y buclesSon parte fundamental de cualquier lenguaje. Sin ellas, las instrucciones de un programa s olopodr an ejecutarse en el orden en que est an escritas (orden secuencial). Las estructuras de controlpermiten modificar este orden. Hay dos categor as de estructuras de control:Condicionales o bifurcaciones:permiten que se ejecuten conjuntos distintos de instrucciones, enfunci on de que se verifique o no determinada condici o repeticiones:permiten que se ejecute repetidamente un conjunto de instrucciones, bienun n umero pre-determinado de veces, o bien hasta que se verifique una determinada condici t erminos de un lenguaje de programaci on, que se verifique o no una condici on se traduce enque una (adecuada)expresi on l ogicatome el valorVERDADERO(TRUE) o tome el valorFALSO(FALSE).
10 En los casos m as sencillos y habituales la condici on suele ser una comparaci on entre dos datos, comopor ejemplo: sia < bhacer una cosa y en caso contrario hacer otra continuaci on se describen las distintas estructuras de control. Para cada una de ellas se describeel diagrama de flujo y la sintaxis de la sentencia correspondiente en lenguaje MATLAB. Obs erveseque todas ellas tienen una unica entraday una unica condicional simple:IFEste es el tipo m as sencillo de estructura condicional. Sirve para implementar acciones condicionalesdel tipo siguiente:Sise verifica una determinadacondici on, ejecutar una serie de instrucciones y luego lacondici onNO se cumple, NO se ejecutan dichas instrucciones y se sigue Condici nInstruccionesFigura.