diseño de algoritmos: tema 3. diagramas de flujo

Post on 11-May-2022

32 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Diseño de Algoritmos Tema 3: Diagramas de flujo

Presenta: David Martínez Torres

Universidad Tecnológica de la Mixteca

Instituto de Computación

Oficina No. 37

dtorres@mixteco.utm.mx

Contenido

1. Definiciones

2. Elementos de un diagrama de flujo

3. Variables y constantes

4. Estructuras de control: secuenciales, selectivas y repetitivas

2

Introducción

3

Diseñodescendente

Refinamientopor pasos

Herramienta deprogramación:

Diseñode un

algoritmo

* diagrama de flujo* pseudocódigo

Secciones de un algoritmo, reeditado de [3]

4

1. Definiciones

Si un diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de programación es simple y directo [2].

Un diagrama de flujo representa de manera gráfica un algoritmo, es decir, los pasos de la solución de un problema.

2. Elementos de un diagrama de flujo.

5

2.1 Reglas para la construcción de un diagrama de flujo [2].

1. Todo diagrama de flujo debe tener un inicio y un fin.

6

2. Las líneas que indican la dirección del flujo del diagrama deben ser rectas, verticales y horizontales.

2.1 Reglas para la construcción de un diagrama de flujo [2].

7

3. Toda línea que indica la dirección del flujo del diagrama debe estar conectada.

4. El diagrama de flujo debe construirse de arriba hacia abajo y de izquierda a derecha

5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación.

6. Es conveniente poner comentarios para ayudar a entender lo que hicimos.

7. Se puede utilizar más de una hoja, utilizando los conectores adecuandos y numerando las páginas.

2.1 Reglas para la construcción de un diagrama de flujo [2].

8

8. No pueden llegar más de una línea a un símbolo.

3. Conceptos fundamentales: Tipos de datos

9

1. Tipos de datos. Necesarios para representar los datos a procesar y se clasifican en:

a) simples: enteros, reales, caracteres, y booleanos.

b) estructurados: arreglos, cadena de caracteres y registros.

Dato simple

Dato estructurado

identificador identificador

3. Conceptos fundamentales: Tipos de datos

10

Ejemplos de datos:

Enteros: 128, 1500, -200, 8432, -14321

Reales: 6.4, 138.25, -32.453, 130.65, -8729.32

