Está en la página 1de 93

Tema 3:

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.

Informtica. GITI. Tema 3.


DISA.US

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

Fase II
Diseo:
Algoritmo

Solucin:
Programa

Ejecucin
Validacin

Fase III

Explotacin

Informtica. GITI. Tema 3.


DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

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

Ejemplo de algoritmo y programa

Problema: Hallar el valor absoluto de un nmero x.


Algoritmo:
1.
2.
3.

Si x es positivo, el resultado es, r


Si no, el resultado es r
x
Fin

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

Informtica. GITI. Tema 3.


DISA.US

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)

Informtica. GITI. Tema 3.


DISA.US

12

b) 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!

Informtica. GITI. Tema 3.


DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

14

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
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.

Informtica. GITI. Tema 3.


DISA.US

16

Ejemplo de pseudocdigo
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
Informtica. GITI. Tema 3.
DISA.US

a+b.

17

Elementos bsicos de un algoritmo


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

Informtica. GITI. Tema 3.


DISA.US

18

Ejemplo de pseudocdigo
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
Informtica. GITI. Tema 3.
DISA.US

19

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
Informtica. GITI. Tema 3.
DISA.US

20

Smbolos de un diagrama de flujo


Comienzo de bloque:

Fin de bloque:

Proceso: asignaciones,
operaciones
Informtica. GITI. Tema 3.
DISA.US

21

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

Informtica. GITI. Tema 3.


DISA.US

22

Smbolos de un diagrama de flujo


Entrada y salida de datos: Se utiliza para
representar la introduccin de datos de entrada
(lectura) y para la impresin de un resultado
(salida)

Informtica. GITI. Tema 3.


DISA.US

23

Smbolos de un diagrama de flujo


Mdulo: la operacin es realizada por un
bloque (DF) que se detalla en otro lugar. No
afecta a la codificacin.

Informtica. GITI. Tema 3.


DISA.US

24

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

Informtica. GITI. Tema 3.


DISA.US

25

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.
Informtica. GITI. Tema 3.
DISA.US

26

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
Informtica. GITI. Tema 3.
DISA.US

27

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
A
A
convenientemente.
8. No puede llegar ms de una lnea a un smbolo

Informtica. GITI. Tema 3.


DISA.US

28

Reglas para construccin de


diagramas de flujo

SI

NO
i>10?

SI

NO
i>10?

Informtica. GITI. Tema 3.


DISA.US

29

Reglas para construccin de


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

Proceso 1

Proceso 2

Informtica. GITI. Tema 3.


DISA.US

30

Reglas para construccin de


diagramas de flujo
Estructura selectiva

SI

NO
Condicin?

Opcin 2

Opcin 1

Informtica. GITI. Tema 3.


DISA.US

31

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?

Informtica. GITI. Tema 3.


DISA.US

32

Reglas para construccin de


diagramas de flujo
Estructura iterativa: salida en cabeza

NO
Condicin?

SI

Cuerpo del bucle

Informtica. GITI. Tema 3.


DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

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

5.1. Objeto: identificador, valor y


tipo
Un objeto (dato), es informacin que
utiliza un algoritmo para resolver un
problema.
Inicio
Ejemplo:
SI

x: dato de entrada. Variable.


Nmero entero
r: dato de salida. Variable.
Nmero entero
0: constante entera

NO
x>=0?

r x

Informtica. GITI. Tema 3.


DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

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)

Informtica. GITI. Tema 3.


DISA.US

41

Tipos de datos simples


Enteros: se utilizan para representar nmeros enteros,
positivos o negativos. Ej: 128, -45,
Reales: se utilizan para representar nmeros reales,
positivos o negativos. Ej: 7.5, -37.675,
Lgicos: se utilizan para representar valores lgicos o
booleanos. Son datos que slo pueden tomar dos
valores: verdadero o falso
VoF

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

Objeto: Identificador, valor y tipo


