SlideShare una empresa de Scribd logo
1 de 26
4
Fundamentos de la programación
DIAGRAMAS DE FLUJO
Instituto de Educación Superior Pedagógico
Público
“Gamaniel Blanco Murillo”
Computación e Informática
Lenguaje de Programación I
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Tanto en la fase de análisis del problema como durante el
diseño del algoritmo, se plantea la necesidad de representar
claramente el flujo de operaciones que se han de realizar
para su resolución y el orden en que estas operaciones
deber ser ejecutadas.
Una vez que el algoritmo esté diseñado se debe proceder a
representarlo mediante algún método de programación,
siendo los más usuales: diagramas de flujo, pseudocódigo,
diagramas N-S o Tablas de decisión.
Una vez graficado el algoritmo se procede a su escritura en
algún lenguaje de programación para su posterior ejecución.
Esta representación independiza al algoritmo del lenguaje
de programación elegido, permitiendo de esta manera que
pueda ser codificado indistintamente en cualquier lenguaje.
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Las dos herramientas mas utilizadas comunmente para describir
algoritmos son:
Diagramas de Flujo: son representaciones gráficas de secuencias
de pasos a realizar. Cada operacion se representa mediante un
símbolo normalizado el Instituto Norteamericano de Normalizacion
(ANSI - American National Standars Institute). Las líneas de flujo
indican el orden de ejecución.
Los diagramas de flujo suelen ser usados solo para representar
algoritmos pequeños, ya que abarcan mucho espacio.
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Pseudocódigos: describen un algoritmo de forma similar a un
lenguaje de programacióon pero sin su rigidez, de forma más parecida
al lenguaje natural. Presentan la ventaja de ser más compactos que
los diagramas de flujo, más fáciles de escribir para las instrucciones
complejas y más fáciles de transferir a un lenguaje de programación.
El pseudocódigo no está regido por ningún estándar.
Algunas palabras usadas son LEER/IMPRIMIR para representar las
acciones de lectura de datos y salida de datos.
Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12
pulgadas), a partir de la altura en centímetros, que se introduce por el teclado.
Inicio
1- IMPRIMIR 'Introduce la altura en centimetros: '
2- LEER: altura
3- CALCULAR pulgadas=altura=2:54
4- CALCULAR pies=pulgadas=12
5- IMPRIMIR 'La altura en pulgadas es: ', pulgadas
6- IMPRIMIR 'La altura en pies es : ', pies
Fin
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
El uso de diagramas de flujo como herramienta de
programación tiene beneficios que resumidamente se
detallan:
Rápida comprensión de las relaciones
Se pueden usar como modelos de trabajo para el diseño de
nuevos programas
Documentación adecuada de los programas
Produce una codificación eficaz en los programas
Depuración y pruebas ordenadas de programas
Fácil de traducir a cualquier lenguaje de programación.
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Los símbolos estándar han sido normalizados por ANSI
(American National Standards Institute), IBM, IRAM
(Instituto Racionalizador Argentino de Materiales) y son muy
variados..
5. 2 Representacion Simbólica
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
R epresena el F in y C om ienzo del diagram a
E ntrada /salida - C ualquier tipo de introducción de datos en la m em oria desde los
periféricos de entrada o registro de la inform ación procesada en un periférico de
salida (no interesa el soporte)
O perac ión o proc es o - accio nes a rea liz ar(sum ar dos núm eros , c alc ular raíz
cuadrada, asignaciones, etc.-
S u brutina - llam ada a un subprogram a qu e es u n m ódulo in dependiente del
program a princ ipal que realiza una determ inada ta rea y regresa a la s iguiente
instrucción de donde fue llam ada.
D ecis ión - operac iones lógicas o de c om prac ión en tre datos y en función del
resultado determ ina cual de los dos distintos cam inos alternativos del program a se
debe seguir. N orm alm ente tiene dos respuestas S I o N O
C onector - enlaza dos partes cualesquiera del diagram a m ediante un conector de
salida y otro de entrada. S iem pre dentro de la m ism a página
Línea de F Lujo - indica el sentido de la ejecución de las operaciones
C onector - idem al conector anterior pero usando distitnas páginas
T eclado - introducción m anual de datos desde el teclado
? N oS i
S IM B O L O S F U N C I O N
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez C onector - idem al conector anterior pero usando distitnas páginas
T eclado - introducción m anual de datos desde el teclado
Im presora - salida de datos en form a im presa
D isco M agnético - para lectura o grabación de datos
P antalla - E ntrada / S alida de datos por pantalla
C inta M agnética - para lectura o grabación de datos
D isquete o disco flexible - para lectura o grabación de datos
C D - D isco C om pacto - para lectura o grabación de datos
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Las estructuras básicas son las tres siguientes:
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
5.3 Tecnicas de construccion de diagramas
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
Se compone de un grupo de acciones que se realizan todas
y en el orden en que están escritas, sin posibilidad de omitir
ninguna de ellas.
Las tareas se suceden de forma tal que la salida de una de
ellas es la entrada de la siguiente y así sucesivamente hasta
el final del proceso.
5.3 Tecnicas de construccion de diagramas
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
Permite la selección entre dos grupos de acciones dependiendo
de que una determinada condición se cumpla o no.
Estas estructuras se utilizan para tomar decisiones lógicas; por
ello recibe también el nombre de estructuras de decisión o
alternativas o condicional.
Las condiciones que se especifican usan expresiones lógicas y
usan la figura geométrica en forma de rombo. Estas estructuras
pueden ser: Simples o dobles.
5.3 Tecnicas de construccion de diagramas
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
Simple: Solo obliga a realizar acciones si se cumple la condición. El
“no cumplimiento” de la condición implica que no se realizará
ninguna acción.
Doble: El cumplimiento o no de la condición lógica obliga a la
ejecución de diferentes grupos de acciones.
5.3 Tecnicas de construccion de diagramas
2
Condicion
Accion
SINO Condicion
Accion
SI
Accion
NO
1
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
Estructura de elección entre varios casos
Este tipo de estructura permite decidir entre varios caminos
posibles, en función del valor que tome una determinada
instrucción.
5.3 Tecnicas de construccion de diagramas
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
Permite repetir una o varias instrucciones un número
determinado de veces que vendrá determinado por una
condición. Esta condición se conoce como condición de
salida.
A estos tipos de estructuras se las conoce también con el
nombre de bucles o rulos y al hecho de repetir la ejecución
de acciones se llama iteración.
5.3 Tecnicas de construccion de diagramas
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
HACER MIENTRAS: Se caracteriza porque la condición de salida del
bucle está situada al comienzo del mismo, es decir las acciones la
hace mientras se cumple determinada condición.
Cuando se ejecuta una estructura de este tipo, lo que primero se hace
es evaluar la condición, si la misma es falsa no se realiza ninguna
acción. Si la condición resulta verdadera entonces se ejecuta el
cuerpo del bucle (acciones de la Figura). Este mecanismo se repite
mientras la condición sea verdadera.
5.3 Tecnicas de construccion de diagramas
C o n d ic io n
S i
N o
A c c io n e s
Se hace notar que en este tipo de estructura
las acciones pueden no ejecutarse ninguna
vez.
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
HACER HASTA: Se caracteriza porque la condición que controla la
realización de las acciones del bucle está al final del mismo. En
este tipo de iteración las acciones se repiten mientras la condición
sea falsa, lo opuesto a la estructura hacer mientras.
Este tipo de bucle se usa para situaciones en las que se desea que
un conjunto de instrucciones se ejecute al menos una vez antes de
comprobar la condición de iteración. La figura muestra la gráfica
correspondiente.
5.3 Tecnicas de construccion de diagramas
C o n d ic io n N o
A c c io n e s
S I
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
5.3.1 Estructuras Básicas
Secuencia
Alternativa o Selectiva
Iteración o Repetitiva
Se puntualizan algunas diferencias entre estas dos estructuras:
●La estructura mientras termina cuando la condición es falsa, en
cambio la estructura hasta termina cuando la condición es verdadera.
●En la estructura hasta el cuerpo del bucle se ejecuta siempre al
menos una vez, en cambio en la estructura mientras permite que el
cuerpo del bucle nunca se ejecute.
5.3 Tecnicas de construccion de diagramas
C o n d ic i o n
S i
N o
A c c io n e s
C o n d ic io n N o
A c c io n e s
S I
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Para confeccionar un diagrama de flujo, es aconsejable
respetar las siguientes reglas:
●Todo diagrama de flujo debe indicar claramente donde
comienza (INICIO o COMENZAR) y donde termina (FIN o
PARAR).
●El orden en que deben escribirse los símbolos es de arriba
abajo y de izquierda a derecha.
●Es aconsejable emplear un símbolo para cada acción.
●Dentro de los símbolos no especificar instrucciones propias
de algún lenguaje de programación.
●La secuencia se indica mediante flechas o líneas de conexión
(horizontales / verticales), las cuales deben ser siempre
rectas, no se deben cruzar ni deben estar inclinadas.
5.4 Normas para su representación
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
●A todos los símbolos (excepto al INICIO), les debe llegar una
línea de conexión.
●De todos los símbolos, excepto FIN y el de DECISIÓN, debe
salir una sola línea de conexión.
●Es aconsejable usar conectores cuando las líneas de conexión
entre operaciones no adyacentes son muy largas, pero hay que
tener en cuenta que el uso exagerado de conectores dificulta el
entendimiento.
●Cuando trabajamos con operaciones lógicas recurrir
preferentemente a la lógica positiva antes que a la lógica
negativa. Es más claro decir si A = B, en vez de: si no es A <>
B
●El diagrama de flujo deberá ser lo mas claro posible de forma
tal que cualquier otro programador pueda seguirlo o usarlo con
total facilidad de entendimiento.
●El diagrama de flujo en conjunto debe guardar una cierta
simetría.
5.4 Normas para su representación
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Necesitamos hacer un programa que multiplique dos
números enteros.
Sabemos que “5 x 3 = 15″ es lo mismo que “5 + 5 + 5 = 15”.
Variables
● multiplicando: entero (nos indica el número que vamos a sumar)
● multiplicador: entero (nos indica el número de veces que lo vamos a
sumar)
● resultado: entero (en esta variable asignaremos el resultado)
● indice: entero (nos indicara el número de veces que el número se ha
sumado)
Ejemplo
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Necesitamos hacer un programa que multiplique dos
números enteros.
Algoritmo
1) Asignamos el número 5 a multiplicando
2) Asignamos el número 3 a multiplicador
3) Asignamos el número 0 a resultado
4) Asignamos el número 0 a indice
5) Sumamos multiplicando y resultado
6) Asignamos a resultado la suma
7) Incrementamos 1 a indice
8) Mientras indice sea menor a multiplicador regresamos al paso
5 de lo contrario continua
9) Muestra el resultado
10) Finalizar
Tenemos que inicializar cada variable de nuestro algoritmo, como se muestra en los
primeros cuatro pasos.
Ejemplo
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Necesitamos hacer un programa que multiplique dos
números enteros.
El siguiente paso es…
Prueba de escritorio
La prueba de escritorio es la ejecución manual de nuestro algorítmo
Ponemos a prueba nuestro algoritmo y nos mostrara si tenemos
errores (por lo que tendremos que modificar el algoritmo) o si esta
bien diseñado. Básicamente es el registro de las variables.
Siguiendo paso a paso nuestro algoritmo, obtendremos la siguiente
tabla.
Ejemplo
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Necesitamos hacer un programa que multiplique dos
números enteros.
Multiplicado 5
Multiplicador 3
Resultado 0 5 10 15
Indice 0 1 2 3
Vemos que el ultimo registro de la variable resultado, es 15, por lo que
nuestro algoritmo esta funcionando correctamente. Podemos probar con
otros número.
Ejemplo
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Necesitamos hacer un programa que multiplique dos
números enteros.
Diagramas de flujo
Una vez que hemos probado muestro algoritmo con la prueba de
escritorio y el resultado es el correcto, podemos seguir a diseñar el
diagrama de flujo.
Cada paso de nuestro algoritmo en un procedimiento y se representan
con un rectángulo. (Podemos agrupar varios procedimientos en un solo
rectángulo, pero no es lo indicado)
Cada condición como el paso número 8 se representa con un rombo.
Este será el diagrama de flujo de nuestro algoritmo.
Ejemplo
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Necesitamos hacer un programa que multiplique dos
números enteros.
1. Inicio
2. multiplicando = 5
3. multiplicador = 3
4. resultado = 0
5. indice = 0
6. do
7. resultado = resultado + multiplicando
8. indice = indice + 1
9. mientras indice < multiplicador
10. imprime resultado
11. finalizar
Ejemplo
Un programa lo podemos dividir en
bloques, por ejemplo; de la línea 6 a la 9
es un bloque, y para identificar cada
bloque en el código lo podemos escribir
después de unos espacios y así identificar
ciertos procesos. Esto nos sirve para en
códigos muy grandes.
Lenguaje de Programación I - Fundamentos de la Programación
HéctorLópezSánchez
Diagrama de Flujo
Y finalmente nos pasamos a la computadora y escribimos el código en algun
lenguaje de programacion, en nuestro caso C.
Pseudocódigo y Código
El pseudocódigo es el siguiente paso de nuestro programa, y es la
representación (escrita con nuestras propias palabras) del algoritmo.
Ejemplo
Inicio
multiplicando= 5
multiplicador = 3
resultado = 0
indice = 0
si indice < multiplicador
entonces
resultado = resultado +
multiplicando
indice = indice + 1
fin si
mostrar resultado
Fin

