ALGORITMOS


-???-

Estructuras Algoritmicas



1. Estructuras Secuenciales
La estructura secuencial es aquella en la que una acción (instrucción) sigue a 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. Una estructura secuencial se representa de la siguiente forma:
Inicio
Accion1
Accion2
.
.
AcciónN
Fin


- Asignación:
La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:
·
Simples: Consiste en pasar un valor constate a una variable (a=15)
·
Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a=a+1)
·
Acumulador: Consiste en usarla como un sumador en un proceso (a=a+b)
·
De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a=c+b*2/4).

- Lectura:
La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta operación se representa en un pseudocodigo como sigue:

Leer a, b
Donde “a” y “b” son las variables que recibirán los valores

Escritura:
Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Este proceso se representa en un pseudocodigo como sigue:

Escribe “El resultado es:”, R
Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene un valor.

Problemas Secuenciales

) Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganara después de un mes si el banco paga a razón de 2% mensual.

Inicio
Leer cap_inv
gan = cap_inv * 0.02
Imprimir gan
Fin

2) Un vendedor recibe un sueldo base mas un 10% extra por comisión de sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.
Inicio

Leer sb, v1, v2, v3
tot_vta = v1 + v2 + v3
com = tot_vta * 0.10
tpag = sb + com
Imprimir tpag, com
Fin


3) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra.

Inicio
Leer tc
d = tc * 0.15
tp = tc - d
Imprimir tp
Fin

5.2 Estructuras de Condicionales
Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable ¿ contra una constante, según se necesite. Existen dos tipos básicos, las simples y las múltiples.

·
Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:

Si <condición> entonces
Acción(es)
Fin-si


·
Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:

Si <condición> entonces
Acción(es)
si no
Acción(es)
Fin-si


Donde:
Si ………………… Indica el comando de comparación
Condición………… Indica la condición a evaluar
entonces……..…… Precede a las acciones a realizar cuando se cumple la condición
acción(es)………… Son las acciones a realizar cuando se cumple o no la condición
si no……………… Precede a las acciones a realizar cuando no se cumple la
condición
Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o mas acciones.

·
Múltiples: Las estructuras de comparación múltiples, son tomas de decisión especializadas que permiten comparar una variable contra distinta posibles resultados, ejecutando para cada caso una serie de instrucciones específicas. La forma común es la siguiente:

Si <condición> entonces
Acción(es)
si no
Si <condición> entonces
Acción(es)
si no
Varias condiciones


·
Forma General
Casos Variable
Op1: Acción(es)
Op2: Acción(es)
.
.
OpN: acción
Fin-casos


Problemas Condicionales

a) Problemas Selectivos Simples
1) Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a $7000, y en ese caso desea saber cuanto dinero tendrá finalmente en su cuenta.

Inicio
Leer p_int, cap
int = cap * p_int
si int > 7000 entonces
capf = cap + int
fin-si
Imprimir capf
fin


2) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso contrario.
Inicio
Leer calif1, calif2, calif3
prom = (calif1 + calif2 + calif3)/3
Si prom >= 70 entonces
Imprimir “alumno aprobado”
si no
Imprimir “alumno reprobado”
Fin-si
Fin

3) En un almacén se hace un 20% de descuento a los clientes cuya compra supere los
$1000 ¿ Cual será la cantidad que pagara una persona por su compra?

Inicio
Leer compra
Si compra > 1000 entonces
desc = compra * 0.20
si no
desc = 0
fin-si
tot_pag = compra - desc
imprimir tot_pag
fin.

Problemas Selectivos Compuestos

1) Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.

Inicio
Leer num1, num2
si num1 = num2 entonces
resul = num1 * num2
si no
si num1 > num2 entonces
resul = num1 - num2
si no
resul = num1 + num2
fin-si
fin-si
fin

2) Leer tres números diferentes e imprimir el numero mayor de los tres.

Inicio
Leer num1, num2, num3
Si (num1 > num2) and (num1 > num3) entonces
mayor = num1
si no
Si (num2 > num1) and (num2 > num3) entonces
mayor = num2
si no
mayor = num3
fin-si
fin-si
Imprimir mayor
fin


5.3. Estructuras Cíclicas
Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).Los ciclos se clasifican en:

·
Ciclos con un Numero Determinado de Iteraciones (Hacer-Para)
Son aquellos en que el numero de iteraciones se conoce antes de ejecutarse el ciclo. La forma de esta estructura es la siguiente:

Hacer para V.C = L.I a L.S VC=LI
Accion1 Vc = LS V
Accion 2 vc=vc+1
.
. F
.
AccionN Cuerpo del ciclo
Fin-para


Donde:
V.C Variable de control del ciclo
L.I Limite inferir
L.S Limite superior
En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta que la variable de control llegue al limite superior.

Problemas ( Hacer para )
1) Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño
Estructurado de Algoritmos

Inicio
Sum=0
Leer Nom
Hacer para c = 1 a 7
Leer calif
Sum = sum + calif
Fin-para
prom = sum /7
Imprimir prom
Fin.


2) Leer 10 números y obtener su cubo y su cuarta.

Inicio
Hacer para n = 1 a 10
Leer num
cubo = num * num * num
cuarta = cubo * num
Imprimir cubo, cuarta
Fin-para
Fin.

3) Leer 10 números e imprimir solamente los números positivos

Inicio
Hacer para n = 1 a 10
Leer num
Si num > 0 entonces
Imprimir num
fin-si
Fin-para
Fin.

·
Ciclos con un Numero Indeterminado de Iteraciones ( Hacer-Mientras, Repetir-Hasta)
Son aquellos en que el numero de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa.

·
Hacer-Mientras: Esta es una estructura que repetira un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando.
Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso.
La forma de esta estructura es la siguiente:

Hacer mientras <condición>
Accion1
NO
Accion2
.
. SI
AccionN
Fin-mientras

· Repetir-Hasta: Esta es una estructura similar en algunas características, a la
anterior. Repite un proceso una cantidad de veces, pero a diferencia del
Hacer-Mientras, el Repetir-Hasta lo hace hasta que la condición se cumple y
no mientras, como en el Hacer-Mientras. Por otra parte, esta estructura
permite realizar el proceso cuando menos una vez, ya que la condición se
evalúa al final del proceso, mientras que en el Hacer-Mientras puede ser que
nunca llegue a entrar si la condición no se cumple desde un principio. La
forma de esta estructura es la siguiente:

Repetir
Accion1
Accion2
.
.
AccionN
Hasta <condición>


-???- | -???-