Carácter: letras del abecedario, dígitos, símbolos especiales(#,$,^, *,%,/,!,+,-, etc). Cada

carácter debe estar cerrado entre

apóstrofe.

„a‟, B, „$‟, „9‟, „-‟

Cadena de caracteres: “abcd”, “Pedro”,

“5326745”|

3. Conceptos fundamentales: Identificadores, constantes y variables

11

Identificadores: representan los nombres de variables, constantes y funciones donde almacenan los datos.

Constantes: son identificadores que su valor no

cambia durante la ejecución de un programa.

Ejemplo PI 3.1416, TAMANIO 10,

NOMBRE “PESO”

Variables: son identificadores que su valor

normalmente cambia durante la ejecución de

un programa. Pueden ser de los tipos que

estudiaron en la diapositiva anterior.

3. Conceptos fundamentales: Operaciones aritméticas

12

3. Conceptos fundamentales: Jerarquía de los operadores aritméticos

13

3. Conceptos fundamentales: Operadores relacionales

14

3. Conceptos fundamentales: Operadores lógicos

15

3. Conceptos fundamentales: Tabla de verdad de los operadores lógicos

16

3. Conceptos fundamentales: Jerarquía de todos los operadores

17

3. Conceptos fundamentales: Bloque de asignación

18

La asignación es una operación destructiva. Esto es, si una variable tenía un valor asignado, éste se destruye, conservando el nuevo valor.

Un bloque de asignación se utiliza para asignar valores o expresiones a una variable.

variable expresión o valor

Suma 0

Una expresión puede ser aritmética o lógica, o una constante o una variable.

4. Estructuras de control

19 19

Las estructuras de control indican el flujo o camino estándar que debe seguir un proceso de solución de un problema

Se clasifican en: estructuras de control secuencial, selectivas y repetitivas.

4.1 Estructura de control secuencial

20

La estructura de control secuencial, es la más simple de todas. Se utiliza cuando se tiene que ejecutar una instrucción tras otra, sin tener que evaluar una expresión.

Representación en algoritmo.

acción 1

acción 2

acción n

Ejemplo1

1. suma 0

2. Imprimir “Teclea un numero”

3. Leer en variable num

4. suma suma + num

21

Ejemplo 2. Supongamos que las variables i, acum y j son

de tipo entero, rea y sum de tipo real, car de tipo caracter y

band de tipo booleano. Considerar que se tienen que

realizar las siguientes asignaciones.

1. i 0

2. i i + 1

3. acum 0

4. j 52 / 3

5. car „a‟

6. acum j / i

7. rea acum / 3

8. band (8 > 5) y (15 <23 )

9. sum acum * 5 / j2

10. i i * 3

11. rea rea / 5

12. band band o (i = j)

13. i rea

14. car j

4.1 Estructura de control secuencial

4.1. Estructura de control secuencial: Prueba de escritorio del ejemplo 2.

22

enteros: i,

acum, j

caracter: car

real: rea, sum

boolean: band

4.1 Estructura de control secuencial

23

A continuación se presentan dos ejemplos de diagramas de flujo que usan estructuras de control secuencial y posteriormente se solicita realice algunos ejercicios.

4.1 Estructura de control secuencial

Ejemplo 3. Dado por teclado tres caracteres, imprímalos en orden inverso. Realice el análisis, diagrama de flujo y una prueba de escritorio.

Análisis.

Datos de entrada: ejemplo x, y, z

variables a,b,c: caracter

Proceso

no aplica.

Salida:

imprimir z, y, x.

24

“Programa que imprime tres caracteres invertidos”

“Inicio”

“Fin”

“Teclea tres caracteres: ”

a, b, c

“Los caracteres invertidosson: ”,c,b,a

4.1 Estructura de control secuencial

Ejemplo 4. Dado por teclado un número entero, calcular e imprimir el cuadrado y el cubo del número.

Realice el análisis, diagrama de flujo y una prueba de escritorio.

Análisis.

Datos de entrada: ejemplo 3

variables num: entero

Proceso

variables cuadrado, cubo: entero

cuadrado=num*num

cubo=num*num*num.

Salida:

imprimir cuadrado= 9, cubo = 27

25

4.1 Estructura de control secuencial: Prueba de escritorio

26

4.1 Estructura de control secuencial

Para los siguientes ejercicios, desarrollar análisis, diagramas de flujo y prueba de escritorio.

1. Dado por teclado la matrícula y 4 calificaciones de su primera evaluación, calcule e imprima el promedio y la matrícula.

2. Calcular el área de un trapecio, dado por teclado base mayor, base menor y altura. A=(B+b)h/2.

3. Dado por teclado el radio y la altura de un cilindro, calcule, e imprima el volumen correspondiente. V=(pi*r2)h

27

4.1 Estructura de control secuencial

4. Dado por teclado una cantidad en pesos y el tipo de cambio de un dólar, calcule la conversión e imprima la cantidad correspondiente en dolares.

5. Dado por teclado el peso de un producto en gramos, calcule e imprima el peso en kilogramos.

6. Suponga que le prestan un dinero x a un porcentaje y. Calcule e imprima los intereses que tiene que pagar en un año.

7. Le solicitan que vaya a comprar x litros de gasolina, donde cada litro cuesta y pesos. Calcule e imprima el total a pagar.

28

4.2 Estructura de control selectiva

29

Esta toma de decisión se basa en la evaluación de una o más condiciones que señalaran como alternativa o consecuencia, la rama a seguir.

Esta estructura de control se utiliza en la solución de problemas donde se necesite tomar una decisión.

En ocasiones la toma de decisiones se realiza en cascada. Es decir, se toma una decisión, se marca la rama correspondiente a seguir, se vuelve a tomar otra decisión y así sucesivamente.

4.2 Estructura de control selectiva

30

Estas estructuras selectivas se clasifican en : 1. Si Entonces (selectiva simple) 2. Si Entonces / Sino (selectiva doble) 3. Si multiple (selectiva múltiple)

Cuando a las estructuras selectivas se aplican en cascada, se pueden combinar las estructuras anteriores.

4.2.1 Selectiva simple (si entonces)

31

Esta estructura permite que el flujo del diagrama siga un camino específico si se cumple una condición o un conjunto de condiciones. Si al evaluar la condición (o condiciones) el resultado es verdadero, entonces se ejecuta(n) cierta(s) operación(es). Luego se continúa con la secuencia normal del diagrama.

4.2.1 Selectiva simple (si entonces).

Ejemplo 5. Dada una calificación por teclado, escriba "aprobado" en caso que la calificación sea mayor o igual que 6.

Realice el análisis, diagrama de flujo y prueba de escritorio.

Después mejorar la condición, donde la calificación aprobatoria sea mayor o igual a 6 y menor o igual a 10. 32

4.2.1 Selectiva simple (si entonces). Prueba de escritorio

33

4.2.1 Selectiva simple (si entonces)

Ejemplo 6. Dado un sueldo de un trabajador por teclado, calcule un aumento del 15% si su sueldo es menor a $1000, e imprima en este caso el nuevo sueldo.

Realice el análisis, diagrama de flujo y prueba de escritorio.

34

4.2.2 Selectiva doble (si entonces / sino)

35

Esta estructura de control permite que el diagrama de flujo se bifurque por dos ramas diferentes en el punto de la toma de decisión. Si al evaluar la condición, resulta verdadera, entonces se sigue un camino específico y se ejecutan ciertas operaciones. En caso que la condición sea falsa, se sigue otro camino y se ejecutan otras operaciones.

4.2.2 Selectiva doble (si entonces / sino)

Ejemplo 7. Dada una calificación por teclado, escriba "aprobado" en caso que la calificación sea mayor o igual que 6, en otro caso imprima

"reprobado".

Realice el análisis, diagrama de flujo y prueba de escritorio.

36

4.2.2 Selectiva doble (si entonces / sino)

Ejemplo 8. Dado un sueldo de un trabajador por teclado, calcule un aumento del 15% si su sueldo es menor a $1000 y 12% en caso contrario. Imprima el nuevo sueldo del trabajador.

Realice el análisis, diagrama de flujo y prueba de escritorio.

37

4.2.2 Selectiva doble (si entonces / sino)

38

Ejemplo 9. Dados tres números por teclado encontrar e imprimir el mayor de ellos.

Realice el análisis, diagrama de flujo y prueba de escritorio.

4.2.3 Selectiva múltiple (si multiple)

39

Permite que el flujo del diagrama se bifurque por varias ramas en el punto de la toma de decisión, esto en función del valor que tome el selector (entero o carácter). Así, si el selector toma:

el valor 1, se ejecutará la acción 1,

si toma el valor 2, se ejecutará la acción 2,

si toma el valor N se realizará la acción N.

Se continuará con el flujo normal del diagrama realizándose la acción N+1

4.2.3 Selectiva múltiple (si multiple)

40

4.2.3 Selectiva múltiple (si multiple)

41

Ejemplo 10. Dado por teclado los datos categoría y el sueldo de un trabajador, calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Imprima la categoría del trabajador y su nuevo sueldo.

Realice el análisis, diagrama de flujo y prueba de escritorio.

4.2.3 Selectiva múltiple (si multiple)

42

4.2.3 Selectivas en cascada (anidadas) [2]

43

En muchos casos en la solución de problemas, después de tomar una decisión y marcar el camino a seguir, es necesario tomar otra decisión y así sucesivamente.

4.2.3 Selectivas en cascada (anidadas) [2]

44

4.2.3 Selectivas en cascada (anidadas) [2]

45

4.2.3 Selectivas en cascada (anidadas)

46

Ejemplo 11. Dados por teclado tres números enteros diferentes, imprimir los números en orden descendente.

Realice el análisis, diagrama de flujo y prueba de escritorio.

4.2.3 Selectivas en cascada (anidadas). Ejemplo 11

47

Ejemplo 11. Dados por teclado tres números enteros diferentes, imprimir los números en orden descendente.

Realice el análisis, diagrama de flujo y prueba de escritorio.

Ejercicios de estructuras selectivas

Para los siguientes ejercicios realice el diagrama de flujo y una prueba de escritorio.

1. Dado por teclado como datos los valores enteros P y Q, determine si los mismos satisfacen la siguiente expresión:

P3+Q4-2*P2 < 680

2. Dado por teclado un número entero, determine e imprima si el número es positivo o negativo.

48

Ejercicios de estructuras selectivas

3. Dado por teclado un número determine e imprima si es par o impar, para esto apóyese de la operación modulo que obtiene el residuo de la operación.

4. Dado por teclado la matrícula y 5 calificaciones de un alumno, calcule e imprima el promedio y la palabra "aprobado" si el alumno tiene un promedio mayor o igual que 6, y la palabra "no aprobado" en caso contrario.

5. Dado por teclado tres números enteros, determine si están en orden decreciente.

49

Ejercicios de estructuras selectivas

6. Dado por teclado el valor de los coeficientes a, b, c de la

expresión que resuelve una ecuación de segundo grado

, encuentre el valor de las raíces x1, x2,

mediante el calculo del discriminante D=b2-4ac, si el

discriminante es >=0 imprima el valor correspondiente a

las raíces son reales, en otro caso, imprimir "las raíces

son imaginarias".

50

Ejercicios de estructuras selectivas

7. En la compra de artículos, dependiendo del monto le aplican un descuento:

Si el monto es menor que $500, no hay descuento.

Si el monto se encuentra entre $500 y menor que $1000, el 5%.

Si el monto se encuentra entre $1000 y menor que $7000, el 11%.

Si el monto se encuentra entre $7000 y menor que $15000, el 18%.

Si el monto es mayor o igual a $15000, el 25%.

51

Ejercicios de estructuras selectivas

8. Realizar las operaciones básicas con 2 números leídos por teclado. Considere que la división por cero es una indeterminación.

9. Dado por teclado el número del 1 al 7, que imprima el correspondiente día de la semana (Ej.: 1. Lunes; 2. Martes; etc). Si ingresa un número fuera del rango, deberá imprimir el mensaje "Error… valor fuera de rango".

10. Dado por teclado dos números reales y el símbolo de una operación básica (+, -, *,/), imprima el resultado correspondiente. Si el símbolo no es correcto, imprima el mensaje "Error en símbolo".

52

4.3 Estructuras de control repetitivas

53

Las instrucciones son las mismas, los datos que operan en ellas son los que varían.

La estructuras repetitivas se clasifican en: para, mientras y hacer mientras

Se utilizan en algoritmos cuyas operaciones se deben ejecutar un número repetido de veces, llamado ciclo.

Todo ciclo debe terminar de ejecutarse después de un número finito de veces, por tanto, en cada iteración se debe evaluar las condiciones necesarias para decidir si se debe seguir ejecutando el ciclo o detenerse.

4.3.1 Estructuras de control repetitivas: Para

54

Es la estructura de control que ejecuta un ciclo un número definido de veces. Por ejemplo cuando se necesita calcular el promedio de calificaciones de un curso, se debe sumar las N calificaciones de los alumnos y dividir la suma entre N; cuando se necesita calcular la nómina total de la empresa, se tiene que sumar los sueldos de los N empleados de la misma. Es decir, se sabe por anticipado cuántas veces tenemos que repetir una determinada operación, acción o tarea. El número de veces se obtiene del planteamiento del problema o de una lectura.

4.3.1 Estructuras de control repetitivas: Para

55

Ejemplo 12. Dado por teclado los sueldos de 10 trabajadores de una empresa, obtenga el total de nómina de la misma. Realice el análisis, diagrama de flujo y prueba de escritorio.

56

Ejemplo 13. Dado por teclado las calificaciones de N alumnos, calcular e imprimir el promedio. Realice el análisis, diagrama de flujo y prueba de escritorio.

4.3.1 Estructuras de control repetitivas: Para

4.3.2 Estructuras de control repetitivas: Mientras

57

Esta estructura de control se recomienda utilizar cuando no se sabe cuantas veces se repetirá el ciclo. Tal número depende de las proposiciones que están dentro del ciclo. Algunos ejemplos de problemas: cuando se tiene que obtener el total de una serie de gastos, pero no se sabe exactamente cuántos son; o cuando se tiene que sacar el promedio de calificaciones de un examen, pero tampoco se sabe cuántos alumnos lo aplicaron, el ciclo se repite mientras se tengan calificaciones de alumnos.

4.3.2 Estructuras de control repetitivas: Mientras

58

En la estructura mientras se distinguen dos partes:

Ciclo: conjunto de instrucciones que se ejecutarán repetidamente.

Condición de terminación. La evaluación de esta condición se realiza al inicio del ciclo y mientras la condición es verdadera se ejecuta el ciclo.

59

Ejemplo 14. Obtener la suma de los gastos que hicimos en el último viaje, pero no sabemos cuántos fueron. Realice el análisis, diagrama de flujo y prueba de escritorio.

4.3.2 Estructuras de control repetitivas: Mientras

60

Ejemplo 15. Dado un grupo de números naturales positivos, calcule e imprima el cubo de estos números. Termine la entrada de números con -1. Realice el análisis, diagrama de flujo y prueba de escritorio.

4.3.2 Estructuras de control repetitivas: Mientras

4.3.2 Estructuras de control repetitivas: Hacer-Mientras

61

Es una estructura de control parecida al ciclo Mientras, la diferencia es que la condición se coloca al final del ciclo.

Esto significa que las instrucciones del ciclo se ejecutan al menos una vez.

A continuación se muestra su diagrama de flujo.

62

Ejemplo 16. Dado un número entero positivo calcular el factorial de ese número. Definición n!: n*n-1*n-2*…*1 Ejemplo 4!=4*3*2*1=24 Realice el análisis, diagrama de flujo y prueba de escritorio para num=4, 5, 0

4.3.2 Estructuras de control repetitivas: Hacer-Mientras

Ojo, con esta herramienta regresa al ciclo cuando la condición es falsa, a diferencia de lo que indica el diagrama de flujo y lenguajes de programación

Referencias

1. Zapata Ospina, Carlos A. “Fundamentos de programación, Guía de autoenseñanza”. Alfaomega Ra-Ma. 2006

2. Cairó Osvaldo. “Metodología de la programación”. Alfaomega, 3ª edición. 2005.

3. Joyanes Aguilar, Luis. “Fundamentos de programación”. McGraw-Hill, 4ª edición. 2008.

63

top related