jueves, 12 de julio de 2012

Algoritmo Divisibles

Algoritmo que lee un número natural y entrega todos los números entre 1 y 1000 que son divisibles por aquel.

http://www.4shared.com/file/t8HhuKMT/Divisibles.html

Variables

Las variables son la piedra angular de un algoritmo. Los algoritmos básicamente procesan datos para obtener más datos, y esos datos tienen que guardarse en variables.

Para clarificar, supongamos que me piden un algoritmo que sume dos números. Podría escribir el siguiente algoritmo:


Este algoritmo sin duda funciona, pero sirve sólo para los números que se incluyeron como valores literales en él.

El programador podría responder a la observación anterior diciendo que puede cambiar los números en cualquier momento, y tiene toda la razón, pero la idea de los algoritmos y programas es que funcionen sin necesidad que el programador esté al lado modificándolos.

Visto lo anterior debemos modificar el algoritmo para que sume dos números cualesquiera, particularmente dos números que el usuario ingrese. Esto implica el uso de la instrucción Leer, y por lo tanto el uso de variables.



Lo que está bien: hay 2 Leer ya que son 2 números a sumar.

Lo que está mal: ambos números se leen en la misma variable.

Una variable estándar sólo permite guardar un dato, así que al guardar el dato léido la segunda vez se pierde el que se leyó primero.


La suma correcta es 111, pero el resultado es 98, o sea 49 + 49. El 62 se leyó y guardó, pero al leer y guardar el 49 en la misma variable el 62 se pierde y sólo queda el 49.

Hay más de una solución. La más obvia es usar dos variables en vez de una:



Nótese que cada variable que se usa:
  • Debe tener un identificador único
  • Debe declararse antes de usarse
  • Debe definirse del tipo correcto
Otra solución es sumar a medida que se lee:



Como sea cualquier solución va a implicar usar más variables.

Las variables usan memoria RAM, pero los computadores modernos tienen bastante RAM como para que el crear más variables no sea una preocupación por ese motivo. Una variable de tipo Entero usa 4 Bytes de RAM. Un computador con 2 GB de RAM tiene 2.147.483.648 Bytes, así que puedes apreciar la diferencia.

No obstante siempre el programador profesional cuida la cantidad de variables, ya que afectan la claridad y el rendimiento del algoritmo. No es el caso de nuestro algoritmo que es muy básico y pequeño.

En este caso el algoritmo ideal sería el siguiente:



miércoles, 11 de julio de 2012

Estructura de Control Para

El Para es una estructura de control iterativa que se usa cuando se sabe la cantidad de veces que debe ejecutarse el código bajo control:
Para «variable de control» <- «inicio» Hasta «final» Hacer
«código a iterar»
FinPara
La variable de control debe ser de tipo entero.
Definir «variable de control» Como Entero;
Igualmente el valor de inicio y el valor final deben ser enteros, expresiones que evaluén a números enteros.
Supongamos que primero leemos la cantidad de artículos que lleva el cliente, luego con un Para leemos el precio de cada artículo y lo vamos sumando para obtener el total.


En la línea 5 apreciamos que la variable de control es i. Si bien puede usarse cualquier identificador para la variable de control es una costumbre histórica que se use el identificador i para la misma.

El Para automáticamente suma 1 a la variable de control tras cada iteración. Cuando se sobrepasa el valor final el Para se detiene.

Algunas veces es necesario contar al revés, o de 2 en 2, o de algún modo especial. El Para tiene una claúsula opcional Con Paso para esas oportunidades. Por ejemplo para contar al revés:

Para contar de 3 en 3:

La especificación del paso debe ser una  expresión que evalué a número entero.

Estructuras de Control Iterativas

Cuando un mismo código debe ejecutarse varías veces seguidas conviene ubicarlo dentro de una estructura de control iterativa. Hay 3 estructuras de control iterativas:

  • Para
  • Mientras
  • Repetir

Algoritmo Carrera Loca

Uno de mis favoritos, simula una carrera de camionetas en pantalla, muy divertido y demostrativo del uso de la función AZAR.

http://www.4shared.com/file/9C-EJPEb/Carrera_Loca.html

Algoritmo Nota Final

Algoritmo que calcula la nota final de un alumno, tomando como datos su nota de presentación y la nota del examen, con ponderaciones de 60% y 40% respectivamente.

http://www.4shared.com/file/UCl6xDv-/Clculo_NF.html

Algoritmo Caja que da Vuelto

Algoritmo mejorado de la caja, donde se calcula el vuelto a dar.

http://www.4shared.com/file/dzL8be2O/Caja_que_da_Vuelto.html