Algoritmización 1. C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONTENIDO 1. CONCEPTOS BÁSICOS. 2. CARACTERÍSTICAS DE LOS ALGORITMOS.

1 Algoritmización 1 ...
Author: Silvia Aguilera Rivero
0 downloads 0 Views

1 Algoritmización 1

2 C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONTENIDO 1. CONCEPTOS BÁSICOS. 2. CARACTERÍSTICAS DE LOS ALGORITMOS. 1. CONCEPTOS BÁSICOS. 3. REPRESENTACIÓN DE LOS ALGORITMOS. 4. ALGORITMOS DE SECUENCIA LINEAL. 5. ALGORITMOS DE SECUENCIA NO LINEAL. 6. CONCLUSIONES. 2

3 Algoritmización El concepto de algoritmo es uno de los conceptos fundamentales de la Ciencia de la Computación y apareció mucho antes de que surgiesen las computadoras y vino a ser una de las nociones fundamentales de la matemática. Al-JwarizmiAl-Khowarizmi El término algoritmo se deriva del nombre de un matemático que vivió en el siglo IX, en Uzbekistán, llamado Al-Jwarizmi o Al-Khowarizmi, el cual, entre sus trabajos escribió un libro que trataba sobre las reglas para efectuar operaciones aritméticas. definir el término algoritmo De manera informal podemos definir el término algoritmo como: Un conjunto finito de reglas (pasos u órdenes) que indican una secuencia de operaciones a ejecutar para alcanzar un resultado que soluciona un problema dado, esta secuencia de pasos debe poder ejecutarse aunque no se tenga conocimiento del problema que se resuelve, sin embargo esto puede resultar muy peligroso… C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONCEPTOS BÁSICOS 3

4 Algoritmización SECUENCIA GENERAL de solución de problemas Ingenieriles C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONCEPTOS BÁSICOS En Problemas de Ingeniería: Entrada de DATOS DATOS ProcesamientoProcesamiento Salida de RESULTADOS RESULTADOS Durante la etapa de procesamiento se realizan todos los cálculos y operaciones que nos posibilitaran llegar a la solución final del problema. Esto puede ser a través de una secuencia lineal o no lineal. 2 2 VariablesConstantes En esta parte se introducen todos los parámetros que intervienen en la Etapa de Procesamiento. Estos parámetros pueden ser de tipo Variables o Constantes durante el proceso. 1 1 Esta es la parte final del proceso de algoritmización y es donde se obtienen los resultados necesarios que dan solución al problema planteado. 3 3 4

5 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONCEPTOS BÁSICOS 5 “ejecutor”“procesador” Como se ve en la definición muy asociado al concepto de algoritmo está el concepto de “ejecutor” o “procesador” del algoritmo que es el ente que ejecuta los pasos que el algoritmo describe. El algoritmo es la guía de acción para el ejecutor; indica en una forma precisa e inteligible al ejecutar que ha de desarrollar una sucesión determinada de acciones para lograr el objetivo o solucionar un problema. Ejemplo 1: Se quiere hallar el área de la figura siguiente para una valor racional dado de la variable x, esto se puede hacer ejecutando el algoritmo que sigue: 2x x 3

6 Algoritmización 6 Algoritmo1 Paso 1: Paso 1: Multiplicar el valor de x por sí mismo y poner el resultado en a. Paso 2: Paso 2: Multiplicar el valor de a por 2 y poner el resultado en b. Paso 3: Paso 3: Multplicar el valor de x por 3 y poner el resultado en c. Paso 4: Paso 4: Sumar el valor de b con el valor de c y poner el resultado en r. En r tenemos el resultado final Observar que se está evaluando la función f(x)= 2x 2 + 3x que es la que permite calcular el área de la figura (área del rectángulo x.2x más el área del triángulo 2x.3/2). En este algoritmo se utilizan tres acciones fundamentales o primitivas “multiplicar”, “poner el resultado en” y “sumar”. Se supone, entonces, que el ejecutor del algoritmo conoce estas acciones y puede ejecutarlas. Acciones Primitivas Las acciones que puede realizar un ejecutor son llamadas Acciones Primitivas y los algoritmos tienen que estar enunciados a partir de estas acciones. C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONCEPTOS BÁSICOS

