Sunteți pe pagina 1din 46

Algoritmo: Es un mtodo para resolver un problema mediante una serie de pasos definidos, precisos y finitos.

Los algoritmos se pueden expresar por: Frmulas Diagramas de flujo Pseudo cdigo

Propiedades de los algoritmos


Siempre debe terminar. Debe contener instrucciones concretas, sin ninguna ambigedad. Todos sus pasos deben ser simples y tener un orden definido. Debe funcionar sean cuales sean los datos de entrada.

Propiedades de los algoritmos


Debe ser eficiente y rpido -> Hay que Optimizar -> Para un problema existen mltiples soluciones, y debemos escoger aquella que consuma menos tiempo y recursos. Es independiente de la mquina y del lenguaje de programacin que se vaya a utilizar. Un algoritmo puede implementarse (escribirse) en cualquier lenguaje de programacin.

Diagrama de flujo
Es una representacin grfica de un algoritmo mediante una serie de smbolos que contienen en su interior los pasos del algoritmo unidos por flechas que indican la secuencia en que se ejecutan. Tiene un nico punto de inicio y un nico punto de trmino. Adems, todo camino de ejecucin debe permitir llegar desde el inicio hasta el trmino.

A menudo se piensa que un algoritmo sencillo no es muy eficiente. Sin embargo, la sencillez es una caracterstica muy interesante a la hora de disear un algoritmo, pues facilita su verificacin, el estudio de su eficiencia y su mantenimiento.

Las siguientes son acciones previas a la realizacin del diagrama de flujo: Identificar las ideas principales a ser incluidas en el diagrama de flujo. Definir qu se espera obtener del diagrama de flujo. Identificar quin lo emplear y cmo. Establecer el nivel de detalle requerido. Determinar los lmites del proceso a describir.

Los pasos a seguir para construir el diagrama de flujo son:


Establecer el alcance del proceso a describir. De esta manera quedar fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente. Identificar y listar las principales actividades/subprocesos que estn incluidos en el proceso a describir y su orden cronolgico. Si el nivel de detalle definido incluye actividades menores, listarlas tambin.

Identificar y listar los puntos de decisin. Construir el diagrama respetando la secuencia cronolgica y asignando los correspondientes smbolos. Asignar un ttulo al diagrama y verificar que est completo y describa con exactitud el proceso elegido.

Ventajas de los diagramas de flujo:


