Você está na página 1de 38

Tema 2: Algoritmos y

Diagramas de Flujo

Fundamentos de Informtica
Curso 2009/2010

ndice
1. Objetivo
2. Definiciones: Algoritmo y programa
3. Tipos de programacin: Programacin
estructurada
4. Herramientas para la realizacin de un
algoritmo:
4.1. Elementos bsicos de un programa
4.2. Pseudocdigo
4.3. Diagrama de Flujo

1. Objetivo
El objetivo principal del tema consiste en
la realizacin de algoritmos mediante
pseudocdigo y diagrama de flujo.

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

2. Definiciones: Algoritmo y
Programa
Fases de la programacin
Fase I
Anlisis:
Problema

Fase II
Diseo:
Algoritmo

Solucin:
Programa

Fase III

Explotacin

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Ejecucin
Validacin

2. Definiciones: Algoritmo y
Programa
Un algoritmo es un conjunto ordenado y finito de
instrucciones que permite hallar la solucin de un
problema.
Un programa es la codificacin del algoritmo en algn
lenguaje de programacin o en lenguaje mquina..

Problema

Algoritmo

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Programa

Partes de un algoritmo
Un algoritmo utiliza un conjunto de datos de
entrada y proporciona unos datos de salida.
ENTRADA: Corresponde a los datos que
requiere el proceso para ofrecer los resultados
esperados.
PROCESO: Pasos necesarios para obtener la
solucin del problema o la situacin planteada.
SALIDA: Datos presentados por el proceso
como solucin, resultado.
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

3. Tipos de programacin
Programacin imperativa o estructurada:
C, PASCAL, FORTRAN
Programacin Orientada a Objetos: Visual
C++, Java
Programacin funcional: LISP
Programacin lgica: PROLOG

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

3. Programacin Estructurada
Programacin estructurada: consiste en
un conjunto de reglas para escribir
programas de tal manera que sean
legibles y fciles de modificar.
Reglas a seguir para la programacin
estructurada:
Caractersticas de algoritmos estructurados
Cmo construir un algoritmo estructurado?
Estructuras algortmicas estructuradas
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Caractersticas de un algoritmo
estructurado
Finito: El algoritmo debe tener un nmero finito de
pasos.
Eficientes: Deben ocupar la mnima memoria y
minimizar el tiempo de ejecucin.
Legibles: El texto que lo describe debe ser claro,
de forma que permita entenderlo y leerlo
fcilmente.
Modificables: Estarn diseados de modo que sus
posteriores modificaciones sean fciles de realizar,
incluso por programadores diferentes a sus propios
autores.
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Caractersticas de un algoritmo
estructurado
Modulares: La filosofa utilizada para su
diseo debe favorecer la divisin del
problema en mdulos pequeos.
nico punto de entrada, nico punto de
salida: A los algoritmos y a los mdulos que
lo integran, se entra por un solo punto (inicio)
y se sale por un solo punto (fin)

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Cmo construir algoritmos


estructurados?
Definicin y anlisis del problema: datos de entrada y
salida (resultados)
Aplicar la tcnica de: divide y vencers, que consiste en
descomponer el problema en subproblemas ms sencillos
Resolucin de los subproblemas: realizacin de los
algoritmos correspondientes a los subproblemas
Depurar (prueba de validez) el algoritmo resultante

A PROGRAMAR SE APRENDE PROGRAMANDO


Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Estructuras algortmicas o de
control
Secuenciales: cada accin se realiza una
sola vez y en un determinado orden
Condicionales (selectivas): permiten
seleccionar una accin a realizar entre
varias alternativas
Iterativas (repetitivas): una determinada
accin se realiza ms de una vez

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

4. Herramientas para la realizacin


de algoritmos
Existen diferentes mtodos para representar un
algoritmo, los procedimientos ms habituales
son:
Pseudocdigo (herramienta no grfica)
Diagrama de flujo (herramienta grfica)

