Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1-Ejercico de Diagrama de FlujoF
1-Ejercico de Diagrama de FlujoF
Introduccin a la programacin
y
Diagramas de Flujo
Informtica
Grado en Ingeniera en Tecnologas
Industriales
Departamento de Ingeniera de Sistemas y Automtica.
Escuela de Ingenieros. Universidad de Sevilla
ndice
1.
2.
3.
4.
Objetivo
Definiciones: Algoritmo y programa
Tipos de programacin: Programacin estructurada
Herramientas para la realizacin de un algoritmo:
4.1. Pseudocdigo
4.2. Diagrama de Flujo
5. Tabla de Objetos
6. Programacin estructurada: estructuras de control
7. Traza de un programa
Informtica. GITI. Tema 3.
DISA.US
1. Objetivo
El objetivo principal del tema consiste en
la realizacin de algoritmos mediante
pseudocdigo y diagrama de flujo.
2. Definiciones: Algoritmo y
Programa
Fases de la programacin
Fase I
Anlisis:
Problema
Fase II
Diseo:
Algoritmo
Solucin:
Programa
Ejecucin
Validacin
Fase III
Explotacin
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
Programa
Ejemplo de un algoritmo
Problema: Receta para frer un huevo frito
Algoritmo:
1. Poner aceite en sartn
2. Colocar sartn en fuego
3. Romper el huevo haciendo caer el contenido en
sartn
4. Tirar cscaras a la basura
5. Poner sal en yema
6. Si el huevo est slido ir a 7, si no esperar
7. Servir huevo, fregar sartn
8. Fin
Informtica. GITI. Tema 3.
DISA.US
Programa:
int valor_absoluto(int x)
{
if(x>0)
r=x;
else
r=-x;
return x;
}
Informtica. GITI. Tema 3.
DISA.US
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.
Informtica. GITI. Tema 3.
DISA.US
3. Tipos de programacin
Programacin imperativa o estructurada:
C, PASCAL, FORTRAN
Programacin Orientada a Objetos: Visual
C++, Java
Programacin funcional: LISP
Programacin lgica: PROLOG
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:
a) Caractersticas de algoritmos estructurados
b) Cmo construir un algoritmo estructurado?
c) Estructuras algortmicas estructuradas
Informtica. GITI. Tema 3.
DISA.US
10
a) 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.
Informtica. GITI. Tema 3.
DISA.US
11
a) 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)
12
13
c) 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
14
Pseudocdigo
Problema
Diagrama de Flujo
Algoritmo
Informtica. GITI. Tema 3.
DISA.US
Lenguaje de Programacin
C,Java, Visual C++,
Programa
15
4.1. Pseudocdigo
Un pseudocdigo es una forma de
representar un algoritmo basndose
en el lenguaje natural.
16
Ejemplo de pseudocdigo
Problema: leer dos nmeros enteros y
escribir la suma.
Pseudocdigo:
1.
2.
3.
4.
5.
a+b.
17
18
Ejemplo de pseudocdigo
Problema: leer dos nmeros enteros y
escribir la suma.
Datos de entrada
(nmeros enteros)
Pseudocdigo:
1.
2.
3.
4.
5.
19
20
Fin de bloque:
Proceso: asignaciones,
operaciones
Informtica. GITI. Tema 3.
DISA.US
21
SI
NO
22
23
24
25
26
27
28
SI
NO
i>10?
SI
NO
i>10?
29
Proceso 1
Proceso 2
30
SI
NO
Condicin?
Opcin 2
Opcin 1
31
SI
NO
Condicin?
32
NO
Condicin?
SI
33
Ejemplo 1:
algoritmo con estructura secuencial
Problema: leer dos
nmeros enteros y
escribir la suma.
Inicio
Leer a
Leer b
suma
a+b
Escribir suma
Fin
34
Ejemplo 2:
algoritmo con estructura selectiva
Problema: Hallar el
valor absoluto de un
nmero x.
Inicio
SI
NO
x>=0?
r x
r x
Fin
35
ndice
1.
2.
3.
4.
Objetivo
Definiciones: Algoritmo y programa
Tipos de programacin: Programacin estructurada
Herramientas para la realizacin de un algoritmo:
4.1. Pseudocdigo
4.2. Diagrama de Flujo
5. Tabla de Objetos
6. Programacin estructurada: estructuras de control
7. Traza de un programa
Informtica. GITI. Tema 3.
DISA.US
36
NO
x>=0?
r x
r x
Fin
37
Conceptos fundamentales
Los datos a procesar por una computadora,
deben almacenarse en casillas o celdas de
memoria para su posterior utilizacin.
Estas casillas de memoria tienen un nombre
que permite su identificacin: Identificador,
nombre o etiqueta
El valor de las celdas de memoria puede se
variable o constante
Informtica. GITI. Tema 3.
DISA.US
38
Constantes
Las constantes son datos que no
cambian durante la ejecucin
Para nombrar las constantes utilizamos
los identificadores
Existen tantos tipos de constante como
tipos de datos
39
Variables
Las variables son objetos que pueden cambiar su
valor durante la ejecucin
Para nombrar las variables utilizamos los
identificadores
Existen tantos tipos de variables como tipos de
datos
Los nombres, identificadores de las constantes y
variables deben ser representativos de la funcin
que cumplen el algoritmo. Ej: suma, contador,
media
Informtica. GITI. Tema 3.
DISA.US
40
Tipos de datos
Simples:
Ocupan slo una casilla de memoria
Con un identificador se hace referencia a un nico valor a la vez
Una nica letra, un nico valor real
Complejos o Estructurados:
Tiene varios componentes, cada uno de estos componentes puede
ser a su vez un dato simple.
Con un identificador se hace referencia a un grupo de celdas de
memoria, es decir, se usa un nico identificador para un conjunto de
valores
Vectores y matrices (de enteros, reales, lgicos, caracteres)
41
Caracteres:
Letras del alfabeto maysculas o minsculas (son
diferentes)
Caracteres numricos: dgitos del 0 al 9
Caracteres especiales: signos de puntuacin,
guiones, parntesis, asteriscos
El valor se indica entre comillas simples:
Ej.: x <- a, letra <- 1, x <- 1
42
Valor:
El valor del objeto puede variar durante el
algoritmo (variable) o permanecer constante
(constante).
Tipo:
Los objetos pueden ser de diferentes tipos (tipos
simples y complejos)
Informtica. GITI. Tema 3.
DISA.US
43
Valor Tipo
44
Nombre Valor
Primer
sumando
Segundo
sumando
Tipo
Inicio
Variable Entera
Leer a
Resultado de la suma
suma
Variable Entera
Leer b
Variable Entera
suma
a+b
Escribir suma
Fin
45
Objeto
Nombre Valor
Tipo
SI
Dato
entrada
Variable
Cero
Constante Entera
Resultado, r
valor
absoluto
Variable
NO
x>=0?
Entera
r x
r x
Entera
Fin
46
47
a) Operaciones aritmticas
Permiten operar con valores enteros o
reales para obtener un resultado tambin
entero o real
Para poder realizar operaciones
aritmticas necesitamos operadores
aritmticos
48
a) Operaciones aritmticas
Operacin
Operador
Ejemplo
Suma
a+b
Resta
a-b
Unario
- (cambio de signo) -a
Multiplicacin *
a*b
Divisin
a/b
Mdulo (resto
a%b
de divisin entera)
49
a) Operaciones aritmticas
La divisin entera es
diferente a la divisin de
reales
Si los dos operandos son
enteros el resultado es un
entero
Si los dos operandos son
reales el resultado es un
real
Si uno de los dos
operandos es real el
resultado es real
4.5
real
a/d
4.5
real
a%b
entero
50
Precedencia o prioridad
La precedencia o prioridad de un operador
determina el orden de aplicacin de los
operadores de una expresin.
Si tenemos en una expresin ms de un
operador, debemos aplicar primero el de
mayor prioridad, resolver esa operacin y
as sucesivamente.
El operador () es un operador asociativo
que tiene la prioridad ms alta.
Informtica. GITI. Tema 3.
DISA.US
51
Precedencia operadores
aritmticos
MAYOR PRIORIDAD
MENOR PRIORIDAD
52
b) Operaciones lgicas
Permiten operar con valores lgicos para obtener un
resultado tambin lgico
Operacin Operador
Negacin
NO
Ejemplo
NO a
Conjuncin Y
AYb
Disyuncin O
AOb
Informtica. GITI. Tema 3.
DISA.US
MAYOR P.
MENOR P.
53
b) Operaciones lgicas
NO a
Valor a
Resultado
aYb
aOb
Valor a
Valor b
Resultado
Valor a
Valor b
Resultado
54
c) Operaciones relacionales
Permiten comparar dos datos del
mismo tipo para obtener un resultado
lgico: V o F
Los datos pueden ser variables o
constantes de tipo numrico o carcter
55
c) Operaciones relacionales
Operacin
Operador
Ejemplo
Resultado
Igual que
h=H
Distinto de
<>
a<>b
Menor que
<
7<15
Mayor que
>
22.5>11.6 V
15<=15
35>=40
56
d) Asignacin
Sintaxis: variable<- expresin
Primero se evala la expresin
Despus se asigna el valor a la variable
El valor anterior de la variable se pierde/olvida
57
MAYOR PRIORIDAD
MENOR PRIORIDAD
58
e) Expresiones
Una expresin es cualquier combinacin de
operadores variables y constantes.
Las expresiones sirven para manipular los
objetos.
Una expresin devuelve un valor de un tipo
determinado
Ejemplos:
a+23*b-z
NO x
a>b Y a<c
(z <= 8) Y NO (k - 6*h)
Informtica. GITI. Tema 3.
DISA.US
59
e) Ejemplos expresiones
9 7 * 8 36 / 5
9 56 36 / 5
9 56 7 (divisin entera )
65 7
58
8% 2 * 3 1
2 * 5 7.8 / 4 2.5 / 6
10 7.8 / 4 2.5 / 6
10 1.95 0.41
11.95 0.41
F
8% 6 1
2 1
3
Informtica. GITI. Tema 3.
DISA.US
60
61
62
Bloque/sentencia de asignacin
Sintaxis: variable<- expresin
Smbolo
x x y
63
Bloque/sentencia de entrada
Sintaxis: Leer variable
Se recibe un nico valor (por teclado)
Se asigna el valor a la variable
El valor anterior de la variable se pierde/olvida
Smbolo
Leer N
Leer a, b
64
Bloque/sentencia de salida
Sintaxis: Escribir variable
Se devuelve el valor de la variable
Se escribe en pantalla
Forma de devolver resultados de un algoritmo*
Smbolo
Escribir x
Escribir a, b
65
Inicio
Fin
nombre
nombre
66
Leer x
Objeto
Nombre Valor
Tipo
Dato entrada
Entera
Variable
SI
Cero
Constante Entera
|x|
Variable
Entera
Resultado,
Variable
Entera
|x|3
x>=0?
r x
NO
r x
y r *r *r
Escribir y
Fin
67
Leer x
SI
x>=0?
Mdulo
NO
Valor absoluto
r x
r x
y r *r *r
Escribir y
Fin
68
Leer x
SI
x>=0?
NO
Valor absoluto
r x
r x
y r *r *r
Escribir y
Fin
Fin:
Valor absoluto
Estructuras de control
NO
Proceso 1
SI
NO
Condicin?
Condicin?
SI
Opcin 1
Opcin 2
SI
NO
Condicin?
Proceso 2
Secuencial
Selectiva
Iterativa I
(salida en cola)
Informtica. GITI. Tema 3.
DISA.US
Iterativa II
(salida en cabeza)
70
Inicio
Leer a
Nombre
Valor
Tipo
Dato
entrada
Variable
Real
Dato
entrada
Variable
Real
Resultado,
la suma
Variable
Real
Leer a, b
Leer b
a+b
Escribir r
Fin
Informtica. GITI. Tema 3.
DISA.US
71
Leer x
Nombre Valor
Tipo
Dato
entrada
Variable
Real
Dato
entrada
Variable
Real
Dos
Constante Entera
Resultado,
la media
aritmtica
Variable
Real
Leer y
r (x y) / 2
Escribir r
Fin
72
Inicio
Objeto
Nombre
Valor
Tipo
Dato
entrada
Variable
Entera
Cero
Constant
e
Entera
Variable
Entera
Resultado, r
valor
absoluto
NO
x>=0?
r x
rx
Fin
73
74
Nombre
Valor
Tipo
Dato
entrada
Variable
Real
Cero
Constante Entera
Uno
Constante Entera
Diez
10
Constante Entera
Resultado q
Variable
Entera
Inicio
Leer x
SI
x>0 y
x<=10?
q 1
NO
q 0
Escribir q
Fin
75
i 1
Objeto
Nombre Valor
Tipo
Dato
Variable
Real
Uno
Constante Entera
Tres
Constante Entera
Contador
Variable
Leer x
Escribir x
i i 1
Entera
SI
i<=3?
NO
76
Fin
i 1
Leer x
Cuerpo del bucle
Cuerpo del
bucle
Escribir x
i i 1
SI
SI
NO
Condicin?
Condicin de
salida o parada
i<=3?
NO
Fin
77
i 1
NO
i<=3?
Condicin de
salida o parada
NO
Condicin?
SI
SI
Leer x
Escribir x
Cuerpo del
bucle
i i 1
Fin
78
PROGRAMACIN NO ESTRUCTURADA:
Leer tres nmeros reales y escribirlos
Inicio
i 1
NO
Condicin?
SI
Leer x
NO
i<=3?
SI
Cuerpo del bucle
Escribir x
i i 1
SI
NO
Condicin?
Fin
Informtica. GITI.
3.
No Tema
se usan
DISA.US
79
ninguna de estas estructuras
80
81
Leer x, y
SI
SI
r 1
x>0?
NO
NO
SI
y>0?
r 2
r 4
y>0?
NO
r 3
Escribir r
FinGITI. Tema 3.
Informtica.
DISA.US
82
Inicio
Variable
Real
Leer x, y
Variable
Real
Constante Entera
Objeto
Nombre Valor
Dato
Dato
Cero
SI
SI
Uno
Constante Entera
Dos
Constante Entera
Tres
Constante Entera
Cuatro
Constante Entera
Resultado r
Variable
r 1
Real
x>0?
NO
NO
SI
y>0?
NO
y>0?
r 2
r 4
r 3
Escribir r
Fin
83
84
85
86
Inicio
Inicio
Leer a
Leer a
Leer b
Leer b
r<-a+b
Escribir r
a+b
Escribir r
Fin
Fin
87
10 10
Inicio
Leer x
SI
SI
Fin
10 10
Instruccin x
Inicio
-
x>=0?
r x
r
-
Leer x
-20 -
x>=0?
-20 20
Fin
-20 20
NO
r x
Fin
NO
88
i
1
1
1
1
2
2
2
2
x
3.5
3.5
3.5
7.9
7.9
7.9
Inicio
i 1
NO
i<=3?
SI
SI
Leer x
Escribir x
SI
i i 1
Fin
89
Instruccin
i<-i+1
3. i<=3?
Leer x
Escribir x
i<-i+1
4. i<=3?
Fin
i
3
3
3
3
4
4
4
x
7.9
7.9
2.1
2.1
2.1
2.1
2.1
i 1
SI
NO
i<=3?
SI
Leer x
Escribir x
NO
i i 1
Fin
90
Objeto
Nombre Valor
Tipo
Dato
Variable
Entera
Cero
Constante Entera
|x|
Variable
Entera
Resultado, y
|x|3
Variable
Entera
Leer x
SI
x>=0?
r x
NO
r x
y r *r *r
Escribir y
Fin
91
Problema IV
Nmero ledo por teclado -3
Inicio
Instruccin
Inicio
Leer x
-3 -
x>=0?
-3 -
r <- -x
-3 3
y <- r*r*r
-3 3 27
Escribir y
-3 3 27
Leer x
SI
NO
x>=0?
r x
NO
r x
y r *r *r
Escribir y
Fin
-3 3 27
92
Fin
Problema IV
Nmero ledo por teclado 2
Inicio
Instruccin
Inicio
Leer x
x>=0?
r <- x
2 2
y <- r*r*r
2 2
Escribir y
2 2
Escribir y
Fin
2 2
Fin
Leer x
SI
SI
x>=0?
r x
NO
r x
y r *r *r
93