Sunteți pe pagina 1din 42

DESARROLLO DE LOGICA ALGORITMICA Salvador Gurrola Velazquez salvador.gurrola@yahoo.com.

mx

Desarrollo de lgica algortmica


2.1. Metodologa para la solucin de problemas. 2.2. Metodologa para el diseo de software: Top down, Bottom up, modular y programacin estructurada. 2.3. Definicin de lenguajes algortmicos. 2.3.1 Elementos y reglas de la representacin grafica y manuscrita de los algoritmos (diagrama de flujo, diagrama N-S, diagrama estructurado y pseudocdigo. 2.3.2 Implementacin de algoritmos secuenciales utilizando notacin algebraica) 2.4. Pruebas y depuracin

METODOLOGIA PARA LA SOLUCION DE PROBLEMAS


DEFINICION DEL PROBLEMA ANALISIS DEL PROBLEMA DISEO DEL ALGORITMO CODIFICACION PRUEBA Y DEPURACION DOCUMENTACION MANTENIMIENTO

METODOLOGIA PARA EL DISEO DE SOFTWARE


Top Down Botton Up Warnier Orr

METODOLOGIA PARA EL DISEO DE SOFTWARE


Top Down Es una tcnica para disear que consiste en tomar el problema en forma inicial como una cuestin global y descomponerlo sucesivamente en problemas ms pequeos y por lo tanto, de solucin ms sencilla. La descomposicin del problema original (y de las etapas subsecuentes), puede detenerse cuando los problemas resultantes alcanzan un nivel de detalle que el programador o analista pueden implementar fcilmente.

METODOLOGIA PARA EL DISEO DE SOFTWARE


El problema se descompone en etapas o estructuras jerrquicas, de modo que se puede considerar cada estructura como dos puntos de vista : lo que hace?, y cmo lo hace ?. Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente forma : nivel n : Vista desde el exterior. "lo que hace ?" Nivel n+1 : Vista desde el interior. "cmo lo hace ?"

METODOLOGIA PARA EL DISEO DE SOFTWARE


Ejemplo de un diseo descendente (top-down ) de un control de almacn :

METODOLOGIA PARA EL DISEO DE SOFTWARE


Botton Up

Esta tcnica consiste en partir de los detalles ms precisos del algoritmo completando suscesivamente mdulos de mayor complejidad, se recomienda cuando ya se cuenta con experiencia y ya se sabe lo que se va a hacer. Conforme se va alcanzando el desarrollo de mdulos ms grandes se plantea como objetivo final la resolucin global del problema. Este mtodo es el inverso del anterior y es recomendable cuando se tiene un modelo a seguir o se cuenta con amplia experiencia en la resolucin de problemas semejantes. La tcnica de Botton Up es frecuentemente utilizada para la realizacin de pruebas a sistemas ya concluidos.

METODOLOGIA PARA EL DISEO DE SOFTWARE


Warnier Orr Es una tcnica que utiliza una representacin semejante a la de cuadros sinpticos para mostrar el funcionamiento y organizacin de los elementos que conforman el algoritmo. Bsicamente, utiliza una notacin de llaves para organizar los mdulos y se auxilia en la siguiente simbologa para indicar operaciones de control. Nota : Los diagramas Warnier Orr se leen de izquierda a derecha y de arriba hacia abajo.

METODOLOGIA PARA EL DISEO DE SOFTWARE


Ejemplo de un diagrama de Warnier Orr, de un control de almacn

DEFINICION DE LENGUAJE ALGORITMICO

Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un proceso.

TIPOS DE LENGUAJES ALGORITMICOS

Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).

TIPOS DE LENGUAJES ALGORITMICOS


Diagramas de Flujo Se basan en la utilizacin de diversos smbolos para representar operaciones especficas. Se les llama diagramas de flujo porque los smbolos utilizados se conectan por medio de flechas para indicar la secuencia de operacin. La simbologa utilizada para la elaboracin de diagramas de flujo es variable y debe ajustarse a un patrn definido previamente.

TIPOS DE LENGUAJES ALGORITMICOS


SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO

TIPOS DE LENGUAJES ALGORITMICOS


SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO

TIPOS DE LENGUAJES ALGORITMICOS


SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO

EJERCICIOS
IMPLEMENTACION DE ALGORITMOS

PRUEBAS Y DEPURACION

Ejemplo: Calcular el salario neto de un trabajador en funcin del nmero de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al salario bruto en concepto de impuestos (20 por 100).

Ejemplo: Realizar un diagrama de flujo que permita mostrar en pantalla un mensaje de mayora o minora de edad segn sea el caso para un nombre especfico.

TIPOS DE LENGUAJES ALGORITMICOS