Más contenido relacionado

La actualidad más candente

Tutorial algoritmo representacion
Tutorial algoritmo representacionTutorial algoritmo representacion
Tutorial algoritmo representacionMichele André
 
Descripción de un Algoritmo
Descripción de un AlgoritmoDescripción de un Algoritmo
Descripción de un AlgoritmoOGEA UPS
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programaciónEdison Morales
 
Programacion modular
Programacion modularProgramacion modular
Programacion modularCarmen Silva
 
Ultimo trabajo de computacion
Ultimo trabajo de computacionUltimo trabajo de computacion
Ultimo trabajo de computacionJeniferman
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosMary Sanchez
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructuradaramirezadi
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructuradacortezbfajardo
 
Diapositiva carlos clark
Diapositiva carlos clarkDiapositiva carlos clark
Diapositiva carlos clarkcarlosclarkb
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la ProgramaciónJeckson Loza
 
estructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasestructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasJohan Velandia
 

La actualidad más candente (19)

Slam Ii
Slam IiSlam Ii
Slam Ii
 
Programación c2. p1.
Programación c2. p1.Programación c2. p1.
Programación c2. p1.
 
Tutorial algoritmo representacion
Tutorial algoritmo representacionTutorial algoritmo representacion
Tutorial algoritmo representacion
 