7 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONCEPTOS BÁSICOS 7 ¿Este algoritmo es único? NO, La respuesta obvia es NO, se puede, también, hacer lo siguiente: Algoritmo 1a Paso 1: Paso 1: Multiplicar el valor de x por 2 y poner el resultado en a. Paso 2: Paso 2: Sumar el valor de a con 3 y poner el resultado en b. Paso 3: Paso 3: Multiplicar el valor de b por el valor de x y poner el resultado en r. En r tenemos el resultado final. Observar ahora se está evaluando la función f(x)= (2x + 3)x que en definitiva es la misma función f(x) = 2x 2 + 3x. Si se compara los algoritmos 1 y 1a se observa que el 1a hace que el ejecutor haga menos cantidad de pasos u operaciones, aunque con ambos se obtiene el mismo resultado.

8 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONCEPTOS BÁSICOS 8 Tener diversas variantes de algoritmos para resolver un mismo tipo de problema, supone la selección del mejor algoritmo para el problema dado; sin embargo en la práctica las cosas no son tan fáciles y en ocasiones no es tan obvio poder escoger un algoritmo entre un grupo, pues la cantidad de operaciones no siempre es el único criterio a tener en cuenta. También debe considerarse, por ejemplo, 1.El tamaño del algoritmo, 2.La claridad con que está expresado, etc. Estos criterios entran en contradicción al hacer el análisis. Una regla que se cumple generalmente en el trabajo de computación, es que cuando se ahorra tiempo se gasta más espacio y viceversa.

9 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONTENIDO 1. CONCEPTOS BÁSICOS. 2. CARACTERÍSTICAS DE LOS ALGORITMOS. 3. REPRESENTACIÓN DE LOS ALGORITMOS. 4. ALGORITMOS DE SECUENCIA LINEAL. 5. ALGORITMOS DE SECUENCIA NO LINEAL. 6. CONCLUSIONES. 9

10 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CARACTERÍSTICAS DE LOS ALGORITMOS 10 Los algoritmos tienen las siguientes características: a) Finalidad: a) Finalidad: Todo algoritmo tiene el objetivo de resolver un tipo de problema y se ejecuta para obtener un resultado que es la solución de un caso particular de ese problema. b) Orden: b) Orden: Los pasos del algoritmo tienen que ejecutarse en un orden preciso e indicado en el algoritmo. Si este orden se altera, generalmente no se obtiene el resultado deseado. c) Finitud: tres aspectos: c) Finitud: El algoritmo tiene que ser finito en tres aspectos: 1. El algoritmo es una secuencia finita de pasos (no tiene sentido ninguno un algoritmo cuya descripción sea infinitamente larga) 2. La ejecución del algoritmo termina después de concluir un número finito de pasos. Nótese que este aspecto es diferente al anterior, pues podría tenerse una cantidad pequeña de pasos en la definición que se ejecutara repetidamente un número infinito de veces.

11 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CARACTERÍSTICAS DE LOS ALGORITMOS 11 Por ejemplo: Por ejemplo: “dividir un número racional mayor que 0 por dos repetidamente hasta que el cociente sea cero”. 3. La ejecución de un paso cualquiera del algoritmo tiene que poder ejecutarse en un tiempo finito. Los tres aspectos relacionados con la finitud del algoritmo plantean que la ejecución de un algoritmo se efectúa en un tiempo finito. En realidad, cuando se habla de algoritmos no es suficiente, en la práctica, que estos sean finitos, sino que además esta finitud no sea muy “grande”. Se dan casos en que para determinados problemas se conocen algoritmos que dan su solución, pero la ejecución de ellos duraría decenas o cientos de años, aún por ejecutores veloces, y obviamente este tiempo sería finito, pero no constituye una forma práctica de resolver el problema.