Pseudocdigo Es un lenguaje de especificacin de algoritmos. El uso de tal lenguaje hace el paso de codificacin final (esto es, la traduccin a un lenguaje de programacin) relativamente fcil. El pseudocdigo naci como un lenguaje similar al ingls y era un medio representar bsicamente las estructuras de control de programacin estructurada. Se considera un primer borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de programacin. Cabe sealar que el pseudocdigo no puede ser ejecutado por una computadora.

TIPOS DE LENGUAJES ALGORITMICOS


Pseudocdigo
La ventaja del pseudocdigo es que en su uso en la planificacin de un programa, el programador se puede concentrar en la lgica y en las estructuras de control y no preocuparse de las reglas de un lenguaje especfico. Es tambin fcil modificar el pseudocdigo si se descubren errores o anomalas en la lgica del programa, adems de todo esto es fcil su traduccin a lenguajes como pascal, COBOL, C, FORTRAN o BASIC. El pseudocdigo utiliza para representar las acciones sucesivas palabras reservadas en ingls (similares a sus homnimos en los lenguajes de programacin), tales como star,begin, end, stop, if-then-else, while, repeat-until.etc

TIPOS DE LENGUAJES ALGORITMICOS


Pseudocdigo
Secuencia Inicio accin1 accin2 : accin n Fin

TIPOS DE LENGUAJES ALGORITMICOS Decisin Simple si condicin entonces accin1 accin2 : accin n

TIPOS DE LENGUAJES ALGORITMICOS


Decisin Doble si condicin then accin1 accin2 : en caso contrario accin1 acci2

TIPOS DE LENGUAJES ALGORITMICOS


Iteraccin Fija para ar. Entera inicial hasta final hacer accin1 accin2 : accin n

TIPOS DE LENGUAJES ALGORITMICOS


Iteraccin Condicional al inicio mientras condicin hacer accin1 accin2 : accin n

TIPOS DE LENGUAJES ALGORITMICOS


Iteraccin Condicional al final Repetir accin1 accin2 : accin n Hasta que condicin

TIPOS DE LENGUAJES ALGORITMICOS


Iteraccin Seleccin casos selector de valor1 : accin1 accin2 valor2 : accin1 accin2 valor n : accin1 accin2

EJERCICIOS
Ejercicio : Se requiere preguntar dos valores, y a continuacin ofrecer un men con las operaciones bsicas (+, -, *, /). Despus de presentar el resultado se ofrecer la posibilidad de una nueva operacin.
Declaracin de variables : Real : X, Y, RESPUESTA Entero : OPCION Carcter : OP Inicio Repetir escribir(Primer valor : ) leer(X) escribir(Segundo valor : ) leer(Y)

EJERCICIOS
escribir(1) Suma ) escribir(2) Resta ) escribir(3) Multiplicacin ) escribir(4) Divisin ) escribir(Qu operacin deseas realizar ? : ) leer(OPCION) casos OPCION de 1 : RESULTADO X+Y 2 : RESULTADO X-Y 3 : RESULTADO X*Y 4 : si Y=0 entonces escribir( Error ) RESULTADO 0 en caso contrario RESULTADO X/Y escribir (Resultado : ,RESULTADO) escribir(Deseas otro clculo : [S/N] ) leer(OP) Hasta que RES = N Fin

EJERCICIOS
Ejercicio : Preguntar un nombre y repetirse en pantalla tantas veces como se desee. (preguntar cantidad de repeticiones), indicando el nmero de repeticin.
Declaracin de variables Cadena : nom entero : x, n Inicio escribir(Nombre : ) leer(nom) escribir(Cuntas veces quieres repetirlo ? : ) leer(n) para x 1 hasta n hacer escribir(x.- , nom) Fin

Estructura Secuencial
Es aqulla en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as suscesivamente hasta el fin del proceso. La estructura secuencial tiene una entrada y una salida. Su representacin grfica es la siguiente:

PSEUDOCODIGO DE UNA ESTRUCTURA SECUENCIAL Inicio : : acciones : : fin

Estructura Secuencial
Ejemplo: Calcular el salario neto de un trabajador en funcin del nmero de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al sueldo bruto en concepto de impuestos (20 por 100).

Pseudocdigo Inicio {clculo salario neto} leer nombre, horas, precio_hora salario_bruto horas * precio impuestos 0.20 * salario_bruto salario_neto salario_bruto_impuestos escribir nombre, salario_bruto, salario_neto_bruto, salario_neto Fin