Descripción de un Algoritmo
Descripción de un AlgoritmoDescripción de un Algoritmo
Descripción de un Algoritmo
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Lenguajes de simulación
Lenguajes de simulaciónLenguajes de simulación
Lenguajes de simulación
 
Diagrama secuencial
Diagrama secuencialDiagrama secuencial
Diagrama secuencial
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
Programacion modular
Programacion modularProgramacion modular
Programacion modular
 
Ultimo trabajo de computacion
Ultimo trabajo de computacionUltimo trabajo de computacion
Ultimo trabajo de computacion
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para Algoritmos
 
Tema v
Tema vTema v
Tema v
 
Estructura secuencial
Estructura secuencialEstructura secuencial
Estructura secuencial
 
Tema v
Tema vTema v
Tema v
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructurada
 
Diapositiva carlos clark
Diapositiva carlos clarkDiapositiva carlos clark
Diapositiva carlos clark
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
estructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasestructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientras
 

Similar a Fp04

Tema5- Diagramas de Flujo y los algoritmos
Tema5- Diagramas de Flujo y los algoritmosTema5- Diagramas de Flujo y los algoritmos
Tema5- Diagramas de Flujo y los algoritmosUserFgk
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de FlujoMIKE852679
 
INTRODCCION A LA DIAGRAMAS DE FLUJO.ppt
INTRODCCION A LA DIAGRAMAS DE FLUJO.pptINTRODCCION A LA DIAGRAMAS DE FLUJO.ppt
INTRODCCION A LA DIAGRAMAS DE FLUJO.pptDemsshillCoutino
 
