desarrollo de logica algoritmica

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

Upload: salvadorgurrola8168

Post on 01-Jul-2015

3.293 views

Category:

Documents


15 download

DESCRIPTION

DESARROLLO DE LOGICA ALGORITMICA Salvador Gurrola Velazquez [email protected] de lógica algorítmica2.1. Metodología para la solución de problemas. 2.2. Metodología para el diseño de software: Top down, Bottom up, modular y programación estructurada. 2.3. Definición de lenguajes algorítmicos. 2.3.1 Elementos y reglas de la representación grafica y manuscrita de los algoritmos (diagrama de flujo, diagrama N-S, diagrama estructurado y pseudocódigo. 2.3.2 Implementación de

TRANSCRIPT

Page 1: DESARROLLO DE LOGICA ALGORITMICA

DESARROLLO DE LOGICA ALGORITMICA

Salvador Gurrola [email protected]

Page 2: DESARROLLO DE LOGICA ALGORITMICA

Desarrollo de lógica algorítmica

2.1. Metodología para la solución de problemas.2.2. Metodología para el diseño de software: Top down,

Bottom up, modular y programación estructurada.2.3. Definición de lenguajes algorítmicos.2.3.1 Elementos y reglas de la representación grafica y

manuscrita de los algoritmos (diagrama de flujo, diagrama N-S, diagrama estructurado y pseudocódigo.

2.3.2 Implementación de algoritmos secuenciales utilizando notación algebraica)

2.4. Pruebas y depuración

Page 3: DESARROLLO DE LOGICA ALGORITMICA

METODOLOGIA PARA LA SOLUCION DE PROBLEMAS

• DEFINICION DEL PROBLEMA• ANALISIS DEL PROBLEMA• DISEÑO DEL ALGORITMO• CODIFICACION• PRUEBA Y DEPURACION• DOCUMENTACION• MANTENIMIENTO

Page 4: DESARROLLO DE LOGICA ALGORITMICA

METODOLOGIA PARA EL DISEÑO DE SOFTWARE

• Top Down

• Botton Up

• Warnier Orr

Page 5: DESARROLLO DE LOGICA ALGORITMICA

METODOLOGIA PARA EL DISEÑO DE SOFTWARE

• Top Down• Es una técnica para diseñar que consiste en tomar

el problema en forma inicial como una cuestión global y descomponerlo sucesivamente en problemas más pequeños y por lo tanto, de solución más sencilla.

• La descomposición 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 fácilmente.

Page 6: DESARROLLO DE LOGICA ALGORITMICA

METODOLOGIA PARA EL DISEÑO DE SOFTWARE

• El problema se descompone en etapas o estructuras jerárquicas, de modo que se puede considerar cada estructura como dos puntos de vista : lo que hace?, y cómo 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.• "cómo lo hace ?"

Page 7: DESARROLLO DE LOGICA ALGORITMICA

METODOLOGIA PARA EL DISEÑO DE SOFTWARE

• Ejemplo de un diseño descendente (top-down ) de un control de almacén :

Page 8: DESARROLLO DE LOGICA ALGORITMICA

METODOLOGIA PARA EL DISEÑO DE SOFTWARE

• Botton Up

• Esta técnica consiste en partir de los detalles más precisos del algoritmo completando suscesivamente módulos 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 módulos más grandes se plantea como objetivo final la resolución global del problema.

• Este método es el inverso del anterior y es recomendable cuando se tiene un modelo a seguir o se cuenta con amplia experiencia en la resolución de problemas semejantes.

• La técnica de Botton Up es frecuentemente utilizada para la realización de pruebas a sistemas ya concluidos.

Page 9: DESARROLLO DE LOGICA ALGORITMICA

METODOLOGIA PARA EL DISEÑO DE SOFTWARE

• Warnier Orr• Es una técnica que utiliza una representación semejante a la de

cuadros sinópticos para mostrar el funcionamiento y organización de los elementos que conforman el algoritmo.

• Básicamente, utiliza una notación de llaves para organizar los módulos y se auxilia en la siguiente simbología para indicar operaciones de control.

• Nota :  Los diagramas Warnier Orr se leen de izquierda a derecha y de arriba hacia abajo.

Page 10: DESARROLLO DE LOGICA ALGORITMICA

METODOLOGIA PARA EL DISEÑO DE SOFTWARE

• Ejemplo de un diagrama de Warnier Orr, de un control de almacén

Page 11: DESARROLLO DE LOGICA ALGORITMICA

DEFINICION DE LENGUAJE ALGORITMICO

• Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un

proceso.

Page 12: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS

• Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo

(diagrama de flujo).

• No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).

Page 13: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS• Diagramas de Flujo• Se basan en la utilización de diversos símbolos

para representar operaciones específicas. • Se les llama diagramas de flujo porque los

símbolos utilizados se conectan por medio de flechas para indicar la secuencia de operación.

• La simbología utilizada para la elaboración de diagramas de flujo es variable y debe ajustarse a un patrón definido previamente.

