2da Diagramas de Flujos 2014b

47
SEMANA 02 DIAGRAMAS DE FLUJO 1

description

informatica

Transcript of 2da Diagramas de Flujos 2014b

Page 1: 2da Diagramas de Flujos 2014b

SEMANA 02DIAGRAMAS DE FLUJO

1

Page 2: 2da Diagramas de Flujos 2014b

Algoritmos y diagramas de flujo

“ Formalmente definimos un algoritmo como un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema”

Diagramas de flujo• Un diagrama de flujo representa la esquematización gráfica de

un algoritmo.

• En realidad muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema.

• Su correcta construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún lenguaje de programación.

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

• A continuación, presentamos los símbolos que utilizaremos y una explicación de los mismos. Estos satisfacen las recomendaciones de la ISO y la ANSI.

Page 3: 2da Diagramas de Flujos 2014b

Algoritmos y diagramas de flujo

Símbolo utilizado para marcar el inicio y el fin del diagrama flujo.

Símbolo utilizado para introducir los datos de entrada/salida.

Símbolo utilizado para representar un proceso.

Símbolo utilizado para representar una decisión.

Símbolo utilizado para expresar conexión dentro de una misma página.

Símbolos utilizados para expresar la dirección del flujo del diagrama

Símbolo utilizado para expresar conexión entre páginas diferentes.

Page 4: 2da Diagramas de Flujos 2014b

Algoritmos y diagramas de flujo

Símbolo utilizado para representar una decisión múltiple. En su interior se almacena un selector y dependiendo del valor de dicho selector se sigue por una de las ramas o caminos alternativos.

Page 5: 2da Diagramas de Flujos 2014b

Programa de Aplicación

Programa que permite resolver la ecuación de primer grado

5

Programa que permite resolver la ecuación de primer grado

a x + b = 0

?a

bx = -b / a

Dim a,b,x as integer

MessageBox.Show(“Ingrese valores de EC”); a= Textbox1.Text b= Textbox2.Text if a = 0 Then MessageBox.Show (“error”) else x = - b / a MessageBox.Show(“La solución es : ”,x) End If MessageBox.Show(“Fin programa”);

Algoritmo EC 1er GradoVariables a,b,x de tipo enteroInicio Escribir(“Ingrese valores de EC”) Leer (a,b) Si a = 0 entonces escribir (“Error”) sino x=-b/a Escribir (“La solución es:”,x) Fin Escribir(“Fin programa”)

Fin

Page 6: 2da Diagramas de Flujos 2014b

Diagrama de Flujo y Pseudo-Código

InicioInicio

Escribir“Mensaje 1”

Fin

Leervar1,x, y

a = 3 * x + yb = a / var1

Entero var1, x , yReal a, b

Si a > bVF

Inicio de Algoritmo

Definición de variables

Impresión de mensajes

Lectura de mensajes

Transformación de datosOperaciones sobre los datos

Bifurcación en la ejecución de instrucciones

Conector

Fin de algoritmo

DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO

Inicio

Variables Entero var1, x, y Real a, b

Escribir (“Mensaje 1”)

Leer (var1, x, y)

a = 3 * x + yb = a / var1

Si a > b Entonces Instrucciones Sino InstruccionesFin si

Fin

Page 7: 2da Diagramas de Flujos 2014b

Algoritmos y diagramas de flujo

Reglas

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

2. Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas verticales y horizontales.

3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas.

4. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a derecha (right to left).

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

6. Si el diagrama de flujo requiere más de una hoja para su construcción, debemos utilizar los conectores adecuados y enumerar las páginas convenientemente.

7. No puede llegar más de una línea a un símbolo.

Page 8: 2da Diagramas de Flujos 2014b

Pseudocódigo

8

Es un lenguaje artificial e informal útil para el desarrollo de algoritmos. No es un lenguaje de programación verdadero y, por lo tanto, no puede ser compilado y ejecutado.

Page 9: 2da Diagramas de Flujos 2014b

Pseudocodigo

• Ejemplo 1: Sumar dos números.• Desarrollo

InicioEscribir, “Ingrese los 2 números a sumar”Leer num1,num2resultado = num1 + num2Escribir, “La suma es:”, resultadoFin

9

Page 10: 2da Diagramas de Flujos 2014b

• Ejemplo 2: Determinar el mayor de dos números.

• Desarrollo

InicioEscribir, “Ingrese los 2 números”Leer num1,num2Si (num1 > num2) entonces

Escribir,“El mayor es:”, num1

Si noEscribir,“El mayor es:”, num2

Fin

Pseudocodigo

10

Page 11: 2da Diagramas de Flujos 2014b

• Ejemplo 3: Sumar del 1 al 1000.• Desarrollo

Iniciox = 1resultado = 0Mientras (x =< 1000) hacer

resultado = resultado + xx = x + 1

