02 algoritmos diagramas de flujo y pseudocodigo
TRANSCRIPT
-
Escuela Politcnica Superior de IngenieraDepartamento de Ingeniera Informtica
Fundamentos de la informtica
2. Algoritmos, diagramas de flujo y pseudocdigo
-
2Algoritmos, diagramas de flujo y pseudocdigo
Contenido
Algoritmos
Diagramas de flujo
Pseudocdigo
Tipos de datos
Control del flujo
Estructuras repetitivas
Operadores aritmticos, lgicos y relacionales
Arrays y vectores
Funciones
-
3Algoritmos, diagramas de flujo y pseudocdigo
Algoritmos
Algoritmos y programas
Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la solucin de un problema (Diccionario RAE)
Para programar de forma eficaz es necesario aprender a resolver problemas de una forma sistemtica y rigurosa. Slo se puede llegar a realizar un buen programa si previamente se ha diseado un algoritmo
Un algoritmo puede ser utilizado para codificar programas en distintos lenguajes
-
4Algoritmos, diagramas de flujo y pseudocdigo
Algoritmos
Algoritmos y programas
Los algoritmos son independientes de los lenguajes de programacin. Un lenguaje de programacin 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 ejecucin
2. Proceso: Reglas y operaciones del algoritmo para resolver un problema
3. Salida: Resultados del proceso
-
5Algoritmos, diagramas de flujo y pseudocdigo
Algoritmos
Algoritmos y programas
Un algoritmo debe ser claro y preciso, debe especificar las acciones a realizar y el orden de realizacin
Un algoritmo debe tener un nmero finito de pasos y, cada vez que se realice con los mismos datos de entrada, debe dar el mismo resultado
-
6Algoritmos, diagramas de flujo y pseudocdigo
Algoritmos
Las fases de desarrollo de un programa
1. Anlisis. Consiste en entender el problema que se quiere resolver Qu debemos hacer?
2. Diseo. Plan para resolver el problema Cmo hacer?
3. Programacin. Traduccin de un algoritmo en un programa Java o de cualquier otro lenguaje
4. Validacin del programa. Evaluacin de los resultados del programa
-
7Algoritmos, diagramas de flujo y pseudocdigo
Algoritmos
Constantes y variables
Las constantes y las variables son valores almacenados en una direccin de memoria. El valor almacenado debe tener un tipo de dato: entero, decimal, carcter, 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 ejecucin 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 ejecucin de un programa
-
8Algoritmos, diagramas de flujo y pseudocdigo
Algoritmos
Identificadores
Representan las variables de un programa e identifican la direccin de memoria donde se almacena una variable
El identificador de una variable debe comenzar con una letra. Despus de la primera letra pueden aparecer ms letras o nmeros
Un identificador no puede tener espacios en blanco
a1 es un identificador vlido
1a no es un identificador vlido
-
9Algoritmos, diagramas de flujo y pseudocdigo
Algoritmos
Herramientas para diseo de algoritmos
Para disear un algoritmo se dispone de dos herramientas: los diagramas de flujo y el pseudocdigo
Un diagrama de flujo representa grficamente un algoritmo. Muestra la secuencia de operaciones a realizar para resolver un problema. Cada smbolo de un diagrama de flujo representa una accin
El pseudocdigo es un lenguaje que describe algoritmos con una sintaxis similar a un lenguaje de programacin. Normalmente se escribe en ingls o en espaol. La traduccin de pseudocdigo a un lenguaje de programacin es muy sencilla
-
10Algoritmos, diagramas de flujo y pseudocdigo
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 nmero finito de puntos de finalizacin. 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 anlisis y diseo de software
-
11Algoritmos, diagramas de flujo y pseudocdigo
Diagramas de flujo
Simbologa
El inicio y el final de un diagrama de flujo se representa con un rectngulo con los bordes redondeados
Los procesos se representan con rectngulos
-
12Algoritmos, diagramas de flujo y pseudocdigo
Diagramas de flujo
Simbologa
Los controles del flujo se representan con rombos. Dentro del rombo se indica la condicin o expresin lgica a evaluar
condicin
Actividad 1
Actividad 3
Actividad 2
S
No
-
13Algoritmos, diagramas de flujo y pseudocdigo
Diagramas de flujo
Simbologa
Para indicar un punto de unin de dos o ms flujos se utiliza un conector
La entrada y salida de datos se representa con el smbolo
-
14Algoritmos, diagramas de flujo y pseudocdigo
Diagramas de flujo
Simbologa
Para indicar un punto de unin dos o ms flujos de ejecucin 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 ms flujos en paralelo se utiliza un fork
-
15Algoritmos, diagramas de flujo y pseudocdigo
Diagramas de flujo
Flujo secuencial Flujo condicionado
En este caso se ejecutan las actividades 1, 2, 3 y 4, de forma ordenada
En este caso se ejecuta siempre la actividad 1. Si la condicin es verdadera, entonces se ejecuta la actividad 2, en caso contrario se realiza la actividad 3. Finalmente, se ejecuta la actividad 4
condicin
Actividad 1
Actividad 3
Actividad 2
S
No
Actividad 4
Actividad 2
Actividad 1
Actividad 3
Actividad 4
-
16Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Se denomina pseudocdigo a un lenguaje basado en normas lxicas y gramaticales similares a las utilizadas por los lenguajes de programacin
El pseudocdigo combina lenguaje coloquial con las normas gramaticales de los lenguajes de programacin
Es una herramienta til en las fases de anlisis y diseo de software
-
17Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
El pseudocdigo permite disear algoritmos utilizando frases en lenguaje comn, instrucciones de programacin y palabras clave para definir las estructuras bsicas de control
Los algoritmos escritos en pseudocdigo se puede convertir fcilmente a cualquier lenguaje de programacin
-
18Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
El pseudocdigo es una herramienta muy til
1. Facilita la comprensin y la verificacin del algoritmo a desarrollar
2. Permite representar de forma fcil operaciones repetitivas complejas
3. Facilita la traduccin a un lenguaje de programacin
4. Permite observar claramente los distintos niveles de la estructura de un programa
-
19Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Pseudocdigo y algoritmos
1. El algoritmo tiene un nico punto de inicio
2. El algoritmo tiene un nmero finito de posibles puntos de finalizacin
3. Es necesario que exista un nmero finito de caminos, entre el punto de inicio y los posibles puntos de finalizacin
-
20Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Tipos de datos
Los tipos de datos bsicos utilizados en pseudocdigo son: char, int, float, boolean
char carcter
int nmero entero
float nmero real
boolean admite un valor falso o verdadero
Las variables se declaran como se indica a continuacin:
variable1 = valor
variable2, variable3, ... , variablen
-
21Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Instrucciones
Conjunto de instrucciones que se ejecutan secuencialmente, en su orden natural
La ejecucin del programa comienza por la primera instruccin y continua sucesivamente con las siguientes en orden secuencial:
Instruccin1Instruccin2
Instruccinn
-
22Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Control del flujo y decisiones
Para tomar decisiones y controlar el flujo de un algoritmo se puede tomar una decisin simple o mltiple
La decisin simple puede tomar dos caminos, en funcin de que la condicin sea verdadera o falsa
La decisin mltiple puede tomar muchos caminos, no necesariamente excluyentes entre s
-
23Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Control del flujo y decisiones
Flujo simple
if (expresin lgica)
Conjunto de instrucciones1else
Conjunto de instrucciones2end if
-
24Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Control del flujo y decisiones
Flujo mltiple
switch (expresin lgica)
: Conjunto de instrucciones1: Conjunto de instrucciones2: Conjunto de instrucciones3
: Conjunto de instruccionesn
default: Conjunto de instrucciones alternativas
end switch
-
25Algoritmos, diagramas de flujo y pseudocdigo
Pseucocdigo
Estructuras iterativas
Para repetir un conjunto de instrucciones un nmero determinado de veces es necesario utilizar una estructura iterativa
Existen tres tipos de estructuras iterativas
for
while
do while
-
26Algoritmos, diagramas de flujo y pseudocdigo
Pseucocdigo
Estructuras iterativas
for (inicio; expresion lgica; incremento)
Conjunto de instrucciones
end for
while (expresin lgica)
Conjunto de instrucciones
end while
do while (expresin lgica)
Conjunto de instrucciones
end do
-
27Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Operadores aritmticos
+ suma
- resta
* producto
/ divisin
^ potencia
Div divisin entera (cociente)
Mod division entera (residuo)
Sqr cuadrado
Sqrt raz cuadrada
-
28Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Operadores relacionales
Los operadores relacionales evalan una expresin y devuelven un valor falso o verdadero
< menor que
> mayor que
= mayor o igual que
diferente de
-
29Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Operadores lgicos
Los operadores lgicos evalan una expresin lgica devuelven un valor falso o verdadero
AND A AND B es verdadero si A y B son verdaderos
OR A OR B es verdadero si A o B son verdaderos
NOT negacin del operando A, es decir, verdadero si A es falso, falso si A es verdadero
-
30Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Arrays y vectores
Un conjunto de datos del mismo tipo se almacena en un array o tabla
nombre variable[d1, ..., dn]
En este caso, d1, ..., dn representan las dimensiones del array. Cada dimensin tiene un nmero de localidades determinadas
Un array de una dimensin se denomina vector
-
31Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Funciones
Una funcin es un conjunto de instrucciones que tienen por objeto realizar un clculo. Una funcin siempre devuelve un resultado
El uso de funciones facilita la estructura y organizacin de un programa
-
32Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Funciones
function
(lista de parmetros)
begin
Conjunto de instrucciones
return (valor de la funcion)
end function
donde:
lista de parmetros: < tipo de dato> variable1
valor de la funcin: variable | valor
-
33Algoritmos, diagramas de flujo y pseudocdigo
Pseudocdigo
Funciones
Existen funciones que se especifican a partir de su propia definicin. Este tipo de funciones se denominan recurrentes o recursivas
Una funcin recursiva se define en trminos de s misma, siempre que exista una solucin simple conocida
El factorial de un nmero es un ejemplo de una definicin recursiva
Si n=0, entonces Factorial(0) = 1Si n>0, entonces Factorial(n) = n * Factorial(n-1)
Factorial(n)={