martes, 4 de agosto de 2009

CONCEPTOS DE ALGORITMOS Y PROGRAMAS

ALGORITMO:

En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución.

Caracteristicas de un algoritmo:

Las caracteristicas fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realizacion de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en alg�n momento; o sea, debe tener un numero finito de pasos.
La definicion de un algoritmo debe definir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendra:
Entrada: ingrediente y utensilios empleados.
Proceso: elaboracion de la receta en la cocina.
Salida: terminacion del plato (por ejemplo, cordero).
Ejemplo de Algoritmo:
Un cliente ejecuta un pedido a una fabrica. Esta examina en su banco de datos la ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario rechazara el pedido.

PSEUDOCODIGO:


Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un código al que aunque es entendible no se aplica al proceso que debe realizar la máquina.

LENGUAJE DE PROGRAMACION:
Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Es utilizado para controlar el comportamiento físico y lógico de una máquina.

LENGUAJE DE MAQUINA:
Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación.

LENGUAJE DE BAJO NIVEL:

Un lenguaje de programación de bajo nivel es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.

La palabra "bajo" no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la reducida abstracción entre el lenguaje y el hardware.

LENGUAJE DE MEDIO NIVEL:
Lenguaje de medio nivel es un lenguaje de programación informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel.

Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.

LENGUAJE DE ALTO NIVEL:
Los lenguajes de programación de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.

En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales.

Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera más fácil y rápida.

INTERPRETES Y COMPILADORES:
Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel: Compilador e intérprete.
Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel:

Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su acción equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en otra lengua.
Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:
Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces).
Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.

LA COMPILACION Y SUS FASES:

Existen diversas fases de compilación o también llamadas etapas de la compilación

El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador tiene los siguientes pasos:

1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una máquina de escribir electrónica) y guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco).

2. Introducir el programa fuente en memoria.

3. Compilar el programa con el compilador.

4. Verficar y corregir errores de compilación (listado de errores).

5. Obtención del programa objeto.

6. El enlazador (linker) obtiene el programa ejecutable.

7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa.

DATOS:
Concepto propio de la informática, más específicamente de los lenguajes de programación, aunque también se encuentra relacionado con nociones similares de las matemáticas y la lógica.

En lenguajes de programación un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o el programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar. Tipos de datos comunes son: enteros, números de coma flotante (decimales), cadenas alfanuméricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra. Por ejemplo, en Java, el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, así como las operaciones que se pueden realizar con los enteros, como la suma, resta y multiplicación. Los colores, por otra parte, se representan como tres bytes denotando la cantidad de rojo, verde y azul, y una cadena de caracteres representando el nombre del color; las operaciones permitidas incluyen la adición y sustracción, pero no la multiplicación.

CONSTANTE:

En general, una constante es un valor de tipo permanente, que no puede modificarse, al menos no dentro del contexto o situación para el cual está previsto. Suele relacionarse y usarse en combinación con las variables, que si admiten modificación en sus valores.

VARIABLE:

Una variable es un elemento de una fórmula, proposición o algoritmo que puede adquirir o ser sustituido por un valor cualquiera (siempre dentro de su universo). Los valores que una variable es capaz de recibir, pueden estar definidos dentro de un rango, y/o estar limitados por criterios o condiciones de pertenencia, al universo que les corresponde (en estos casos, el universo de la variable pasa a ser un subconjunto de un universo mayor, el que tendría sin las restricciones).

viernes, 31 de julio de 2009

Un robot que limpia tu piscina!


Si alguna vez soñaste con tener tu propia piscina y luego lo lograste, lo primero que habrás notado luego de tenerla varios días, es que no sólo te divierte bastante, te relaja y da placer los días de intenso calor, sino que también requiere de muchísimo trabajo para mantenerla limpia. Pero los días de limpiar la piscina a “mano” han terminado gracias a este pequeño robot que flota y va recogiendo toda la basura que encuentra. Pero lo mejor no es sólo eso, es que utiliza energía solar para poder funcionar y mantener el agua limpia de hojas, insectos y otro tipo de cosas que suelen flotar.

Si bien parece ser un buen gadget, lo vale pues cuesta unos $500 dólares.