Identificador, nombre o etiqueta:
Cada objeto tiene un nico nombre que lo
identifica.

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

5.2. Tabla de objetos


Una tabla de objeto es una tabla que refleja
todos los objetos existentes en un algoritmo.
En la tabla de objetos se indica el identificador,
nombre o etiqueta, el valor (constante o variable)
y el tipo de todos los objetos que aparecen en un
algoritmo.
Objeto Identificador
o nombre

Valor Tipo

Informtica. GITI. Tema 3.


DISA.US

44

Ej.:Tabla de objetos normalizada I.


Problema: leer dos nmeros enteros y escribir la suma.
Objeto

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

Informtica. GITI. Tema 3.


DISA.US

Fin

45

Ej.: Tabla de objetos normalizada II.


Problema: Hallar el valor absoluto de un nmero x.
Inicio

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

Informtica. GITI. Tema 3.


DISA.US

46

5.3. Operadores y Expresiones


Las siguientes operaciones y expresiones
son las nicas permitidas en la realizacin
de un algoritmo:
a) Operaciones aritmticas
b) Operaciones lgicas
c) Operaciones relacionales
d) Asignacin
e) Expresiones
Informtica. GITI. Tema 3.
DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

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)

Definida solo para operandos enteros!

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

Ej: Para a y b enteros con valores: a=9 y b=2


Para c y d reales con valores: c=9 y d=2

Operacin Resultado Tipo


Resultado
a/b
4
entero
c/d

4.5

real

a/d

4.5

real

a%b

entero

Informtica. GITI. Tema 3.


DISA.US

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

Se evalan primero las expresiones entre parntesis. Si


las subexpresiones se encuentran anidadas por parntesis,
primero se evalan aqullas que se encuentran en el ltimo
nivel de anidamiento.
Los operadores aritmticos se aplican teniendo en cuenta
la precedencia y de izquierda a derecha.
Operador
*,/,%
+, Informtica. GITI. Tema 3.
DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

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

Menor o igual que <=

15<=15

Mayor o igual que >=

35>=40

Informtica. GITI. Tema 3.


DISA.US

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

Informtica. GITI. Tema 3.


DISA.US

57

Precedencia operadores: aritmticos,


lgicos, relacionales y asignacin
Operadores
()
NO, *, /,%
+, <, <=, >, >=
=, <>
Y
O
<- Asignacin

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

Operadores aritmticos, lgicos y


relacionales
NOTA: Los operadores aritmticos,
lgicos y relacionales mostrados en las
transparencias son los nicos permitidos
para la realizacin de algoritmos. Excepto
en casos particulares que se indique lo
contrario

Informtica. GITI. Tema 3.


DISA.US

61

6. Estructuras de control de flujo


(Programacin Estructurada)
Bloque/sentencia de asignacin
Bloque/sentencia de entrada
Bloque/sentencia de salida
Inicio, fin y mdulo
Estructuras de control:
Secuencial
Selectiva
Iterativa
Informtica. GITI. Tema 3.
DISA.US

62

Bloque/sentencia de asignacin
Sintaxis: variable<- expresin
Smbolo

x x y

- En cada smbolo de proceso de DF pueden


introducirse varias asignaciones.
- Al llegar el flujo a un bloque de asignaciones
se realizan cada una de ellas, en el orden en el
que aparecen y posteriormente se activa el
bloque indicado por la flecha saliente.

Informtica. GITI. Tema 3.


DISA.US

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

- En cada smbolo de entrada de


DF pueden introducirse varias
lecturas.
- Al llegar el flujo a un bloque de
entrada se realizan todas las
lecturas y posteriormente se
activa el bloque indicado por la
flecha saliente.

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

- En cada smbolo de salida


de DF pueden introducirse
varias escrituras.
- Al llegar el flujo a un bloque
de salida se realizan todas las
escrituras y posteriormente se
activa el bloque indicado por
la flecha saliente