12 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CARACTERÍSTICAS DE LOS ALGORITMOS 12 d) Factibilidad y Claridad: d) Factibilidad y Claridad: Los pasos de un algoritmo tienen que estar bien definidos. Esto quiere decir que debe quedar claro para cualquier ejecutor qué es lo que hay que hacer en cado paso, que no quede ningún tipo de dudas. No puede existir ambigüedades en la definición de un paso. Además deben ser acciones primitivas que puedan ser realizadas por el ejecutor. D. E. Knuth“El arte de la programación de computadoras” “añadir una pizca de sal a la mezcla”¿qué es una pizca?¿por donde se añade? En este sentido el autor D. E. Knuth en su libro “El arte de la programación de computadoras” establece una comparación entre algoritmos y recetas de cocina, planteando que estas últimas podrían verse como algoritmos sólo en algunos casos, pues la mayoría ofrece pasos no muy bien definidos para ejecutores que no sepan nada de cocina. A manera de ejemplo pone: “añadir una pizca de sal a la mezcla” y se pregunta ¿qué es una pizca? ¿por donde se añade? Esto hace que el paso no esté completamente definido. Para Knuth pocas recetas de cocinas son verdaderos algoritmos.

13 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CARACTERÍSTICAS DE LOS ALGORITMOS 13 e) Entorno: El entorno de un algoritmo es el conjunto de elementos y condiciones que necesita el ejecutor para realizar su trabajo. Se incluyen aquí posibles valores a utilizar, condiciones en que se realiza el proceso, etc.Ejemplo: Se quiere hacer un algoritmo para que un comerciante pueda devolver el cambio de 50 pesos si tiene que cobrar $ 20.50 Consideremos tres entornos distintos: E1: E1: el comerciante dispone sólo de billetes de $10 y $1. E2: E2: el comerciante dispone sólo de billetes de $ 5 y monedas de 20 ¢ y 5 ¢. E3: E3: el comerciante dispone de billetes de $10, $5, $1 y monedas de 20 ¢ y 5 ¢. En el primer caso, el ejecutor (comerciante) no puede, en función de su entorno (las monedas), efectuar el trabajo (dar el cambio). En los otros dos casos sí puede hacerlo. Por lo tanto el algoritmo que se diseña tiene que tener en cuenta estas condiciones para que pueda ser efectivo.

14 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONTENIDO 1. CONCEPTOS BÁSICOS. 2. CARACTERÍSTICAS DE LOS ALGORITMOS. 3. REPRESENTACIÓN DE LOS ALGORITMOS. 4. ALGORITMOS DE SECUENCIA LINEAL. 5. ALGORITMOS DE SECUENCIA NO LINEAL. 6. CONCLUSIONES. 14 3. REPRESENTACIÓN DE LOS ALGORITMOS.

15 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 15 Para escribir un algoritmo se utilizan varias notaciones: a) Lenguaje Natural: a) Lenguaje Natural: Se utiliza habitualmente cuando el ejecutor es el hombre y se utiliza su propio lenguaje para describir los pasos. Este es el caso del Algoritmo 1 descrito anteriormente. b) Pseudo-código: b) Pseudo-código: Es un sistema de designaciones y reglas destinado para la escritura uniforme de algoritmos, no hay reglas fijas, se pueden fijar en el contexto donde se trate. Por ejemplo Por ejemplo se puede convenir que: Para las operaciones aritméticas se utilizarán los siguientes símbolos: + (suma), -(resta), *(multiplicación), / (división) Para la operación “poner el resultado en” se utilizará el símbolo ←. De tal manera que si se quiere expresar: “multiplicar x por 2 y poner el resultado en a” se escribirá: a ← x * 2

16 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 16 Algoritmo 1 El Algoritmo 1 quedará entonces: Paso 1: a ← x * x Paso 2: b ← 2 * a Paso 3: c ← 3 * x Paso 4: r ← b + c Para completar este algoritmo totalmente hacen falta dos operaciones que aquí se están asumiendo: conocer que x es un dato y por lo tanto tenemos que conocerlo antes de comenzar y por otro lado saber que el resultado del cálculo se queda en la variable r. Para ello se introducen dos nuevas operaciones o pasos: - Lectura de Datos: - Lectura de Datos: se utilizará la palabra leer, seguida de las variables que se tienen como datos iniciales. - Salida de los Datos: - Salida de los Datos: se utilizará la palabra escribir, seguida de los valores que se desean se den como respuesta.

