Pseudocódigo y Diagramas de Flujo

Anuncio
Pseudocódigo y Diagramas de Flujo
Pseudocódigo
El pseudocódigo es la descripción en Inglés o Español de los pasos de un algoritmo o procedimiento. El pseudocódigo es un mixto entre Inglés o Español y un lenguaje de programación universal. Existen varias representaciones de pseudocódigo, se tienen algunas similitudes pero no se tiene un estándar universal. Especificación de pseudocódigo
Declaración de Procedimientos
El pseudocódigo para un algoritmo inicia con la declaración del procedimiento (procedure), al cual se le asigna un nombre que se asocia al nombre representativo del algoritmo. El procedimiento recibe una lista de variables y las descripciones para cada variable (int, float, double, char). procedure mayor(L: lista de enteros) El procedimiento mayor recibe una lista de enteros nombrada L. Asignación
Una asignación es una instrucción que se utiliza para asignar un valor a las variables. La asignación está formada por dos partes separadas por los símbolos “:=”. La parte izquierda de la asignación debe ser una variable, a la cual se le asigna el valor correspondiente de una expresión. Esta expresión se localiza en la parte derecha de la asignación, formada con valores constantes, variables y operadores aritméticos (+, ­, *, /, % “mod”). variable := expresión
Algunos ejemplos:
max := a
a := 12
max := ( a + b ) / 2
Bloques para Instrucciones
Las instrucciones puede ser agrupadas en bloques para formar procedimientos complicados. Los bloques son especificados usando las palabras claves begin y end. begin
instrucción 1 instrucción 2 instrucción 3 .
.
.
instrucción n end Las instrucciones del bloque son ejecutadas secuencialmente.
Comentarios
Los comentarios son escritos entre los caracteres “{“,”}”. Al igual que en cualquier lenguaje de programación, los comentarios son información para los programadores.
{Esto es un comentario}
{x es el mayor de L}
Instrucciones Condicionales
Una instrucción condicional controla el flujo de ejecución. La forma más simple de una instrucción condicional es
if condición then instrucción
o
if condición then begin
bloque de instrucciones
end
Si la condición es verdadera entonces se evalúa la instrucción de if. La condición puede estar formada por variables, constantes, operadores de relación (<, >, <=, >=, != “diferente ≠” , == “igualdad”) y operadores lógicos ( && “AND lógica” ,|| “OR lógica”, ! “not o negación”). Otra alternativa para la instrucción if es if­else. Cuando la condición de if es falsa entonces se evalúa la instrucción de else.
if condición then instrucción 1
else instrucción 2
Note que sólo una de las dos instrucciones (1 o 2) será evaluada. Instrucciones para Ciclos
Las instrucciones para ciclos también controlan al flujo de ejecución. for es una instrucción empleada en la construcción de ciclos, la cual tiene la siguiente forma:
for variable:= valor inicial to valor final
instrucción
o
for variable:= valor inicial to valor final
begin
bloque de instrucciones
end
El número ciclos a ejecutar es igual al numero de elementos del intervalo cerrado [valor inicial, valor final]. Cada vez que se ejecuta un ciclo se incrementa en 1 a la variable del ciclo, esto es debido a una especificación implícita. Si el valor inicial es 0 y el valor final es 3 entonces el número de ciclos es igual a 4. La variable toma los valores 0, 1, 2, y 3.
Ejemplo:
sum := 0
for i := 0 to n
sum := sum + i while es otra instrucción utilizada para implementar ciclos:
while condición
instrucción
o
while condición
begin
bloque de instrucciones
end
Para el ciclo while, mientras la condición sea verdadera entonces se evalúa la instrucción o el bloque de instrucciones de while. La variable que controla al ciclo while es incrementada o decrementada explícitamente y no implícitamente como en for.
Ejemplo:
sum : = 0
while n > 0
begin
sum := sum + n n := n ­1
end
Más ejemplos:
1.­ El procedimiento mayor encuentra al elemento mayor de una secuencia finita
procedure mayor(a1,a2, . . . ,an: enteros)
max:= a1
for i := 2 to n
if max < ai then max := ai
{max es el elemento mayor}
Finalmente la variable max contiene al elemento mayor.
1*.­ Se deja como ejercicio implementar al procedimiento mayor con un ciclo while.
2.­ El procedimiento gcd es la implementación del algoritmo de Euclides. El algoritmo de Euclides tiene la finalidad de obtener el máximo común divisor de dos números. procedure gcd(a,b: enteros positivos)
x := a
y := b
while y ≠ 0
begin
r := x % y
x := y
y := r
end {gcb(a,b) es x}
x es el máximo común divisor.
2*.­Si ejecutamos al procedimiento gcd(16,6), ¿Cual es el valor de x?. 3*­Escriba un procedimiento “suma_0_100” para que calcule la suma de 0+1 + 2 + . . . +100. Observe que para este procedimiento no es necesario recibir argumentos.
4*­Escriba un procedimiento “suma_1_n”para que calcule la suma de 1 + . . . +n
donde n sera cualquier valor entero positivo mayor que 1. Referencia:
Discrete Mathematics and its Applications
Fourth Edition
Kenneth H. Rossen
Mc Graw Hill
Diagramas de Flujo
Los diagramas de flujo son otra técnica empleada para el desarrollo y representación de algoritmos. Con los diagramas de flujo, los algoritmos son representados en una forma gráfica. Los algoritmos son dibujados empelando los símbolos; óvalos, diamantes, rectángulos, paralelogramos y flechas llamadas líneas de flujo.
Símbolos:
Ovalos, empleados para especificar inicio y fin :
begin
end
El rectángulo especifica los procesos:
total = 0;
total = total + grade;
counter = 0;
counter = counter + 1;
El paralelogramo especifica entrada/salida:
“Inserte un número”
“La edad actual es :”+edad
El diamante especifica la sentencia de control if. true
grade != ­1
false
Si la condición (grade != ­1) es verdadera, el flujo de ejecución toma el camino true, y para el falso se toma el camino false.
Ejemplo:
1.­ Implementación del diagrama de flujo para el algoritmo suma_0_100.
begin
suma = 0;
i = 0;
true
i < 101
suma = suma + i;
i ++;
false
“suma de 0 a 100 =”, suma
end
2*.­Se recomienda implementar los algoritmos propuestos en la sección de pseudocódigo.
Referencia:
HOW TO PROGRAM C
H. M. Deitel / P. J. Deitel
Prentice Hall
Descargar