miércoles, 7 de noviembre de 2012

VARIABLES

En informatica , una variable es un lugar de almacenamiento y un identificador que trae   cierta cantidad conocida o desconocida  de alguna  información, un  valor .  La variable es la manera mas usual  de generar referencia  a un valor  almacenado, En el codigo fuente puede  ser unido  a un valor durante el momento de la ejecucion , y por lo tanto el valor de la variable puede cambiar durante el curso de la ejecucion de programas. .Variables en la programación no puede corresponder directamente con el concepto de variables matematicas.

.

CLASIFICACION DE ALGORITMOS

1.-Ordenamiento Burbuja 

El ordenamiento burbuja  es el algoritmo más facil ya que es conceptual  para iniciar. Consiste en repetir a través de una lista, comparando los elementos  de a  dos en dos. Si un elemento es mayor que el que está en la siguiente posición se intercambian. A continuacion las ventajas y desventajas:

Ventajas: 
·  Una implementación elemental. 
· No necesita otra memoria.
 
Desventajas: 
· Muy pausado . 
· Realiza numerosas comparaciones. 
· Realiza numerosos intercambios. 





2.-Ordenamiento por Selección

 Este algoritmo es algo sencillo ya que busca el componente mas pequeño de la lista

· Lo intercambias con el elemento ubicado en la primera posición de la lista. 
· Buscas el segundo elemento más pequeño de la lista. 
· Lo intercambias con el elemento que ocupa la segunda posición en la lista. 
· Repites este proceso hasta que hayas ordenado toda la lista. 


Ventajas: 
· Fácil implementación. 
· No requiere memoria adicional. 
· Realiza pocos intercambios. 
· Rendimiento constante: poca diferencia entre el peor y el mejor caso. 


Desventajas: 
· Lento. 
· Realiza numerosas comparaciones. 




3.-Ordenamiento por Inserción

En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a la vez. Cada elemento es INSERTADO en la posición apropiada con respecto al resto de los elementos ya ordenados.

Ventajas: 
· Fácil implementación. 
· Requerimientos mínimos de memoria. 
Desventajas: 
· Lento. 
· Realiza numerosas comparaciones. 
Este también es un algoritmo lento, pero puede ser de utilidad para listas que están ordenadas o semiordenadas, porque en ese caso realiza muy pocos desplazamientos. 

4.-Ordenamiento Rápido (Quicksort)

Esta es probablemente la técnica más rápida conocida.  El algoritmo fundamental es el siguiente: 
· Eliges un elemento de la lista. 
· Buscas la posición que le corresponde en la lista ordenada.
· Acomodas los elementos de la lista a cada lado del elemento de división, de manera que a un lado queden todos los menores que él y al otro los mayores . En este momento el elemento de división separa la lista en dos sublistas. 
· Realizas esto de forma recursiva para cada sublista mientras éstas tengan un largo mayor que 1. Una vez terminado este proceso todos los elementos estarán ordenados. 
Una idea preliminar para ubicar el elemento de división en su posición final sería contar la cantidad de elementos menores y colocarlo un lugar más arriba. Pero luego habría que mover todos estos elementos a la izquierda del elemento, para que se cumpla la condición y pueda aplicarse la recursividad. Reflexionando un poco más se obtiene un procedimiento mucho más efectivo. Se utilizan dos índices: i, al que llamaremos contador por la izquierda, y j, al que llamaremos contador por la derecha. El algoritmo es éste: 
· Recorres la lista simultáneamente con i y j: por la izquierda con i (desde el primer elemento), y por la derecha con j (desde el último elemento). 
· Cuando lista sea mayor que el elemento de división y lista[j] sea menor los intercambias. 
· Repites esto hasta que se crucen los índices. 
· El punto en que se cruzan los índices es la posición adecuada para colocar el elemento de división, porque sabemos que a un lado los elementos son todos menores y al otro son todos mayores (o habrían sido intercambiados). 
Al finalizar este procedimiento el elemento de división queda en una posición en que todos los elementos a su izquierda son menores que él, y los que están a su derecha son mayores. 
Ventajas: 
· Muy rápido 
· No requiere memoria adicional. 
Desventajas: 
· Implementación un poco más complicada. 
· Recursividad (utiliza muchos recursos). 
· Mucha diferencia entre el peor y el mejor caso. 



PRUEBA DE ESCRITORIO

Consiste en  dar valores a las variables que hemos definido y que siguen  el flujo del programa para comprobar  si al final el resultado es el acertado. 

Por ejemplo: 
- No ingresar un dato  de nacimiento que sea mayor que la fecha actual.
- No ingresar un número negativo donde deber ir uno positivo o sin decimales;
- No ingresar un valor numérico donde solo debe ir texto;
- No ingresar un valor fuera del rango establecido;
etc.,

En casos de generar algun  error, el programa tendra que  enviar al usuario  un mensaje indicándole esto y dándole la oportunidad de corregir.

En los casos en que deba ingresar una clave de acceso, no se debe permitir que la ingrese más de 3 veces. En este caso se supone que no es la persona autorizada y el programa no debe permitirle seguir "probando" y normalmente lo cerramos sin más (luego de ponerle un cartelito en donde le indicamos de tal circunstancia).

Una vez todo haya funcionado bien en el papel, entonces ya podemos escribir el pseudocódigo siguiendo el diagrama de flujo.

Esta prueba es para no perder tiempo escribiendo el programa y luego tener que buscar EN DONDE está el error y como debemos corregirlo.

También sirve para optimizar un algoritmo viendo como podemos llegar a un determinado resultado con menos pasos.

IMPORTANTE: Casi siempre pasa que NUNCA el programa va a funcionar correctamente la primera vez. SIEMPRE deberemos hacerle ajustes y correcciones. Y eso es parte de la garantía que damos cuando diseñamos un Sistema a medida.

NO OLVIDAR que el programa deber ser lo más intuitivo posible y tener, en algunos casos, carteles de ayuda cuando presione la tecla programada (generalmente la F1 como cualquier programa comercial). Para salir utilizar la tecla ESC (como en cualquier...)
Esto hace a la profesionalidad del sistema. 

"tomado de yahoo.com 


A continuacion algunos ejemplos: 






LOS ALGORITMOS


Los  algoritmos  son un conjunto  de  pasos bien definidas,que van de una manera ordenada y especifica  que nos permite realizar una o mas  actividades por medio de ciertos pasos  que al momento de analizar  no generan dudas a quien ejecutara los pasos de este. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. En nuestra vida cotidiana estamos realizando algoritmos en todo momento para resolver problemas y realizar alguna actividad de una manera clara y ordenada.

Existen siete pasos fundamentales que debemos seguir al momento de ejecutar algun algoritmo como lo son:

1. El analisis del problema
2. Diseño del algoritmo
3.La codificacion
4.La ejecucion
5.La verificacion
6.La depuracion
7.La documentacion.

A continuacion, algunos elementos que aclararan dudas:


"Video subido desde youtube.com"