Fin MientrasEscribir, “La suma es:”, resultadoFin

Pseudocodigo

11

Page 12: 2da Diagramas de Flujos 2014b

• Ejemplo 4: Determinar el mayor de TRES números.

InicioEscribir, “Ingrese los 3 números”Leer X1,X2,X3mayor = X1Si (mayor < X2) entonces

mayor = X2

Fin si

Si (mayor < X3) entoncesmayor = X3

Fin siEscribir, “El mayor es:” mayorFin

El valor de X1 se almacena en mayor

Pseudocodigo

12

Page 13: 2da Diagramas de Flujos 2014b

• Son diagramas que modelan un algoritmo, se aprecia en ellos el flujo de los datos y las acciones que los procesan.

• Hay de 3 tipos:1.- Secuenciales

2.- Selectivos

3.- Repetitivos

Diagramas de Flujo

13

Page 14: 2da Diagramas de Flujos 2014b

Diagramas de Flujo Secuenciales

Inicio

acción 1

acción 2

acción n

Fin

Diagrama de Flujo

acción 1

acción n

acción 2

Pseudo-Lenguaje

14

Page 15: 2da Diagramas de Flujos 2014b

EJEMPLO 1.-Hallar el cuadrado de un número previamente leído

Pseudocódigo a: entero leer (a) a = a*a escribir (a)Fin

a = a*a

Escribir a

SOLUCION (a)

Page 16: 2da Diagramas de Flujos 2014b

Solución ( b)

a, b: entero

leer (a)

B = a*a

escribir (b)

Memoria

XX

a b 1

2

3

Pantalla

100XX10100

Page 17: 2da Diagramas de Flujos 2014b

Para resolver

Se requiere un programa que calcule la suma y el producto de dos números. Cuales de los siguientes segmentos producen el resultado correcto:

Page 18: 2da Diagramas de Flujos 2014b

Para resolver

a,b,s,p: real I II IIIleer (a) leer(b) leer(b)leer (b) leer(a) p =a*bS =a+b p =a*b leer(a)P =a*b escribir(p)

escribir(p)escribir(s) s =a+b s =a+b escribir(p) escribir(s)

escribir(s)

Page 19: 2da Diagramas de Flujos 2014b

Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”.

Diagrama de flujo Selectivos

Page 20: 2da Diagramas de Flujos 2014b

20

Diagrama de flujo de Selección - Simple

Diagrama de Flujo

Sentencia

Condiciónsí

no

En Visual Basic

Si <condición> entonces Sentenciafin_si

If (condición)Then Sentencia

End if

Pseudocodigo

Page 21: 2da Diagramas de Flujos 2014b

21

Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición.

Diagramas de Flujo - Selectivo Doble

Page 22: 2da Diagramas de Flujos 2014b

Diagramas de Flujo - Selectivo Doble

Diagrama de FlujoPseudocodigo

Si (condición) entonces acción 1

Si noacción 2

Fin siacción 2

condiciónnosi

acción 1

22

Page 23: 2da Diagramas de Flujos 2014b

SELECCIÓN

SiNo

Tengo un buen trabajo ?????

Page 24: 2da Diagramas de Flujos 2014b

24

EJEMPLO 1. Determinar el mayor de dos números

Page 25: 2da Diagramas de Flujos 2014b

EJEMPLO 2

Dado un número previamente leído, si el numero es mayor que cero hallar

la suma , caso contrario hallar el producto

Page 26: 2da Diagramas de Flujos 2014b

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

Memoria

XXX

a b XXX

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

40

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

80

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

80

a, b: entero

Page 27: 2da Diagramas de Flujos 2014b

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

Memoria

XXX

a b XXX

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

-10

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

100

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

leer (a)si a >0 entonces b := a+a sino b := a*afin_siescribir (b)

100

a, b: entero

Page 28: 2da Diagramas de Flujos 2014b

Diagrama de Flujo - Selección Múltiple

Page 29: 2da Diagramas de Flujos 2014b

29

En Visual Basic

if (condición 1)Then accion1Elseif (condición 2)Then

accion2Elseif (condición 3)Then

accion3.............................Elseif (condicion N) Then accion N-1Else accion N End if

Page 30: 2da Diagramas de Flujos 2014b

Pseudocodigo• si <condición1> entonces• <acciónes1>• si_no si <condición2> entonces• <acciones2>• si_no si <condición3> entonces• <acciones3>• ………………• ……………..• si_no• <accionesX>• fin_si

Page 31: 2da Diagramas de Flujos 2014b

EJEMPLO 3

Dados tres números enteros, calcular el mayor

Page 32: 2da Diagramas de Flujos 2014b
Page 33: 2da Diagramas de Flujos 2014b

a b c

mayor

XXX XXX XXX

XXX

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b AND a>=c entonces mayor = asino si b>=a AND b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

Memoria

25 10

10

máximo 10

Pseudocódigo