Condicionales
La especificacin formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripcin ms complicada que una lista sencilla de instrucciones. Este es el caso cuando existen un nmero de posibles alternativas resultantes de la evaluacin de una determinada condicin. Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah que se suelan denominar tambin estructuras de decisin o alternativas. En las estructuras selectivas se evala una condicin y en funcin del resultado la misma se realiza una opcin u otra. Las condiciones se especifcan usando expresiones lgicas. La representacin de una estructura selectiva se hace con palabras en pseudocdigo (if, then, else o bien en espaol si, entonces, sino), con una figura geomtrica en forma de rombo o bien con un tringulo en el interior de una caja rectangular. Las estructuras selectivas o alternativas pueden ser: Simples Mltiples

Alternativa Simple (si-entonces/if-then)


La estructura alternativa simple si-entonces (en ingls if-then o bien IF-THEN ) ejecuta una determinada accin cuando se cumple una determinada condicin. La seleccin si-entonces evala la condicin y . . . Si la condicin es verdadera, entonces ejecuta la accin S1 (o acciones caso de ser S1 una accin compuesta y constar de varias acciones). Si la condicin es falsa, entonces no hacer nada. A continuacin se muestra la grfica de la estructura condicional simple.
Pseudocdigo en espaol Si <condicin> Entonces <accin S1> Fin_si

Pseudocdigo en ingls If <condicin> then <accin S1> end_if

Alternativas Mltiples (segn_sea, caso de / case)


Cuando existen ms de dos elecciones (alternativas) posibles, es cuando se presenta el caso de alternativas mltiples. Si el nmero de alternativas es grande puede plantear serios problemas de escritura del algoritmo y naturalmente de legibilidad. La estrucura de decisin mltiple evaluar una expresin que podr tomar n valores distintos 1,2,3,4,..n . Segn que elija uno de estos valores en la condicin, se realizara una de las n acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre los n posibles. La representacin grfica se muestra a continuacin:
Pseudocdigo
En ingls la estructura de decisin mltiple se represen

Case expresin of [e1]: accin S1 [e2]: accin S2 : [en]: accin Sn else accin Sx end_case

Ejercicio
Ejemplo: Se desea disear un algoritmo que escriba los nombres de los das de la semana en funcin del valor de una variable DIA introducida por teclado. Los das de la semana son 7; por consiguiente, el rango de valores de DIA ser 1..7, y caso de que DIA tome un valor fuera de este rango se deber producir un mensaje de error advirtiendo la situacin anmala. Inicio : Leer DIA
Segn_sea DIA hacer 1: escribir('Lunes') 2: escribir('Martes') 3: escribir('Mircoles') 4: escribir('Jueves') 5: escribir('Viernes') 6: escribir('Sabado') 7: escribir('Domingo') else escribir('Error') fin_segn fin

Estructuras Repetitivas
Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces se denominan Bucles y se denomina Iteracin al hecho de repetir la ejecucin de una secuencia de acciones. Entre las estructuras repetitivas se encuentran:

Mientras (while) Repetir (repeat) Desde (for) :

Estructura Mientras (while)


La estructura repetitiva while, es aqulla en que el cuerpo del bucle se repite mientras se cumple una determinada condicin, su representacin grfica es:
Pseudocdigo en espaol Mientras condicin hacer Accin S1 Accin S2 : accin Sn Fin_mientras Pseudocdigo en ingls while condicin do <Acciones> : End_while

Ejercicio
Ejemplo: Contar los nmeros enteros positivos introducidos por teclado. Se consideran dos variables enteras NUMERO y CONTADOR (contar el nmero de enteros positivos). Se supone que se leen nmeros positivos y se detiene el bucle cuando se lee un nmero negativo o cero.
Pseudocdigo Inicio contador 0 Leer (numero) Mientras numero > 0 hacer contador contador+1 Leer (numero) Fin_Mientras Escribir('El nmero de enteros positivos es : ', contador) Fin

Estructura Repetir (repeat)


Esta estructura se ejecuta hasta que se cumpla una condicin determinada que se comprueba hasta el final del bucle. Se ejecuta al menos una vez. El bucle repetir-Hasta_que se repite mientras el valor de la expresin booleana de la condicin sea falsa, justo la opuesta de la sentencia mientras.
Pseudocdigo en Espaol Repetir <acciones> : Hasta que <condicin> Pseudocdigo en Ingls Repeat <acciones> : Until <condicin>

Estructura Desde/Para (for)


En muchas ocasiones se conoce de antemano el nmero de veces que se desean ejecutar las acciones de un bucle. En estos casos en el que el nmero de iteraciones es fija, se debe usar la estructura desde o para. La estructura Desde ejecuta las acciones del cuerpo del bucle un nmero especfico de veces y de modo automtico controla el nmero de iteraciones o pasos a travs del cuerpo del bucle.
Pseudocdigo en Espaol Desde variable(v)= vi Hasta vf hacer <acciones> : Fin_desde Pseudocdigo en Ingls For variable (v)= vi To vf Do <acciones>

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