17 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 17 Algoritmo 1 El Algoritmo 1 queda: Paso 1: Leer x Paso 2: a ← x * x Paso 3: b ← 2 * a Paso 4: c ← 3 * x Paso 5: r ← b + c Paso 6: Escribir r c) Diagramas de flujo (organigramas) Esta notación se utilizó mucho en las décadas del 60 y 70, hoy en día ha caído en desuso, pero puede ayudar de manera notable a expresar los algoritmos de forma clara y legible, sin ambigüedades, también se utilizará en el curso. En la notación se utilizan algunos símbolos:

18 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 18SímboloSignificado Inicio o Fin del algoritmo, es escribe la palabra correspondiente para indicar si es inicio o fin. Operaciones de cálculo Entrada de datos o salida de resultados, se escribe la palabra leer o escribir Conector en la misma hoja (se escribe un número dentro) Conector fuera de hoja (se escribe un número dentro) Para conectar un símbolo con otro y denotar el flujo del proceso. Cuando el flujo es hacia abajo o a la derecha no se le pone saeta, en los otros casos sí.

19 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 19 De esta forma el Algoritmo 1 quedaría: inicio a  x * x c  3 * x b  2 * a leer x escribir r fin r  b + c

20 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 20 d) Diagramas de Actividad Hoy en día se utiliza mucho en la confección de sistemas un lenguaje denominado UML (Unified Modeling Language), una de las herramientas que brinda este lenguaje son los llamados Diagramas de Actividad que tienen cierto parecido con los diagramas de flujo vistos anteriormente, aunque se simplifican un poco estos símbolos:SímboloSignificado Inicio del algoritmo. Fin del algoritmo Operaciones de cálculo Para conectar un símbolo con otro y denotar el flujo del proceso.

21 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 21 De esta forma el Algoritmo 1 quedaría: leer x a  x*x b  a*2 c  x*3 r  b+c*x escribir r

22 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 22 e) Lenguajes de programación enguaje de Programación. Cuando se desea que el ejecutor del algoritmo sea una computadora, no queda alternativa que escribir el algoritmo en un Lenguaje de Programación. Un algoritmo descrito con esta técnica se denomina programa. Programar es entonces el “arte”(para unos) o la técnica (para otros) de describir algoritmos en un lenguaje de programación. Ejemplo 2: Escriba un algoritmo para calcular el volumen de una pirámide de base cuadrada, conociendo que su altura es de H metros y que uno de los lados de la base mide L metros.

23 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 23 Solución: Volumen pirámide = (Ab H) / 3 Ab = L 2Algoritmo: P1: Leer H y L P2: AreaBase ← L* L P3: Volumen ← AreaBase * H / 3 P4: Escribir Volumen Expresar el algoritmo como un diagrama de actividades.

24 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONTENIDO 1. CONCEPTOS BÁSICOS. 2. CARACTERÍSTICAS DE LOS ALGORITMOS. 3. REPRESENTACIÓN DE LOS ALGORITMOS. 4. ALGORITMOS DE SECUENCIA LINEAL. 5. ALGORITMOS DE SECUENCIA NO LINEAL. 6. CONCLUSIONES. 24 4. ALGORITMOS DE SECUENCIA LINEAL.

25 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… TIPOS DE ALGORITMOS 25 Algoritmos LINEALES Algoritmos LINEALES Algoritmos NO LINEALES Algoritmos NO LINEALES Son aquellos en los que la secuencia de solución del problema es continua, sin ninguna toma de decisión ni alternativa intermedia que permita tomar más de un camino. En estos algoritmos se presentan tomas decisiones lógicas, alternativas de operaciones, necesidad de procesos repetitivos. Son en general los más usados para dar solución a los problemas ingenieriles reales.