Escribir a, b

65

Inicio, fin y mdulo


nombre

Inicio
Fin

nombre

Mdulo: la operacin es realizada


por un bloque (DF) que se detalla en
otro lugar. No afecta a la
codificacin.
Informtica. GITI. Tema 3.
DISA.US

nombre

66

Uso del smbolo mdulo:


Problema: Leer un nmero entero x y calcular
y=|x|3. Escribir el resultado.
Inicio

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

Informtica. GITI. Tema 3.


DISA.US

Fin

67

Uso del smbolo mdulo:


Problema: Leer un nmero entero x y calcular
y=|x|3. Escribir el resultado.
Inicio

Leer x

SI

x>=0?

Mdulo
NO
Valor absoluto

r x

r x

y r *r *r
Escribir y

Fin

Informtica. GITI. Tema 3.


DISA.US

68

Uso del smbolo mdulo:


Problema: Leer un nmero entero x y calcular
y=|x|3. Escribir el resultado.
Inicio
Inicio:
Valor absoluto

Leer x
SI

x>=0?

NO

Valor absoluto

r x

r x

y r *r *r
Escribir y

Fin

Fin:
Valor absoluto

-Comparten TODAS las variables (las variables se deben


llamar igual)
- El mdulo se puede usar ms de una vez en el mismo69
algoritmo

Estructuras de control

NO

Proceso 1

SI

Cuerpo del bucle

NO

Condicin?

Condicin?
SI

Opcin 1

Opcin 2

SI

NO
Condicin?

Cuerpo del bucle

Proceso 2

Secuencial

Selectiva

Iterativa I
(salida en cola)
Informtica. GITI. Tema 3.
DISA.US

Iterativa II
(salida en cabeza)
70

Estructura secuencial: Ejemplo 1


Problema: leer dos nmeros reales
y escribir la suma.

Inicio

Leer a

Diagrama de Flujo y Tabla de Objetos:


Objeto

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

Estructura secuencial: Ejemplo 2


Inicio

Problema: leer dos nmeros


reales y escribir la media
aritmtica.

Leer x

Diagrama de Flujo y Tabla de Objetos:


Objeto

Nombre Valor

Tipo

Dato
entrada

Variable

Real

Dato
entrada

Variable

Real

Dos

Constante Entera

Resultado,
la media
aritmtica

Variable

Real

Informtica. GITI. Tema 3.


DISA.US

Leer y

r (x y) / 2

Escribir r

Fin

72

Estructura condicional: Ejemplo 1


Problema: Hallar el valor absoluto de un
nmero x.

Inicio

Diagrama de Flujo y Tabla de Objetos:


SI

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

Informtica. GITI. Tema 3.


DISA.US

73

Estructura condicional: Ejemplo 2


Problema: Leer un nmero real del teclado. Calcular el valor de q,

sabiendo que si el valor ledo se encuentra en el intervalo (0,10], el


resultado q toma el valor de uno, en caso contrario toma el valor de
cero. Escribir el resultado.

Informtica. GITI. Tema 3.


DISA.US

74

Estructura condicional: Ejemplo 2


Diagrama de Flujo y Tabla de Objetos:
Objeto

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

Informtica. GITI. Tema 3.


DISA.US

Fin

75

Estructura iterativa salida en cola: Leer tres


nmeros reales y escribirlos
Inicio

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

Informtica. GITI. Tema 3.


DISA.US

76

Fin

Estructura iterativa salida en cola: Leer tres


nmeros reales y escribirlos
Inicio

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

Informtica. GITI. Tema 3.


DISA.US

77

Estructura iterativa salida en cabeza: Leer


tres nmeros reales y escribirlos
Inicio

i 1
NO
i<=3?

Condicin de
salida o parada

NO
Condicin?

SI

SI
Leer x

Escribir x

Cuerpo del bucle

Cuerpo del
bucle