Diagrama de Flujo
Diagrama de FlujoDiagrama de Flujo
Diagrama de Flujo09072014
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programazeta2015
 
Estructuras algoritmicas representación
Estructuras algoritmicas representaciónEstructuras algoritmicas representación
Estructuras algoritmicas representaciónBenjamin Medina Ramirez
 
Seudocodigos1
Seudocodigos1Seudocodigos1
Seudocodigos1jafp21
 
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Orangel4
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxTIRZOANTONIOMEDINACA1
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFresyMetal
 

Similar a Fp04 (20)

Tema5.ppt
Tema5.pptTema5.ppt
Tema5.ppt
 
diagramas5.ppt
diagramas5.pptdiagramas5.ppt
diagramas5.ppt
 
Tema5- Diagramas de Flujo y los algoritmos
Tema5- Diagramas de Flujo y los algoritmosTema5- Diagramas de Flujo y los algoritmos
Tema5- Diagramas de Flujo y los algoritmos
 
Tema5.ppt
Tema5.pptTema5.ppt
Tema5.ppt
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de Flujo
 
diagramas de Flujo.ppt
diagramas de Flujo.pptdiagramas de Flujo.ppt
diagramas de Flujo.ppt
 
diagramas de flujo
diagramas de flujodiagramas de flujo
diagramas de flujo
 