26 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… CONTENIDO 1. CONCEPTOS BÁSICOS. 2. CARACTERÍSTICAS DE LOS ALGORITMOS. 3. REPRESENTACIÓN DE LOS ALGORITMOS. 4. ALGORITMOS DE SECUENCIA LINEAL. 5. ALGORITMOS DE SECUENCIA NO LINEAL. 6. CONCLUSIONES. 26 5. ALGORITMOS DE SECUENCIA NO LINEAL.

27 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA LINEAL 27 linealidad, Para la ejemplificación de los conceptos anteriores se utilizaron básicamente dos ejemplos que tenían la característica de su linealidad, era una secuencia de pasos que se realizaban uno tras otro. Esto no siempre es posible. La matemática nos da algunos ejemplos. Ejemplo 3: Ejemplo 3: Si se desea encontrar las soluciones reales de la ecuación de segundo grado: ax 2 + bx + c = 0, se conoce que debemos 1ro. Buscar el discriminante (d = b 2 – 4ac) 2do. Si el discriminante es menor que cero la ecuación no tiene soluciones reales. 3ro. Si el discriminante es cero hay una única solución: 4to. Si el discriminante es mayor que cero las soluciones son dos:

28 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 28 En este caso se realiza el paso1 y los pasos 2, 3 y 4 se realizan en dependencia del valor del discriminante. No solo la matemática brinda tales situaciones. El siguiente ejemplo es del ámbito de las construcciones: Ejemplo 4: “Al azulejar una pared el trabajo se considera de calidad si la distancia promedio entre azulejos (d) es tal que d ≤ c (c factor de calidad). El problema radica en determinar si una pared de longitud L azulejada con N azulejos de longitud l tiene o no calidad.” En este problema está claro que debemos determinar, primero la distancia promedio entre azulejos: Paso 1: Paso 1: Leer datos (L, N, l, c) Paso 2: Paso 2: Calcular d Paso 3: Paso 3: Si d ≤ c escribir “Pared azulejada con calidad” Paso 4: Paso 4: Si no, escribir “Pared azulejada sin calidad”.

29 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 29 Como se puede observar si se efectúa el Paso 3, no se hace el Paso 4 y viceversa. ¿Cómo enfrentar tales situaciones? algoritmos ramificados.ramificación condición: En los dos casos explicados anteriormente se está en presencia de algoritmos ramificados. Esta ramificación como se observa se hace a partir de una condición: - Comparación del discriminante con cero (en el caso de la ecuación) -Comparación de d con c (en el caso de la pared azulejada). Al denotar este tipo de algoritmos se utilizarán los siguientes convenios: pseudocódigo: si - En el caso del pseudocódigo: si condición entonces entonces acción 1 sino sino acción 2

30 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 30 son excluyentes. Esto significa que si la condición es verdadera se realiza la acción 1 y de lo contrario se realiza la acción 2. Observar que en ningún caso se realizan ambas simultáneamente; son excluyentes. Se puede escribir el algoritmo para determinar la calidad del azulejado de la pared como sigue: P1: Leer L, N, l, c P2: d ← ¿? (¿Ya tiene la fórmula?) si P3: si d ≤ c entonces entonces escribir “Pared con calidad” sino sino escribir “Pared si calidad” Observar que las acciones aquí son “escribir”, lo que el mensaje es diferente en cada caso. Como se escribe un mensaje, siempre lo encerraremos entre comillas para no confundirlo con el nombre de variables.

31 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 31 Estas acciones pueden ser tan complejas como se necesite, incluso lo que se ha nombrado acción 1 y acción 2, pudieran ser acciones “compuestas” en el sentido de que sea necesario ejecutar varias acciones. En estos casos utilizaremos las llaves {} para encerrar el grupo de acciones. entonces sisi anidados Un caso particular de acción a ejecutar luego de un “entonces” o un “sino”, es de nuevo un “si”. Se les llama “si anidados” y hay que tener mucho cuidado a la hora de expresarlos para que no presten confusión. - En el caso de los diagramas de flujo o actividad: En este caso se utiliza la construcción acción 1 condición [resultado2] [resultado1] acción 2