i i 1

Fin

Informtica. GITI. Tema 3.


DISA.US

78

PROGRAMACIN NO ESTRUCTURADA:
Leer tres nmeros reales y escribirlos
Inicio

i 1

NO
Condicin?

SI

Leer x

Cuerpo del bucle

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

Estructuras de control anidadas


Las estructuras de control se pueden
anidar
Dentro de una estructura selectiva puede
haber otra estructura del mismo tipo o una
estructura iterativa.
En el cuerpo del bucle de una estructura
iterativa puede haber otra estructura
condicional o iterativa (bucles anidados).
Informtica. GITI. Tema 3.
DISA.US

80

Estructuras de control anidadas


Disear un algoritmo para calcular y

escribir el cuadrante al que pertenece


un punto del plano cuyas coordenadas
(x, y) se proporcionan. El resultado ha
de ser un nmero entero r de 1 a 4

Informtica. GITI. Tema 3.


DISA.US

81

Estructuras de control anidadas


Inicio

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

Estructuras de control anidadas


Tipo

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

Informtica. GITI. Tema 3.


DISA.US

x>0?

NO

NO

SI

y>0?

NO

y>0?

r 2

r 4

r 3

Escribir r

Fin

83

7. Traza o tabla de ejecucin


La traza de un algoritmo permite seguir el valor de las
diferentes variables a medida que el algoritmo se va
implementando
La traza de un algoritmo normalizado la realizaremos en
una tabla:
1 Columna sentencia/condicin evaluada
Una columna por cada variable del algoritmo
Cada fila muestra el valor de cada variable al
terminar de evaluarse la correspondiente
sentencia/condicin
Se utiliza una fila por cada paso del algoritmo
Al ejecutarse la sentencia de Inicio el valor de
todas las variables es desconocido
Al ejecutarse la sentencia Fin el algoritmo termina
Informtica. GITI. Tema 3.
DISA.US

84

7. Traza o tabla de ejecucin


La traza permite comprobar si un algoritmo funciona
correctamente
Slo es til para analizar algoritmos sencillos
Con algoritmos ms complejos, utilizaremos mtodos
basados en la traza pero ms eficientes (ej.herramienta
Debug)
La traza de un algoritmo depende de los datos de entrada
Para diferentes datos ledos de teclado, se obtienen
diferentes trazas
Para analizar si un algoritmo funciona correctamente
hay que probar todos los posibles casos de entradas
Informtica. GITI. Tema 3.
DISA.US

85

7. Traza o tabla de ejecucin


El nmero de sentencias/condiciones
evaluadas por un algoritmo es variables y
desconocido a priori
La dimensin de la traza depende de las
entradas

Al evaluar una condicin, es recomendable


marcar si la condicin era verdadera o falsa
Informtica. GITI. Tema 3.
DISA.US

86

Problema I: Leer dos nmeros reales y escribir la suma.


Instruccin a

Inicio

Inicio

Leer a

Leer a

Leer b

Leer b

r<-a+b

Escribir r

a+b

Escribir r

Fin

Informtica. GITI. Tema 3.


DISA.US

Fin

87

Problema II: Hallar el valor absoluto de un


nmero x
Instruccin x r
Inicio
- Leer x
10 x>=0?

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

Informtica. GITI. Tema 3.


DISA.US

88

Problema III: Leer tres nmeros reales y


escribirlos
Instruccin
Inicio
i<-0
1. i<=3?
Leer x
Escribir x
i<-i+1
2. i<=3?
Leer x
Escribir x

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

Problema III: Leer tres nmeros reales y


escribirlos
Inicio

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

Informtica. GITI. Tema 3.


DISA.US

i i 1

Fin

90

Problema IV: Leer un nmero entero x y


calcular y=|x|3. Escribir el resultado
Inicio

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

Informtica. GITI. Tema 3.


DISA.US

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

También podría gustarte