Pseudocdigo

Problema

Diagrama de Flujo

Algoritmo
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Lenguaje de Programacin
C,Java, Visual C++,

Programa

4.1. Pseudocdigo
Un pseudocdigo es una forma de
representar un algoritmo basndose
en el lenguaje natural.

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Ejemplo de pseudocdigo I:
Estructura secuencial
Problema: leer dos nmeros enteros y
escribir la suma.

Pseudocdigo

Problema

Algoritmo

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Ejemplo de pseudocdigo I:
Estructura secuencial
Problema: leer dos nmeros enteros y
escribir la suma.
Pseudocdigo:
1.
2.
3.
4.
5.

Leer primer sumando, a.


Leer segundo sumando, b.
Hallar la suma de los sumandos, r
Escribir r.
Fin
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

a+b.

Elementos bsicos de un algoritmo


Datos de diferente tipo: nmeros reales,
enteros, caracteres,
Las instrucciones que los procesan:
asignacin, operaciones aritmticas,
lgicas,

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Ejemplo de pseudocdigo I:
Estructura secuencial
Problema: leer dos nmeros enteros y
escribir la suma.
Datos de entrada
(nmeros enteros)
Pseudocdigo:
1.
2.
3.
4.
5.

Leer primer sumando, a.


Asignacin
Leer segundo sumando, b.
Hallar la suma de los sumandos, r a+b.
Escribir r.
Datos de salida
Resultado
Fin
(nmero entero) Suma aritmtica
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Ejemplo de pseudocdigo II:


Estructura condicional
Problema: Hallar el valor absoluto de un
nmero real x.
Pseudocdigo:
1. Si x es positivo, el resultado es r
2. Si no, el resultado es r x
3. Fin

Dato de entrada: x, nmero real


Dato de salida: r, nmero real
Instrucciones: asignacin, comparacin lgica y cambio de signo
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Ejemplo de pseudocdigo III:


Estructura iterativa
Problema: hallar la suma de las componentes
de un vector de dimensin 10 y escribir el
resultado.
Pseudocdigo:
1. Iniciar suma parcial a cero, sp
2. Iniciar ndice a uno, i 1
3. Hacer:

3.1. sp sp+vi
3.2. Incrementar i en uno, i
i+1
3.3. Si i>10 ir al punto 4, si no ir al 3

4. Escribir sp
5. Fin
Datos de entrada: v (vector de nmeros real)
Datos de salida: sp (nmero real)
Instrucciones: asignacin, comparacin lgica y suma aritmtica

4.2. Diagramas de flujo


Los Diagramas de Flujo son herramientas
grficas para representar algoritmos.
Estn formados por una serie de
smbolos, que tienen al menos una flecha
que viene del paso anterior y otra que va
al paso siguiente.
Los smbolos representan distintas
acciones: lectura/escritura, principio, fin,
salto
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Smbolos de un diagrama de flujo


Comienzo de bloque:

Fin de bloque:

Proceso: asignaciones,
operaciones
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Smbolos de un diagrama de flujo


Bifurcacin: representa una decisin. En su
interior se almacena una condicin y
dependiendo del resultado de la evaluacin de
la misma se sigue una direccin u otra. Se
utiliza en las estructuras selectiva e iterativas

SI

NO

Smbolos de un diagrama de flujo


Actualizacin: Asignacin de valores iniciales y
modificacin de ndices y contadores.

Entrada y salida de datos: Se utiliza para


representar la introduccin de datos de entrada
(lectura) y para la impresin de un resultado
(salida)

Smbolos de un diagrama de flujo


Subprograma: la operacin
es realizada por un bloque
(DF) que se detalla en otro
lugar. Afecta a la codificacin
Mdulo: la operacin es realizada
por un bloque (DF) que se detalla en
otro lugar. No afecta a la
codificacin.
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Smbolos de un diagrama de flujo


Conector: smbolo utilizado para expresar
conexin de DF
A
A