32 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 32 Un rombo que tiene una entrada y tantas salidas como sean necesarias, en el rombo se escribe la condición que da lugar a la bifurcación y cada salida se etiqueta con el valor de la condición por el cual se sale. Se ha representado dos salidas, pero pueden ser más. El algoritmo anterior queda: leer L,N, l, c d  ¿? Escribir “Con calidad” Escribir “Sin calidad” d  c [Si][No]

33 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 33 Se pueden presentar situaciones en que la bifurcación no sea completa, o sea que se desee ejecutar una acción si se cumple la condición y en caso contrario no llevar a cabo ninguna acción. En este caso tendremos:Pseudocódigo Diagrama de actividades condición si condición entonces entonces acción 1

34 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 34 Lógica Matemática condiciones lógicascondiciones booleanas igual, desigual, mayor, mayor o igual, menor, menor o igual. Se ha hablado de “condición” y no se ha profundizado en qué significa. Se puede ver la condición como una pregunta formulada de tal forma que admita dos respuestas: verdadero o falso. Esto, como se conoce de la Lógica Matemática, son los valores de verdad que puede tener una proposición y por ello se conocen a estas condiciones como condiciones lógicas o condiciones booleanas. Para su formulación se pueden utilizar cualquier operación (incluyendo las operaciones de la lógica) que de cómo resultado un valor lógico. En ingeniería es muy común utilizar las operaciones de comparación de valores numéricos: igual, desigual, mayor, mayor o igual, menor, menor o igual. Para ir acercándose a los lenguajes de programación se pueden utilizar los siguientes símbolos:

35 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 35SímboloSignificado =Mayor o igual ==Igual !=Desigual A estos operadores se les denomina operadores de relación.

36 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 36SímboloSignificado &&and ||or !not and, or, not Las operaciones lógicas and, or, not también pueden ser utilizadas en las condiciones, y a veces se usan los siguientes operadores: Así por ejemplo para indicar una condición que sea verdadera cuando el punto (x, y) esté en el primer cuadrante podemos escribir: x > 0 and y > 0. x > 0 && y > 0.

37 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 37 Es importante tener en cuenta la forma en que se escribe una condición, pues de ello dependerá la forma y el lugar de escribir las acciones correspondientes. Por ejemplo son equivalentes las siguientes bifurcaciones: si si d c entonces entonces escribir “Sin calidad” sino sino escribir “Con Calidad” En ambas construcciones se han escrito condiciones que resultan una la negación de la otra, pero las dos son igualmente válidas. La forma en que se escriba es una elección del programador.

38 Algoritmización Se puede retomar el segundo ejemplo del inicio y realizar el algoritmo para resolver una ecuación de segundo grado: P1: leer a, b, c P2: d ← si P3: si d < 0 entonces entonces escribir “No hay soluciones reales” sino si si d = 0 entonces { x ← escribir x } sino { x1 ← x2 ← escribir x1, x2 } C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 38

39 Algoritmización Aquí se deben tener en cuenta algunas observaciones: 1. El paso 3 comienza con la pregunta d

40 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… ALGORITMOS DE SECUENCIA NO LINEAL 40 leer a, b, c d  d

41 Algoritmización C1: Algoritmización. Representación. Algoritmos de SL y de SNL… REPRESENTACIÓN DE LOS ALGORITMOS 45 Bibliografía: 1. Introducción a la programación en PL/1. A. Mesa Enríquez, M. Prieto Méndez, E. Quesada Orozco. Editorial Pueblo y Educación, 1984. Capítulo 1 2. Elementos de Informática. G. Frolov, E. Kuznetsov Editorial MIR, 1991. Capítulo 1 3. Introducción a la Programación. Tomo 1 J. Biondi, G. Clavel. Masson, S.A. 1985. Capítulos 1 y 2 4. Problemas de metodología de la programación L. Joyanes. McGraw-Hill, 1990. Capítulo 1