02 Algoritmos diagramas de flujo y pseudocodigo

Anuncio
Escuela Politécnica Superior de Ingeniería
Departamento de Ingeniería Informática
Fundamentos de la informática
2. Algoritmos, diagramas de flujo y
pseudocódigo
Contenido
Algoritmos
Diagramas de flujo
Pseudocódigo
Tipos de datos
Control del flujo
Estructuras repetitivas
Operadores aritméticos, lógicos y relacionales
Arrays y vectores
Funciones
Algoritmos, diagramas de flujo y pseudocódigo
2
Algoritmos
Algoritmos y programas
Un algoritmo es un conjunto ordenado y finito de
operaciones que permite hallar la solución de un
problema (Diccionario RAE)
Para programar de forma eficaz es necesario aprender a
resolver problemas de una forma sistemática y rigurosa.
Sólo se puede llegar a realizar un buen programa si
previamente se ha diseñado un algoritmo
Un algoritmo puede ser utilizado
programas en distintos lenguajes
Algoritmos, diagramas de flujo y pseudocódigo
para
codificar
3
Algoritmos
Algoritmos y programas
Los algoritmos son independientes de los lenguajes de
programación. Un lenguaje de programación permite
expresar un algoritmo para que sea ejecutado por un
ordenador
Un algoritmo describe los datos de entrada, el proceso y
los datos de salida
1. Entrada: Datos que utiliza el algoritmo para su ejecución
2. Proceso: Reglas y operaciones del algoritmo para resolver
un problema
3. Salida: Resultados del proceso
Algoritmos, diagramas de flujo y pseudocódigo
4
Algoritmos
Algoritmos y programas
Un algoritmo debe ser claro y preciso, debe especificar las
acciones a realizar y el orden de realización
Un algoritmo debe tener un número finito de pasos y,
cada vez que se realice con los mismos datos de entrada,
debe dar el mismo resultado
Algoritmos, diagramas de flujo y pseudocódigo
5
Algoritmos
Las fases de desarrollo de un programa
1. Análisis. Consiste en entender el problema que se quiere
resolver ¿Qué debemos hacer?
2. Diseño. Plan para resolver el problema ¿Cómo hacer?
3. Programación. Traducción de un algoritmo
programa Java o de cualquier otro lenguaje
en
un
4. Validación del programa. Evaluación de los resultados del
programa
Algoritmos, diagramas de flujo y pseudocódigo
6
Algoritmos
Constantes y variables
Las constantes y las variables son valores almacenados
en una dirección de memoria. El valor almacenado debe
tener un tipo de dato: entero, decimal, carácter, etc. El
nombre que se utiliza para hacer referencia a una
constante o una variable se denomina identificador
El valor de una constante no cambia durante la ejecución
de un programa. Por ejemplo pi = 3,1416
Las variables almacenan los datos utilizados por los
programas. El valor de una variable puede cambiar
durante la ejecución de un programa
Algoritmos, diagramas de flujo y pseudocódigo
7
Algoritmos
Identificadores
Representan las variables de un programa e identifican la
dirección de memoria donde se almacena una variable
El identificador de una variable debe comenzar con una
letra. Después de la primera letra pueden aparecer más
letras o números
Un identificador no puede tener espacios en blanco
a1 es un identificador válido
1a no es un identificador válido
Algoritmos, diagramas de flujo y pseudocódigo
8
Algoritmos
Herramientas para diseño de algoritmos
Para diseñar un algoritmo se dispone de dos
herramientas: los diagramas de flujo y el pseudocódigo
Un diagrama de flujo representa gráficamente un
algoritmo. Muestra la secuencia de operaciones a realizar
para resolver un problema. Cada símbolo de un diagrama
de flujo representa una acción
El pseudocódigo es un lenguaje que describe algoritmos
con una sintaxis similar a un lenguaje de programación.
Normalmente se escribe en inglés o en español. La
traducción
de
pseudocódigo
a
un
lenguaje
de
programación es muy sencilla
Algoritmos, diagramas de flujo y pseudocódigo
9
Diagramas de flujo
Diagramas de flujo y procesos
Un diagrama de flujo muestra las actividades y las
decisiones que definen un proceso
Un diagrama de flujo tiene un punto de inicio y un
número finito de puntos de finalización. Puede dividirse
en “carriles” para identificar a los responsables de
realizar cada actividad
Un diagrama de flujo es una herramienta útil en las fases
de análisis y diseño de software
Algoritmos, diagramas de flujo y pseudocódigo
10
Diagramas de flujo
Simbología
El inicio y el final de un diagrama de flujo se representa
con un rectángulo con los bordes redondeados
Los procesos se representan con rectángulos
Algoritmos, diagramas de flujo y pseudocódigo
11
Diagramas de flujo
Simbología
Los controles del flujo se representan con rombos. Dentro
del rombo se indica la condición o expresión lógica a
evaluar
Actividad
1
Sí
condición
Actividad
2
No
Actividad
Algoritmos, diagramas de flujo y pseudocódigo
3
12
Diagramas de flujo
Simbología
Para indicar un punto de unión de dos o más flujos se
utiliza un conector
La entrada y salida de datos se representa con el símbolo
Algoritmos, diagramas de flujo y pseudocódigo
13
Diagramas de flujo
Simbología
Para indicar un punto de unión dos o más flujos de
ejecución se utiliza el flujo se utiliza un “join”. El flujo no
continua hasta que todos los flujos de entrada hayan
finalizado
Para iniciar dos o más flujos en paralelo se utiliza un
“fork”
Algoritmos, diagramas de flujo y pseudocódigo
14
Diagramas de flujo
Flujo secuencial
Actividad
1
Flujo condicionado
Actividad
1
Sí
Actividad
2
condición
Actividad
2
Actividad
4
No
Actividad
Actividad
3
4
En este caso se ejecutan las
actividades 1, 2, 3 y 4, de forma
ordenada
Algoritmos, diagramas de flujo y pseudocódigo
Actividad
3
En este caso se ejecuta siempre la actividad 1.
Si la condición es verdadera, entonces se
ejecuta la actividad 2, en caso contrario se
realiza la actividad 3. Finalmente, se ejecuta la
actividad 4
15
Pseudocódigo
Se denomina pseudocódigo a un lenguaje basado en
normas léxicas y gramaticales similares a las utilizadas
por los lenguajes de programación
El pseudocódigo combina
lenguaje coloquial con las
normas gramaticales de los lenguajes de programación
Es una herramienta útil en las fases de análisis y diseño
de software
Algoritmos, diagramas de flujo y pseudocódigo
16
Pseudocódigo
El pseudocódigo permite diseñar algoritmos utilizando
frases en lenguaje común, instrucciones de programación
y palabras clave para definir las estructuras básicas de
control
Los algoritmos escritos en pseudocódigo se puede
convertir
fácilmente
a
cualquier
lenguaje
de
programación
Algoritmos, diagramas de flujo y pseudocódigo
17
Pseudocódigo
El pseudocódigo es una herramienta muy útil
1. Facilita la comprensión y la verificación del algoritmo a
desarrollar
2. Permite
representar
repetitivas complejas
de
forma
fácil
operaciones
3. Facilita la traducción a un lenguaje de programación
4. Permite observar claramente los distintos niveles de la
estructura de un programa
Algoritmos, diagramas de flujo y pseudocódigo
18
Pseudocódigo
Pseudocódigo y algoritmos
1. El algoritmo tiene un único punto de inicio
2. El algoritmo tiene un número finito de posibles puntos de
finalización
3. Es necesario que exista un número finito de caminos,
entre el punto de inicio y los posibles puntos de
finalización
Algoritmos, diagramas de flujo y pseudocódigo
19
Pseudocódigo
Tipos de datos
Los tipos de datos básicos utilizados en pseudocódigo
son: char, int, float, boolean
char
int
float
boolean
carácter
número entero
número real
admite un valor falso o verdadero
Las variables se declaran como se indica a continuación:
<tipo de dato1> variable1 = valor
<tipo de dato2> variable2, variable3, ... , variablen
Algoritmos, diagramas de flujo y pseudocódigo
20
Pseudocódigo
Instrucciones
Conjunto
de
instrucciones
que
secuencialmente, en su orden natural
se
ejecutan
La ejecución del programa comienza por la primera
instrucción y continua sucesivamente con las siguientes
en orden secuencial:
Instrucción1
Instrucción2
…
…
Instrucciónn
Algoritmos, diagramas de flujo y pseudocódigo
21
Pseudocódigo
Control del flujo y decisiones
Para tomar decisiones y controlar el flujo de un algoritmo
se puede tomar una decisión simple o múltiple
La decisión simple puede tomar dos caminos, en función
de que la condición sea verdadera o falsa
La decisión múltiple puede tomar muchos caminos, no
necesariamente excluyentes entre sí
Algoritmos, diagramas de flujo y pseudocódigo
22
Pseudocódigo
Control del flujo y decisiones
Flujo “simple”
if (expresión lógica)
Conjunto de instrucciones1
else
Conjunto de instrucciones2
end if
Algoritmos, diagramas de flujo y pseudocódigo
23
Pseudocódigo
Control del flujo y decisiones
Flujo “múltiple”
switch (expresión lógica)
<valor1>: Conjunto de instrucciones1
<valor2>: Conjunto de instrucciones2
<valor3>: Conjunto de instrucciones3
…
<valorn>: Conjunto de instruccionesn
default:
end switch
Conjunto de instrucciones alternativas
Algoritmos, diagramas de flujo y pseudocódigo
24
Pseucocódigo
Estructuras iterativas
Para repetir un conjunto de instrucciones un número
determinado de veces es necesario utilizar una estructura
iterativa
Existen tres tipos de estructuras iterativas
for
while
do while
Algoritmos, diagramas de flujo y pseudocódigo
25
Pseucocódigo
Estructuras iterativas
for (inicio; expresion lógica; incremento)
Conjunto de instrucciones
end for
while (expresión lógica)
Conjunto de instrucciones
end while
do while (expresión lógica)
Conjunto de instrucciones
end do
Algoritmos, diagramas de flujo y pseudocódigo
26
Pseudocódigo
Operadores aritméticos
+
*
/
^
Div
Mod
Sqr
Sqrt
suma
resta
producto
división
potencia
división entera (cociente)
division entera (residuo)
cuadrado
raíz cuadrada
Algoritmos, diagramas de flujo y pseudocódigo
27
Pseudocódigo
Operadores relacionales
Los operadores relacionales evalúan una expresión y
devuelven un valor falso o verdadero
<
>
<=
>=
<>
menor que
mayor que
menor o igual que
mayor o igual que
diferente de
Algoritmos, diagramas de flujo y pseudocódigo
28
Pseudocódigo
Operadores lógicos
Los operadores lógicos evalúan una expresión lógica
devuelven un valor falso o verdadero
AND
OR
NOT
A AND B es verdadero si A y B son verdaderos
A OR B es verdadero si A o B son verdaderos
negación del operando A, es decir, verdadero si
A es falso, falso si A es verdadero
Algoritmos, diagramas de flujo y pseudocódigo
29
Pseudocódigo
Arrays y vectores
Un conjunto de datos del mismo tipo se almacena en un
“array” o tabla
<tipo de dato> nombre variable[d1, ..., dn]
En este caso, d1, ..., dn representan las dimensiones del
array. Cada dimensión tiene un número de localidades
determinadas
Un array de una dimensión se denomina vector
Algoritmos, diagramas de flujo y pseudocódigo
30
Pseudocódigo
Funciones
Una función es un conjunto de instrucciones que tienen
por objeto realizar un cálculo. Una función siempre
devuelve un resultado
El uso de funciones facilita la estructura y organización de
un programa
Algoritmos, diagramas de flujo y pseudocódigo
31
Pseudocódigo
Funciones
<tipo de dato> function <nombre de la funcion>
(lista de parámetros)
begin
Conjunto de instrucciones
return (valor de la funcion)
end function
donde:
lista de parámetros: < tipo de dato> variable1…
valor de la función: variable | valor
Algoritmos, diagramas de flujo y pseudocódigo
32
Pseudocódigo
Funciones
Existen funciones que se especifican a partir de su propia
definición. Este tipo de funciones se denominan
“recurrentes” o “recursivas”
Una función recursiva se define en términos de sí misma,
siempre que exista una solución simple conocida
El factorial de un número es un ejemplo de una definición
recursiva
Factorial(n)=
{
Si n=0, entonces Factorial(0) = 1
Si n>0, entonces Factorial(n) = n * Factorial(n-1)
Algoritmos, diagramas de flujo y pseudocódigo
33
Descargar