Lneas de flujo o direccin: Expresan la


direccin del flujo del diagrama

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Reglas para construccin de


diagramas de flujo
1. Todo diagrama de flujo debe tener un
inicio y un fin
2. Las lneas utilizadas para indicar la
direccin de flujo del diagrama deben ser
rectas, verticales y horizontales. No deben
ser inclinadas y tampoco se deben cruzar
3. Las lneas utilizadas para indicar la
direccin de flujo del diagrama deben estar
conectadas.
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Reglas para construccin de


diagramas de flujo
4. El diagrama de flujo debe ser construido de
arriba hacia abajo (top-down)
5. La notacin utilizada en el diagrama de flujo
debe ser independiente del lenguaje de
programacin. La solucin presentada en el
D.F. puede escribirse posterior y fcilmente en
cualquier lenguaje de programacin
6. Es conveniente cuando realizamos una tarea
compleja poner comentarios que expresen o
ayuden a entender lo que hicimos
Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Reglas para construccin de


diagramas de flujo
7. Si el DF requiere ms de una hoja para su
construccin, debemos utilizar los conectores
adecuados y enumerar las pginas
convenientemente.
8. No puede llegar ms de una lnea a un
smbolo

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Reglas para construccin de


diagramas de flujo

SI

NO
i>10?

SI

NO
i>10?

Fundamentos de Informtica.
Tema 2. Curso 2009/2010

Reglas para construccin de


diagramas de flujo
9. Utilizar slo los bloques siguientes para
realizar DF.
Estructura secuencial:

Proceso 1

Proceso 2

Reglas para construccin de


diagramas de flujo
Estructura selectiva
Opcin 2

SI

NO
Condicin?

Opcin 1

Opcin 2

Reglas para construccin de


diagramas de flujo
Estructura iterativa: salida en cola (el cuerpo del
bucle se ejecuta al menos una vez)
Proceso iterativo o bucle:
- Cuerpo del bucle:
Conjunto de operaciones
que se repiten
- Condicin de salida o
parada

Cuerpo del bucle

SI

NO
Condicin?

Reglas para construccin de


diagramas de flujo
Estructura iterativa: salida en cabeza

NO
Condicin?

SI

Cuerpo del bucle

Ejemplo 1: Estructura secuencial


Problema: leer dos nmeros
enteros y escribir la suma.
Pseudocdigo:
1.Leer primer sumando, a.
2.Leer segundo sumando, b.
3.Hallar la suma de los
sumandos, r
a+b.
4.Escribir r.
5.Fin

Diagrama de Flujo:

Inicio

leer a
Leer a y b

leer b

Calcular
r
a+b

escribir r

Fin

Ejemplo 2: Estructura condicional


Inicio

Problema: Hallar el valor absoluto de un


nmero x.
Pseudocdigo:
1.Si x es positivo, el resultado es, r
2.Si no, el resultado es r
x
3.Fin

Diagrama de Flujo:

SI

NO
x>0?

r x

r x

Fin

Ejemplo: Estructura Iterativa


Problema: hallar la suma de las componentes
de un vector de dimensin 10 y escribir el
resultado.
Pseudocdigo:
1. Iniciar suma parcial a cero, sp
2. Iniciar ndice a uno, i 1
3. Hacer:

3.1. sp sp+vi
3.2. Incrementar i en uno, i
i+1
3.3. Si i>10 ir al punto 4, si no ir al 3

4. Escribir sp
5. Fin
Datos de entrada: v (vector de nmeros real)
Datos de salida: sp (nmero real)
Instrucciones: asignacin, comparacin lgica y suma aritmtica

Inicio

Ejemplo: Estructura
Iterativa

sp 0

i 1

Problema: hallar la
suma de las
componentes de un
vector de dimensin 10
y escribir el resultado.

sp sp + vi

i i +1

SI

NO
i>10

Escribir sp

Fin

Você também pode gostar