Page 14: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS• SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS

DE FLUJO

Page 15: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS• SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS

DE FLUJO

Page 16: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS• SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS

DE FLUJO

Page 17: DESARROLLO DE LOGICA ALGORITMICA

EJERCICIOS

• IMPLEMENTACION DE ALGORITMOS

• PRUEBAS Y DEPURACION

Page 18: DESARROLLO DE LOGICA ALGORITMICA

• Ejemplo: • Calcular el salario neto de un trabajador en función del

número de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al salario bruto en concepto de impuestos (20 por 100).

Page 19: DESARROLLO DE LOGICA ALGORITMICA

• Ejemplo:• Realizar un diagrama de flujo que permita mostrar en pantalla

un mensaje de mayoría o minoría de edad según sea el caso para un nombre específico.

Page 20: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS• Pseudocódigo• Es un lenguaje de especificación de algoritmos. El

uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil.

• El pseudocódigo nació como un lenguaje similar al inglés y era un medio representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por una computadora.

Page 21: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS• Pseudocódigo• La ventaja del pseudocódigo es que en su uso en la

planificación de un programa, el programador se puede concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje específico. Es también fácil modificar el pseudocódigo si se descubren errores o anomalías en la lógica del programa, además de todo esto es fácil su traducción a lenguajes como pascal, COBOL, C, FORTRAN o BASIC.

• El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas en inglés (similares a sus homónimos en los lenguajes de programación), tales como star,begin, end, stop, if-then-else, while, repeat-until….etc

Page 22: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOSPseudocódigo    Secuencia Inicio acción1 acción2 : acción n Fin

Page 23: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS   Decisión  Simplesi condición entoncesacción1acción2:acción n

Page 24: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS   Decisión  Doblesi condición thenacción1acción2:en caso contrarioacción1acció2

Page 25: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS     Iteracción  Fijapara   var. Entera inicial hasta final haceracción1acción2:acción n

Page 26: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS     Iteracción  Condicional al iniciomientras condición haceracción1acción2:acción n

Page 27: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS     Iteracción  Condicional al finalRepetiracción1acción2:acción nHasta que condición

Page 28: DESARROLLO DE LOGICA ALGORITMICA

TIPOS DE LENGUAJES ALGORITMICOS     Iteracción     Seleccióncasos selector devalor1 : acción1acción2valor2 : acción1acción2 valor n : acción1 acción2

Page 29: DESARROLLO DE LOGICA ALGORITMICA

EJERCICIOS• Ejercicio :• Se requiere preguntar dos valores, y a continuación ofrecer un menú

con las operaciones básicas (+, -, *, /). Después de presentar el resultado se ofrecerá la posibilidad de una nueva operación.

Declaración de variables :Real : X, Y, RESPUESTAEntero : OPCIONCarácter : OPInicio Repetirescribir(‘Primer valor : ’ )leer(X)escribir(‘Segundo valor : ‘)leer(Y)

Page 30: DESARROLLO DE LOGICA ALGORITMICA

EJERCICIOSescribir(‘1) Suma ‘)escribir(‘2) Resta ‘)escribir(‘3) Multiplicación ‘)escribir(‘4) División ‘)escribir(‘Qué operación deseas realizar ? : ‘)leer(OPCION)casos OPCION de1 : RESULTADO X+Y2 : RESULTADO X-Y3 : RESULTADO X*Y4 : si Y=0 entonces escribir(‘ Error ‘) RESULTADO 0 en caso contrario RESULTADO X/Y escribir (‘Resultado : ‘,RESULTADO) escribir(‘Deseas otro cálculo : [S/N] ‘) leer(OP) Hasta que RES = ‘N’Fin

Page 31: DESARROLLO DE LOGICA ALGORITMICA

EJERCICIOS• Ejercicio : • Preguntar un nombre y repetirse en pantalla tantas veces como se

desee. (preguntar cantidad de repeticiones), indicando el número de repetición.

Declaración de variablesCadena : nomentero : x, nInicioescribir(‘Nombre : ‘)leer(nom)escribir(‘Cuántas veces quieres repetirlo ? : ‘)leer(n)para x 1 hasta n hacer escribir(x’.- ‘, nom)Fin

Page 32: DESARROLLO DE LOGICA ALGORITMICA

Estructura Secuencial

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

• Es aquélla en la que una acción (instrucción) 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 representación gráfica es la siguiente:

Page 33: DESARROLLO DE LOGICA ALGORITMICA

Estructura Secuencial

• PseudocódigoInicio{cálculo salario neto}leer nombre, horas, precio_horasalario_bruto horas * precioimpuestos 0.20 * salario_brutosalario_neto salario_bruto_impuestosescribir nombre, salario_bruto, salario_neto_bruto,

salario_netoFin

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

Page 34: DESARROLLO DE LOGICA ALGORITMICA

Condicionales        La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripción más complicada que una lista sencilla de instrucciones.