Favorecen la comprensin del proceso a travs de mostrarlo como un dibujo. El cerebro humano [ reconoce fcilmente los dibujos. Un buen diagrama de flujo reemplaza varias pginas de texto. Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los re-procesos , los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisin.

Tipos de diagramas de flujos


Formato vertical: En l el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la informacin que se considere necesaria, segn su propsito.

Formato horizontal: En l, el flujo o la secuencia de las operaciones, va de izquierda a derecha. Formato panormico: El proceso entero est representado en una sola carta y puede apreciarse de una sola mirada mucho ms rpido que leyendo el texto, lo que facilita su comprensin, aun para personas no familiarizadas.

Simbologa bsica de diagramas de flujo

Ejemplo de diagrama de flujo

Diagrama para reparar una lmpara

Diagrama de flujo para diseo grfico

Diagrama de flujo para determinar si un nmero es par o impar

Pseudocdigo
El pseudocdigo (falso lenguaje) es una descripcin de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales. Es utilizado para describir algoritmos en libros y publicaciones cientficas, y como producto intermedio durante el desarrollo de un algoritmo.

El pseudocdigo en general es comprensible sin necesidad de conocer o utilizar un entorno de programacin especfico, y es a la vez suficientemente estructurado para que su implementacin se pueda hacer directamente a partir de l. El principal objetivo del pseudocdigo es el de representar la solucin a un algoritmo de la forma ms detallada posible, y a su vez lo ms parecida posible al lenguaje que posteriormente se utilizara para la codificacin del mismo.

Las principales caractersticas de este lenguaje son:


Se puede ejecutar en un ordenador Es una forma de representacin sencilla de utilizar y de manipular. Facilita el paso del programa al lenguaje de programacin. Es independiente del lenguaje de programacin que se vaya a utilizar. Es un mtodo que facilita la programacin y solucin al algoritmo del programa.

EJEMPLO 1 Pseudocdigo: si (calificacin 6) inicio imprimir (ALUMNO APROBADO) si (calificacin 9) imprimir (TIENE CALIFICACIN SOBRESALIENTE); fin sino imprimir (ALUMNO REPROBADO);

Lenguaje C: if (CALIF >= 6) { printf (ALUMNO APROBADO \n); if (CALIF >= 9) printf (TIENE CALIFICACIN SOBRESALIENTE \n); } else printf (ALUMNO REPROBADO \n );

ESTRUCTURA
La estructura es el modo en que se pueden agrupar y organizar las acciones de un programa. Se reconocen tres estructuras bsicas: la secuencia, la seleccin y la iteracin.

El teorema del programa estructurado


Este teorema demostrado por BhmJacopini, demuestra que todo programa puede escribirse utilizando nicamente las tres instrucciones de control siguientes: Secuencia Instruccin condicional. Iteracin (bucle de instrucciones) con condicin al principio.

Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programacin tienen un mayor repertorio de estructuras de control, stas pueden ser construidas mediante las tres bsicas.

Estructura secuencial
Una estructura de programa es secuencial si se ejecutan una tras otra a modo de secuencia, es decir que una instruccin no se ejecuta hasta que finaliza la anterior.

Ejemplo: INPUT x INPUT y auxiliar= x x= y y= auxiliar PRINT x PRINT y Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de una variable auxiliar, intermedia.

1 Guardamos una copia del valor de x en auxiliar. 2 Guardamos el valor de y en x, se pierde el valor anterior de x pero no importa porque tenemos una copia en auxiliar. 3 Guardamos en y el valor de auxiliar, que es el valor inicial de x. El resultado es el intercambio de los valores de x e y, en tres operaciones secuenciales.

Estructura selectiva o de seleccin


La estructura selectiva permite la realizacin de una instruccin u otra segn un criterio, solo una de estas instrucciones se ejecutara. Ejemplo: IF a > b THEN PRINT a ; " es mayor que " ; b ELSE PRINT a ; " no es mayor que " ; b

Estructura selectiva o de seleccin


Esta instruccin selectiva puede presentar dos mensajes, uno a es mayor que b, y el otro a no es mayor que b, solo uno de ellos ser presentado, segn el resultado de la comparacin de a y b, si el resultado de a > b es cierto, se presenta el primer mensaje, si es falso el segundo.

Estructura selectiva o de seleccin


Las palabras IF, ELSE, ELSE IF son propias de la instruccin (palabras reservadas) que tienen un significado en el lenguaje, sirven de separadores, y el usuario no debe utilizarlas salvo para este fin.

IF seala el comienzo de la instruccin condicional, y se espera que despus est la condicin de control de la instruccin. ELSE separa la instruccin que se ejecutar si la condicin es cierta de la que se ejecutar si es falsa. ELSE IF separa tambin la instruccin que se ejecutar si la condicin inicial del IF resulta falsa y plantea una nueva condicin a evaluar.

Ampliemos un poco el ejemplo anterior: IF a > b PRINT a ; " es mayor que " ; b ELSE IF a < b PRINT a ; " es menor que " ; b ELSE PRINT a ; " es igual que " ; b

Este ejemplo nos permite considerar situaciones en las que tenemos ms de dos alternativas. En este caso hemos considerado tres, pero hay situaciones en las que deben considerarse ms casos y para ellos se puede repetir las veces que queramos la parte ELSE IF.

Estructura iterativa
Un bucle iterativo o iteracin de una secuencia de instrucciones, hace que se repitan mientras se cumpla una condicin, en un principio el nmero de iteraciones no tiene porque estar determinado.

Ejemplo: a= 0 b= 7 WHILE b > a PRINT a a= a + 1 PRINT ya termin el ciclo

Esta instruccin tiene la palabra reservada WHILE. WHILE: seala el comienzo del bucle y despus de esta palabra se espera la condicin de repeticin, si la condicin es cierta se pasa al cuerpo del bucle, si no al final de la instruccin mientras. El bucle mientras, se repite mientras la condicin sea cierta, esta condicin se comprueba al principio por lo que el cuerpo del bucle puede que no se ejecute nunca, cuando la condicin es falsa en un principio, o que se repita tantas veces como sea necesario, mientras la condicin sea cierta.

En el ejemplo tenemos dos variables a y b que al iniciarse el bucle tienen los valores a=0 y b=7. La condicin del bucle es b > a. Cuando a=0 y b=7. la condicin es cierta, en el cuerpo del bucle se escribe el valor de a en pantalla y se incrementa a en una unidad. Entonces a=1 y b=7. ... ... Cuando a=6 y b=7. la condicin es cierta, se escribe el valor de a en pantalla y se incrementa en una unidad. Resultando que a=7 y b=7. Entonces la condicin es falsa y la instruccin WHILE finaliza. La salida por pantalla de este ejemplo seria 0 1 2 3 4 56

Anidamiento
El cuerpo de cualquier estructura puede ser una instruccin simple u otra estructura, que a su vez puede anidar a otra. Ejemplo: si (calificacin 6) inicio imprimir (ALUMNO APROBADO) si (calificacin 9) imprimir (TIENE CALIFICACIN SOBRESALIENTE); fin sino imprimir (ALUMNO REPROBADO);

Ventajas de la programacin estructurada


1. Los programas son ms fciles de entender, ya que pueden ser ledos de forma secuencial, sin necesidad de hacer seguimiento a saltos de lnea (GOTO) dentro de los bloques de cdigo para entender la lgica. 2. La estructura del programa es clara, puesto que las instrucciones estn ms ligadas o relacionadas entre s.

3. Reduccin del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura ms visible, por lo que los errores se pueden detectar y corregir ms fcilmente. 4. Reduccin de los costos de mantenimiento de los programas. 5. Programas ms sencillos y ms rpidos (ya que es ms fcil su optimizacin). 6. Los bloques de cdigo son auto explicativos, lo que facilita la documentacin.

7. Los GOTO se reservan para construir las instrucciones bsicas. Aunque no se usan de forma directa, por estar prohibida su utilizacin, estn incluidas implcitamente en las instrucciones de seleccin e iteracin. 8. Un programa escrito de acuerdo a estos principios no solamente tendr una mejor estructura sino tambin una excelente presentacin. 9. La programacin estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicacin, esfuerzo y creatividad.

Inconvenientes de la programacin estructurada


El principal inconveniente de este mtodo de programacin es que se obtiene un nico bloque de programa, que cuando se hace demasiado grande puede resultar problemtico su manejo; esto se resuelve empleando la programacin modular, definiendo mdulos interdependientes programados y compilados por separado (en realidad esto no es necesario, pero es recomendable para su mantenimiento y funcionalidad).

En realidad, cuando se programa hoy en da (inicios del siglo XXI) se suelen utilizar, tanto las tcnicas de programacin estructurada como las de programacin modular, de forma conjunta y por lo tanto es posible que cuando uno haga referencia a la programacin estructurada est considerando tambin las tcnicas de modularizacin. Un mtodo un poco ms sofisticado es la programacin por capas, en la que los mdulos tienen una estructura jerrquica en la que se pueden definir funciones dentro de funciones o de procedimientos.

FUNCIN:
Una funcin es un grupo de instrucciones cuya ejecucin se lleva a cabo cada vez que se invoca el nombre de la funcin con valores de entrada y luego de realizar un clculo regresa un valor hasta la lnea donde se hizo la llamada a la funcin. Toda funcin regresa un nico valor.

PROCEDIMIENTO:
Cuando una funcin no regresa valor alguno se llama procedimiento, en todo caso el valor que regresa es nulo. Un procedimiento es un grupo de instrucciones, que como su nombre lo dice realiza un procedimiento y nada mas, cuya ejecucin se lleva a cabo cada vez que se invoca el nombre del procedimiento, posiblemente con algunos valores como argumentos. Todo procedimiento no regresa valores, sino que hace algo como por ejemplo ordenar, imprimir, intercambiar valores, etc.

S-ar putea să vă placă și