Page 34: 2da Diagramas de Flujos 2014b

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b AND a>=c entonces mayor = asino si b>=a AND b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a b c

mayor

XXX XXX XXX

XXX

Memoria

92 4

9

máximo 9

Page 35: 2da Diagramas de Flujos 2014b

Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de las tres calificaciones es mayor o igual a 11; reprueba en caso contrario.

35

EJEMPLO 4

Page 36: 2da Diagramas de Flujos 2014b

AlgoritmoInicio

Real Nota1, Nota2, Nota3Real PromedioString Mensaje

Leer Nota1, Nota2, Nota3

Promedio = (Nota1 + Nota2 + Nota3) / 3Si promedio >= 11 entonces

Mensaje = “Alumno Aprobado”si no

Mensaje = “Alumno Reprobado”Fin si

Escribir MensajeFin

36

Page 37: 2da Diagramas de Flujos 2014b

En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000 ¿ Cual será la cantidad que pagara una persona por su compra?

37

EJEMPLO 5

Page 38: 2da Diagramas de Flujos 2014b

AlgoritmoInicio

Entero CompraReal Descuento, Tot_Pagar

Leer Compra

Si Compra > 1000 entoncesDescuento = Compra * 0.2

si noDescuento = 0

Fin siTot_Pagar = Compra – Descuento

Escribir Tot_pagarFin

38

Page 39: 2da Diagramas de Flujos 2014b

Un obrero necesita calcular su sueldo, el cual se obtiene de la sig. manera:Si trabaja 40 horas o menos se le paga s/.6 soles por hora trabajadaSi trabaja mas de 40 horas se le paga s/.10 soles por cada una de las primeras 40 horas trabajadas y s/. 20 soles por cada hora extra.

39

EJEMPLO 6

Page 40: 2da Diagramas de Flujos 2014b

AlgoritmoInicio

Entero Hora_trabajada, Hora_extra, Sueldo

Leer Hora_trabajada

Si Hora_trabajada > 40 entoncesHora_extra = Hora_trabajada - 40Sueldo = Hora_extra * 20 + 40 * 10

si noSueldo = Hora_trabajada * 6

Fin-si

Escribir SueldoFin

40

Page 41: 2da Diagramas de Flujos 2014b

41

Diagrama de flujo Repetitivas (Mientras)

Diagrama de Flujo

Sentencia

condición

no

while (condición)

sentencia

End While

En Visual Basic

Page 42: 2da Diagramas de Flujos 2014b

TRADUCCION MIENTRAS

PSEUDOCODIGOmientras <condición> hacer <bloque instrucciones> fin_mientras

Page 43: 2da Diagramas de Flujos 2014b

Diagramas de Flujo Repetitivos

Diagrama de FlujoPseudo-Lenguaje

Iniciox = 1suma = 0Mientras (x =< 1000) suma = suma + x x = x + 1Fin Mientras

“La suma es:”, suma

Finsuma=suma+x

X=x+1

x=<1000

no

Ejemplo: Sumar números del 1 al 1000

x = 0suma = 0

Escribir,suma 43

Page 44: 2da Diagramas de Flujos 2014b

44

EJEMPLO. Desarrolle un algoritmo que realice la sumatoria de los números enteros comprendidos entre el 1 y el 10, es decir, 1 + 2 + 3 + …. + 10.

Page 45: 2da Diagramas de Flujos 2014b

Ejercicios

1. Desarrolle un programa que permita calcular 1 + 2 + 3 + ..........+ N

2.- Área de un triangulo cualquiera en función de sus tres lados

 

3.- Calculo de las tres alturas de un triangulo cualquiera en función de sus tres lados

4.- Dado como dato el sueldo de un trabajador calcule su aumento según el siguiente criterio.

Sueldo < S/. 1,000 aumento 30%

S/. 1,000 < = Sueldo < = S/. 1,500 aumento 25%

Sueldo > S/. 1,500 aumento 20% Imprime el nuevo sueldo del trabajador.

Page 46: 2da Diagramas de Flujos 2014b

5.- Dado como dato Y calcule el resultado de la siguiente funcion:

3*Y+30 Si 0 < Y <= 11

X = Y*Y-10 Si 11< Y <= 33

Y*Y*Y+Y*Y-1 Si 33< Y <= 64

0 Para cualquier otro valor de y

Imprime X, Y. 

 

Page 47: 2da Diagramas de Flujos 2014b

6.- Solución de ecuación de la forma Ax2 + Bx + C = 0

7.- Lea un numero entero N y calcule el resultado de la siguiente serie:

1 + ½ + 1/3 + ¼ + .................+ 1/N

8.- Lea un numero entero N y calcule el resultado de la siguiente serie:

1 – ½ + 1/3 – ¼ + ................ + 1/N

9.- Dado como dato N números enteros, determine cuantos de ellos son pares y cuanto impares.