martes, 7 de abril de 2009

Algoritmos

Definición: Conjunto de pasos ordenados de forma lógica, secuencial y además finito que permite resolver un problema.


Estructura:
Algoritmo Nombre del algoritmo
Inicio
Pasos de la solución
Fin

Ejemplo: Escribir un algoritmo para preparar una torta.

Algoritmo Torta
Inicio
1.Buscar el libro de recetas.
2.Ubicar la pagina con la receta para preparar la torta.
3.Alistar todos los ingredientes necesarios.
4.Elegir el molde y untarle mantequilla, luego esparcir polvo royal o maicena.
5.Elaborar la mezcla siguiendo las instrucciones del libro de recetas.
6.Vaciar la mezcla en el molde.
7.Controlar el tiempo de horneado.
8.Apagar el horno, sacar el molde.
Fin

Lo que plantea la definición de algoritmo son actividades que diariamente realizamos para resolver problemas de nuestra vida diaria.

Siempre dirigimos nuestros actos de manera ordena y en ciertos casos de forma sistemática para cierto tipo de actividades.
El problema que se plantea es como hacemos para escribir todas estas acciones ya que lo hacemos inconscientemente.

Tal y como lo hemos visto, el algoritmo es el elemento fundamental en la solución de problemas con computadores.
El algoritmo no depende de la estructura de la maquina ni de ningún lenguaje de programación.
El proceso de llevar un algoritmo a un lenguaje de alto nivel se conoce como programación.
El algoritmo traducido en un lenguaje de alto nivel(lenguaje de programación) se conoce como programa.

Características

Preciso, tiene que indicar el orden de realización en cada paso.
Definido, si el algoritmo se prueba dos o mas veces siempre se debe obtener el mismo resultado.
Finito, el algoritmo debe tener un numero determinado de pasos.
Debe producir un resultado en un tiempo finito.

Preguntas para el planteamiento de un algoritmo.

Qué me piden?
Información de salida
Como lo hago?
Tipo de operaciones (matemáticas o lógicas)
Que me dan?
Entrada de datos

Para informacion sobre el desarrollo de la guia visita
pagina

sábado, 21 de febrero de 2009

Programacion Orientada a Objetos




La programación orientada a objetos es un paradigma de hoy, todos los lenguajes de programación de mayor uso se basan en este.

¿Pero en que se basa esta idea?

La respuesta está en su nombre… los objetos.

Uno de los problemas de la programación en el paradigma de programación estructurada (el que se usaba anteriormente) es que los algoritmos (secuencia de pasos ordenados que solucionan un problema) estaban fuertemente ligados a las estructuras del lenguaje.

Y aunque todavía eso ocurre, es mucho más fácil pensar en un sistema como un conjunto de objetos que se asocian entre sí a través de mensajes para lograr algo, ahora es importante tener en cuenta que un objeto en programación no es lo mismo que un objeto tal como lo conocemos (un elemento inanimado) sino que más bien es un elemento del cual se pueden percibir características que llamaremos atributos y que realizan acciones que conoceremos como métodos.

Ahora viene un ejemplo: el “carro”, es un objeto pues tiene características (atributos) como color, modelo, potencia, etc. Y tiene acciones (métodos) como acelerar, frenar.

Ahora ya tenemos tres elementos importantes por cada objeto que debemos clarificar.

Un nombre, el cual lo identifica y lo diferencia de otros objetos.

Un conjunto de atributos, que es información que diferencia un objeto de un mismo tipo de otro.

Un conjunto de métodos, que son acciones que pueden realizar dichos objetos, estas acciones serán iguales para todos los objetos del mismo tipo.

Ejemplo, el nombre “carro” permite identificar de qué estamos hablando y nos permite diferenciarlo de “moto” que representa otro objeto.

El atributo Color de “carro” me permite diferenciar dos carros.

La acción acelerar me permite realizar una acción que será la misma para todos los “carros”.

Más adelante trabajaremos mas conceptos sobre el paradigma de la programación orientada a objetos.

Pensamientos sobre la Programación




Hoy nos encontramos en un mundo donde la producción de software se he hecho más atractiva, ya no es tan difícil encontrar en cada hogar un computador en el que mucho más que solo escribir documentos se tiene la idea de buscar cada vez más y mejores elementos para instalar en los equipos de computo, como juegos, videos, música y otras cosas más con software para crear cosas o modificar elementos. Ahora es un sueño más común el poder tener el conocimiento para crear tan espectaculares cosas, y muchas veces se menosprecia el trabajo que se encuentra por debajo de todo eso.

Un simple curso de computación o de software pareciera ser suficiente para lograrlo, pero lo que muchos no se dan cuenta es que todo esto tiene un proceso ingenieril (no de ingeniero sino de ingenio) de mucha importancia y no solo se trata de colocar botones e imágenes.


Pienso que esto es lo menos importante y a veces hasta demasiado superficial, todo lo que creamos debe estar soportado por la búsqueda de mejorar nuestro mundo y mejorar algún proceso que se realiza de forma natural y hacerlo más eficiente.

Esto implica desarrollar habilidades de comunicación con los demás y habilidades para poner información valiosa en las manos de nuestros hermanos.

Sin tomar en cuenta que el gestionar y transformar información bruta en información útil implica cierto desarrollo de análisis, lo cual se puede entrenar con fundamentos matemáticos, lógicos y comunicativos, lo cual es algo en lo que estamos la mayoría de la veces poco dispuestos a trabajar.