lunes, 16 de marzo de 2009

Estructuras Algoritmicas

Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. las estructuras algoritmicas se pueden clasificar en:


ESTRUCTURA SECUENCIAL

Es aquélla en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal
modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La
estructura secuencial tiene una entrada y una salida. Su representación gráfica es la siguiente:
Estructura secuencial:

Acción 1
Acción 2
Acción 3
.......


DIAGRAMA N−S DE UNA ESTRUCTURA SECUENCIAL:

Acción 1
Acción 2
...
Acción n


PSEUDOCÓDIGO DE UNA ESTRUCTURA SECUENCIAL:

Inicio
:
:
acciones
:
:
fin

Ejemplo:

Calcular el salario neto de un trabajador en función del número de horas trabajadas, precio de la hora de
trabajo y considerando unos descuentos fijos al sueldo bruto en concepto de impuestos (20 por 100).


**Pseudocódigo**
· Inicio
· {cálculo salario neto}
· leer nombre, horas, precio_hora
· salario_bruto horas * precio
· impuestos 0.20 * salario_bruto
· salario_neto salario_bruto_impuestos
· escribir nombre, salario_bruto, salario_neto_bruto, salario_neto
· Fin


CONDICIONALES

La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una
descripción más complicada que una lista sencilla de instrucciones. Este es el caso cuando existen un
número de posibles alternativas resultantes de la evaluación de una determinada condición.
Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también
estructuras de decisión o alternativas.

En las estructuras selectivas se evalúa una condición y en función del resultado la misma se realiza una opción
u otra. Las condiciones se especifican usando expresiones lógicas. La representación de una estructura
selectiva se hace con palabras en pseudocódigo (if, then, else o bien en español si, entonces, sino), con una
figura geométrica en forma de rombo o bien con un triángulo en el interior de una caja rectangular.
Las estructuras selectivas o alternativas pueden ser:

· Simples
· Doble
· Múltiples

ALTERNATIVA SIMPLE (SI−ENTONCES/IF−THEN):

La estructura alternativa simple si−entonces (en inglés if−then o bien IF−THEN ) ejecuta una determinada
acción cuando se cumple una determinada condición. La selección si−entonces evalúa la condición y . .

Si la condición es verdadera, entonces ejecuta la acción S1 (o acciones caso de ser S1 una acción compuesta y
constar de varias acciones).

Si la condición es falsa, entonces no hacer nada.

**PSEUDOCÓDIGO EN ESPAÑOL**

Si Entonces

Fin_si

PSEUDOCÓDIGO EN INGLÉS

If then

end_if


ALTERNATIVA DOBLE ( SI−ENTONCES−SI_NO / IF − THEN − ELSE ):


La estructura anterior es muy limitada y normalmente se necesitará una estructura que permita elegir
entre dos opciones o alternativas posibles, en función del cumplimiento o no de una determinada
condición.

Si la condición C es verdadera, se ejecuta la acción S1 y, si es falsa, se ejecuta la acción S2.

**PSEUDOCODIGO EN ESPAÑOL**

Si <> entonces
<>
si_no

fin_si

PSEUDOCODIGO EN INGLES.

If <> then
<>
else
<>
endif

ALTERNATIVAS MÚLTIPLES (SEGÚN _ SEA, CASO DE / CASE):

Cuando existen más de dos elecciones (alternativas) posibles, es cuando se presenta el caso de alternativas
múltiples. Si el número de alternativas es grande puede plantear serios problemas de escritura del algoritmo y
naturalmente de legibilidad.

La estructura de decisión múltiple evaluará una expresión que podrá tomar n valores distintos 1,2,3,4,..n .
Según que elija uno de estos valores en la condición, se realizará una de las n acciones, o lo que es igual, el
flujo del algoritmo seguirá un determinado camino entre los n posibles.

**PSEUDOCÓDIGO**

En inglés la estructura de decisión múltiple se representa:

Case expresión of
[e1]: acción S1
[e2]: acción S2
:
[en]: acción Sn
else
acción Sx
end_case

Ejemplo:

Se desea diseñar un algoritmo que escriba los nombres de los días de la semana en función del valor de una
variable DIA introducida por teclado.

Los días de la semana son 7; por consiguiente, el rango de valores de DIA será 1..7, y caso de que DIA tome
un valor fuera de este rango se deberá producir un mensaje de error advirtiendo la situación anómala.

Inicio
Leer DIA
Según_sea DIA hacer
1:escribir('Lunes')
2: escribir('Martes')
3: escribir('Miércole')
4: escribir('Jueves')
5: escribir('Viernes')
6: escribir('Sabado')
7: escribir('Domingo')
else
escribir('Error')
fin_según
fin

ESTRUCTURAS REPETITIVAS

Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan
Bucles y se denomina Iteración al hecho de repetir la ejecución de una secuencia de acciones. Entre las
estructuras repetitivas se encuentran:

· Mientras (while)
· Repetir (repeat)
· Desde (for)

ESTRUCTURA MIENTRAS (WHILE):

La estructura repetitiva while, es aquélla en que el cuerpo del bucle se repite mientras se cumple una
determinada condición.

**Pseudocódigo en español Pseudocódigo en inglés**

Mientras condición hacer while condición do

Acción S1
Acción S2 :
: End_while
acción Sn
Fin_mientras

Ejemplo:

Contar los números enteros positivos introducidos por teclado. Se consideran dos variables enteras NUMERO
y CONTADOR (contará el número de enteros positivos). Se supone que se leen números positivos y se
detiene el bucle cuando se lee un número negativo o cero.

**PSEUDOCÓDIGO**

Inicio
contador 0
Leer (numero)
Mientras numero > 0 hacer
contador contador+1
Leer (numero)
Fin_Mientras
Escribir('El número de enteros positivos es : ', contador)
Fin