Este es el caso cuando existen un número de posibles alternativas resultantes de la evaluación de una determinada condición.         Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de decisión o alternativas.         En las estructuras selectivas se evalúa una condición y en función del resultado la misma se realiza una opción u otra.

Las condiciones se especifícan usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then, else o bien en español si, entonces, sino), con una figura geométrica en forma de rombo o bien con un triángulo en el interior de una caja rectangular.Las estructuras selectivas o alternativas pueden ser:

Simples Múltiples

Page 35: DESARROLLO DE LOGICA ALGORITMICA

Alternativa Simple (si-entonces/if-then)        La estructura alternativa simple si-entonces (en inglés if-then o bien IF-THEN ) ejecuta una determinada acción cuando se cumple una determinada condición. La selección si-entonces evalúa la condición y . . .           Si la condición es verdadera, entonces ejecuta la acción S1 (o

acciones caso de ser S1 una  acción compuesta y constar de varias acciones).

          Si la condición es falsa, entonces no hacer nada.

A continuación se muestra la gráfica de la estructura condicional simple.

Pseudocódigo en españolSi     <condición>   Entonces      <acción S1>Fin_si

     Pseudocódigo en inglésIf    <condición>   then   <acción S1>end_if

Page 36: DESARROLLO DE LOGICA ALGORITMICA

Alternativas Múltiples (según_sea, caso de / case)          Cuando existen más de dos elecciones (alternativas) posibles, es cuando se presenta el caso de alternativas múltiples. Si el número de alternativas es grande puede plantear serios problemas de escritura del algoritmo y naturalmente de legibilidad.         La estrucura de decisión múltiple evaluará una expresión que podrá tomar n valores distintos 1,2,3,4,..n . Según que elija uno de estos valores en la condición, se realizaráa una de las n acciones, o lo que es igual, el flujo del algoritmo seguirá un determinado camino entre los n posibles.La representación gráfica se muestra a continuación:

Pseudocódigo En inglés la estructura de decisión múltiple se representa

Case expresión of[e1]: acción S1[e2]: acción S2:[en]: acción Snelseacción Sxend_case

Page 37: DESARROLLO DE LOGICA ALGORITMICA

EjercicioEjemplo:        Se desea diseñar un algoritmo que escriba los nombres de los días de la semana en función del valor de una variable DIA introducida por teclado.        Los días 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 situación anómala. :

InicioLeer DIASegún_sea DIA hacer1: escribir('Lunes')2: escribir('Martes')3: escribir('Miércoles')4: escribir('Jueves')5: escribir('Viernes')6: escribir('Sabado')7: escribir('Domingo')elseescribir('Error')fin_segúnfin

Page 38: DESARROLLO DE LOGICA ALGORITMICA

Estructuras Repetitivas•Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan Bucles y se denomina Iteración al hecho de repetir la ejecución de una secuencia de acciones. •Entre las estructuras repetitivas se encuentran:

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

Page 39: DESARROLLO DE LOGICA ALGORITMICA

Estructura Mientras (while)    La estructura repetitiva while, es aquélla en que el cuerpo del bucle se repite mientras se cumple una determinada condición, su representación gráfica es:

Pseudocódigo en español                               Pseudocódigo en inglésMientras condición hacer                              while   condición   doAcción S1                                       <Acciones>Acción S2                                                                        :      :                                  End_whileacción SnFin_mientras

Page 40: DESARROLLO DE LOGICA ALGORITMICA

Ejercicio    Ejemplo:        Contar los números enteros positivos introducidos por teclado. Se consideran dos variables enteras NUMERO y CONTADOR (contará el número de enteros positivos).  Se supone que se leen números positivos y se detiene el bucle cuando se lee un número negativo o cero.

Pseudocódigo                Inicio                  contador 0                   Leer (numero)                  Mientras numero > 0 hacer                        contador  contador+1                         Leer (numero)                    Fin_Mientras                   Escribir('El número de enteros positivos es : ', contador)                    Fin

Page 41: DESARROLLO DE LOGICA ALGORITMICA

Estructura Repetir (repeat)        Esta estructura se ejecuta hasta que se cumpla una condición 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 expresión booleana de la condicin sea falsa, justo la opuesta de la sentencia mientras.

Pseudocódigo  en Español                                    Pseudocódigo en InglésRepetir                                                                  Repeat                   <acciones>                                                             <acciones>        :                                                                                  :    Hasta que <condición>                                            Until <condición>

Page 42: DESARROLLO DE LOGICA ALGORITMICA

Estructura Desde/Para (for)        En muchas ocasiones se conoce de antemano el número de veces que se desean ejecutar las acciones de un bucle.  En estos casos en el que el número de iteraciones es fija, se debe usar la estructura desde o para.        La estructura Desde ejecuta las acciones del cuerpo del bucle un número específico de veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo del bucle.

Pseudocódigo en Español                                         Pseudocódigo en InglésDesde variable(v)= vi Hasta vf hacer                         For variable (v)= vi  To  vf  Do    <acciones>                                                                     <acciones>           :                                                                                           Fin_desde