Diagramacion
DiagramacionDiagramacion
Diagramacion
 
INTRODCCION A LA DIAGRAMAS DE FLUJO.ppt
INTRODCCION A LA DIAGRAMAS DE FLUJO.pptINTRODCCION A LA DIAGRAMAS DE FLUJO.ppt
INTRODCCION A LA DIAGRAMAS DE FLUJO.ppt
 
Clase 2 diagramas de flujo
Clase 2 diagramas de flujoClase 2 diagramas de flujo
Clase 2 diagramas de flujo
 
Diagrama de Flujo
Diagrama de FlujoDiagrama de Flujo
Diagrama de Flujo
 
Algoritmo diagrama de_flujo
Algoritmo diagrama de_flujoAlgoritmo diagrama de_flujo
Algoritmo diagrama de_flujo
 
Secuencial
SecuencialSecuencial
Secuencial
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Estructuras algoritmicas representación
Estructuras algoritmicas representaciónEstructuras algoritmicas representación
Estructuras algoritmicas representación
 
Seudocodigos1
Seudocodigos1Seudocodigos1
Seudocodigos1
 
Diagrama de-flujo
Diagrama de-flujoDiagrama de-flujo
Diagrama de-flujo
 
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptx
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.com
 

Fp04

  • 1. 4 Fundamentos de la programación DIAGRAMAS DE FLUJO Instituto de Educación Superior Pedagógico Público “Gamaniel Blanco Murillo” Computación e Informática Lenguaje de Programación I
  • 2. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Tanto en la fase de análisis del problema como durante el diseño del algoritmo, se plantea la necesidad de representar claramente el flujo de operaciones que se han de realizar para su resolución y el orden en que estas operaciones deber ser ejecutadas. Una vez que el algoritmo esté diseñado se debe proceder a representarlo mediante algún método de programación, siendo los más usuales: diagramas de flujo, pseudocódigo, diagramas N-S o Tablas de decisión. Una vez graficado el algoritmo se procede a su escritura en algún lenguaje de programación para su posterior ejecución. Esta representación independiza al algoritmo del lenguaje de programación elegido, permitiendo de esta manera que pueda ser codificado indistintamente en cualquier lenguaje.
  • 3. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Las dos herramientas mas utilizadas comunmente para describir algoritmos son: Diagramas de Flujo: son representaciones gráficas de secuencias de pasos a realizar. Cada operacion se representa mediante un símbolo normalizado el Instituto Norteamericano de Normalizacion (ANSI - American National Standars Institute). Las líneas de flujo indican el orden de ejecución. Los diagramas de flujo suelen ser usados solo para representar algoritmos pequeños, ya que abarcan mucho espacio.
  • 4. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Pseudocódigos: describen un algoritmo de forma similar a un lenguaje de programacióon pero sin su rigidez, de forma más parecida al lenguaje natural. Presentan la ventaja de ser más compactos que los diagramas de flujo, más fáciles de escribir para las instrucciones complejas y más fáciles de transferir a un lenguaje de programación. El pseudocódigo no está regido por ningún estándar. Algunas palabras usadas son LEER/IMPRIMIR para representar las acciones de lectura de datos y salida de datos. Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12 pulgadas), a partir de la altura en centímetros, que se introduce por el teclado. Inicio 1- IMPRIMIR 'Introduce la altura en centimetros: ' 2- LEER: altura 3- CALCULAR pulgadas=altura=2:54 4- CALCULAR pies=pulgadas=12 5- IMPRIMIR 'La altura en pulgadas es: ', pulgadas 6- IMPRIMIR 'La altura en pies es : ', pies Fin
  • 5. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo El uso de diagramas de flujo como herramienta de programación tiene beneficios que resumidamente se detallan: Rápida comprensión de las relaciones Se pueden usar como modelos de trabajo para el diseño de nuevos programas Documentación adecuada de los programas Produce una codificación eficaz en los programas Depuración y pruebas ordenadas de programas Fácil de traducir a cualquier lenguaje de programación.
  • 6. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Los símbolos estándar han sido normalizados por ANSI (American National Standards Institute), IBM, IRAM (Instituto Racionalizador Argentino de Materiales) y son muy variados.. 5. 2 Representacion Simbólica
  • 7. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez R epresena el F in y C om ienzo del diagram a E ntrada /salida - C ualquier tipo de introducción de datos en la m em oria desde los periféricos de entrada o registro de la inform ación procesada en un periférico de salida (no interesa el soporte) O perac ión o proc es o - accio nes a rea liz ar(sum ar dos núm eros , c alc ular raíz cuadrada, asignaciones, etc.- S u brutina - llam ada a un subprogram a qu e es u n m ódulo in dependiente del program a princ ipal que realiza una determ inada ta rea y regresa a la s iguiente instrucción de donde fue llam ada. D ecis ión - operac iones lógicas o de c om prac ión en tre datos y en función del resultado determ ina cual de los dos distintos cam inos alternativos del program a se debe seguir. N orm alm ente tiene dos respuestas S I o N O C onector - enlaza dos partes cualesquiera del diagram a m ediante un conector de salida y otro de entrada. S iem pre dentro de la m ism a página Línea de F Lujo - indica el sentido de la ejecución de las operaciones C onector - idem al conector anterior pero usando distitnas páginas T eclado - introducción m anual de datos desde el teclado ? N oS i S IM B O L O S F U N C I O N
  • 8. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez C onector - idem al conector anterior pero usando distitnas páginas T eclado - introducción m anual de datos desde el teclado Im presora - salida de datos en form a im presa D isco M agnético - para lectura o grabación de datos P antalla - E ntrada / S alida de datos por pantalla C inta M agnética - para lectura o grabación de datos D isquete o disco flexible - para lectura o grabación de datos C D - D isco C om pacto - para lectura o grabación de datos
  • 9. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Las estructuras básicas son las tres siguientes: Secuencia Alternativa o Selectiva Iteración o Repetitiva 5.3 Tecnicas de construccion de diagramas
  • 10. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Secuencia Alternativa o Selectiva Iteración o Repetitiva Se compone de un grupo de acciones que se realizan todas y en el orden en que están escritas, sin posibilidad de omitir ninguna de ellas. Las tareas se suceden de forma tal que la salida de una de ellas es la entrada de la siguiente y así sucesivamente hasta el final del proceso. 5.3 Tecnicas de construccion de diagramas
  • 11. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Secuencia Alternativa o Selectiva Iteración o Repetitiva Permite la selección entre dos grupos de acciones dependiendo de que una determinada condición se cumpla o no. Estas estructuras se utilizan para tomar decisiones lógicas; por ello recibe también el nombre de estructuras de decisión o alternativas o condicional. Las condiciones que se especifican usan expresiones lógicas y usan la figura geométrica en forma de rombo. Estas estructuras pueden ser: Simples o dobles. 5.3 Tecnicas de construccion de diagramas
  • 12. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Secuencia Alternativa o Selectiva Iteración o Repetitiva Simple: Solo obliga a realizar acciones si se cumple la condición. El “no cumplimiento” de la condición implica que no se realizará ninguna acción. Doble: El cumplimiento o no de la condición lógica obliga a la ejecución de diferentes grupos de acciones. 5.3 Tecnicas de construccion de diagramas 2 Condicion Accion SINO Condicion Accion SI Accion NO 1
  • 13. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Secuencia Alternativa o Selectiva Iteración o Repetitiva Estructura de elección entre varios casos Este tipo de estructura permite decidir entre varios caminos posibles, en función del valor que tome una determinada instrucción. 5.3 Tecnicas de construccion de diagramas
  • 14. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Secuencia Alternativa o Selectiva Iteración o Repetitiva Permite repetir una o varias instrucciones un número determinado de veces que vendrá determinado por una condición. Esta condición se conoce como condición de salida. A estos tipos de estructuras se las conoce también con el nombre de bucles o rulos y al hecho de repetir la ejecución de acciones se llama iteración. 5.3 Tecnicas de construccion de diagramas
  • 15. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Secuencia Alternativa o Selectiva Iteración o Repetitiva HACER MIENTRAS: Se caracteriza porque la condición de salida del bucle está situada al comienzo del mismo, es decir las acciones la hace mientras se cumple determinada condición. Cuando se ejecuta una estructura de este tipo, lo que primero se hace es evaluar la condición, si la misma es falsa no se realiza ninguna acción. Si la condición resulta verdadera entonces se ejecuta el cuerpo del bucle (acciones de la Figura). Este mecanismo se repite mientras la condición sea verdadera. 5.3 Tecnicas de construccion de diagramas C o n d ic io n S i N o A c c io n e s Se hace notar que en este tipo de estructura las acciones pueden no ejecutarse ninguna vez.
  • 16. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Secuencia Alternativa o Selectiva Iteración o Repetitiva HACER HASTA: Se caracteriza porque la condición que controla la realización de las acciones del bucle está al final del mismo. En este tipo de iteración las acciones se repiten mientras la condición sea falsa, lo opuesto a la estructura hacer mientras. Este tipo de bucle se usa para situaciones en las que se desea que un conjunto de instrucciones se ejecute al menos una vez antes de comprobar la condición de iteración. La figura muestra la gráfica correspondiente. 5.3 Tecnicas de construccion de diagramas C o n d ic io n N o A c c io n e s S I
  • 17. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo 5.3.1 Estructuras Básicas Secuencia Alternativa o Selectiva Iteración o Repetitiva Se puntualizan algunas diferencias entre estas dos estructuras: ●La estructura mientras termina cuando la condición es falsa, en cambio la estructura hasta termina cuando la condición es verdadera. ●En la estructura hasta el cuerpo del bucle se ejecuta siempre al menos una vez, en cambio en la estructura mientras permite que el cuerpo del bucle nunca se ejecute. 5.3 Tecnicas de construccion de diagramas C o n d ic i o n S i N o A c c io n e s C o n d ic io n N o A c c io n e s S I
  • 18. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Para confeccionar un diagrama de flujo, es aconsejable respetar las siguientes reglas: ●Todo diagrama de flujo debe indicar claramente donde comienza (INICIO o COMENZAR) y donde termina (FIN o PARAR). ●El orden en que deben escribirse los símbolos es de arriba abajo y de izquierda a derecha. ●Es aconsejable emplear un símbolo para cada acción. ●Dentro de los símbolos no especificar instrucciones propias de algún lenguaje de programación. ●La secuencia se indica mediante flechas o líneas de conexión (horizontales / verticales), las cuales deben ser siempre rectas, no se deben cruzar ni deben estar inclinadas. 5.4 Normas para su representación
  • 19. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo ●A todos los símbolos (excepto al INICIO), les debe llegar una línea de conexión. ●De todos los símbolos, excepto FIN y el de DECISIÓN, debe salir una sola línea de conexión. ●Es aconsejable usar conectores cuando las líneas de conexión entre operaciones no adyacentes son muy largas, pero hay que tener en cuenta que el uso exagerado de conectores dificulta el entendimiento. ●Cuando trabajamos con operaciones lógicas recurrir preferentemente a la lógica positiva antes que a la lógica negativa. Es más claro decir si A = B, en vez de: si no es A <> B ●El diagrama de flujo deberá ser lo mas claro posible de forma tal que cualquier otro programador pueda seguirlo o usarlo con total facilidad de entendimiento. ●El diagrama de flujo en conjunto debe guardar una cierta simetría. 5.4 Normas para su representación
  • 20. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Necesitamos hacer un programa que multiplique dos números enteros. Sabemos que “5 x 3 = 15″ es lo mismo que “5 + 5 + 5 = 15”. Variables ● multiplicando: entero (nos indica el número que vamos a sumar) ● multiplicador: entero (nos indica el número de veces que lo vamos a sumar) ● resultado: entero (en esta variable asignaremos el resultado) ● indice: entero (nos indicara el número de veces que el número se ha sumado) Ejemplo
  • 21. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Necesitamos hacer un programa que multiplique dos números enteros. Algoritmo 1) Asignamos el número 5 a multiplicando 2) Asignamos el número 3 a multiplicador 3) Asignamos el número 0 a resultado 4) Asignamos el número 0 a indice 5) Sumamos multiplicando y resultado 6) Asignamos a resultado la suma 7) Incrementamos 1 a indice 8) Mientras indice sea menor a multiplicador regresamos al paso 5 de lo contrario continua 9) Muestra el resultado 10) Finalizar Tenemos que inicializar cada variable de nuestro algoritmo, como se muestra en los primeros cuatro pasos. Ejemplo
  • 22. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Necesitamos hacer un programa que multiplique dos números enteros. El siguiente paso es… Prueba de escritorio La prueba de escritorio es la ejecución manual de nuestro algorítmo Ponemos a prueba nuestro algoritmo y nos mostrara si tenemos errores (por lo que tendremos que modificar el algoritmo) o si esta bien diseñado. Básicamente es el registro de las variables. Siguiendo paso a paso nuestro algoritmo, obtendremos la siguiente tabla. Ejemplo
  • 23. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Necesitamos hacer un programa que multiplique dos números enteros. Multiplicado 5 Multiplicador 3 Resultado 0 5 10 15 Indice 0 1 2 3 Vemos que el ultimo registro de la variable resultado, es 15, por lo que nuestro algoritmo esta funcionando correctamente. Podemos probar con otros número. Ejemplo
  • 24. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Necesitamos hacer un programa que multiplique dos números enteros. Diagramas de flujo Una vez que hemos probado muestro algoritmo con la prueba de escritorio y el resultado es el correcto, podemos seguir a diseñar el diagrama de flujo. Cada paso de nuestro algoritmo en un procedimiento y se representan con un rectángulo. (Podemos agrupar varios procedimientos en un solo rectángulo, pero no es lo indicado) Cada condición como el paso número 8 se representa con un rombo. Este será el diagrama de flujo de nuestro algoritmo. Ejemplo
  • 25. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Necesitamos hacer un programa que multiplique dos números enteros. 1. Inicio 2. multiplicando = 5 3. multiplicador = 3 4. resultado = 0 5. indice = 0 6. do 7. resultado = resultado + multiplicando 8. indice = indice + 1 9. mientras indice < multiplicador 10. imprime resultado 11. finalizar Ejemplo Un programa lo podemos dividir en bloques, por ejemplo; de la línea 6 a la 9 es un bloque, y para identificar cada bloque en el código lo podemos escribir después de unos espacios y así identificar ciertos procesos. Esto nos sirve para en códigos muy grandes.
  • 26. Lenguaje de Programación I - Fundamentos de la Programación HéctorLópezSánchez Diagrama de Flujo Y finalmente nos pasamos a la computadora y escribimos el código en algun lenguaje de programacion, en nuestro caso C. Pseudocódigo y Código El pseudocódigo es el siguiente paso de nuestro programa, y es la representación (escrita con nuestras propias palabras) del algoritmo. Ejemplo Inicio multiplicando= 5 multiplicador = 3 resultado = 0 indice = 0 si indice < multiplicador entonces resultado = resultado + multiplicando indice = indice + 1 fin si mostrar resultado Fin