domingo, 14 de septiembre de 2014

Programación Java

PROGRAMACIÓN

¿Qué es programación?
En la actualidad, la noción de programación se encuentra muy asociada a la creación de aplicaciones informáticas y video juegos; es el proceso por el cual una persona desarrolla un programa valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, tales como C++, Java y Python) y de otra que sea capaz de “traducirlo” a lo que se conoce como lenguaje de máquina, el cual puede ser entendido por un microprocesador.
Este último paso se conoce como compilación y es necesario para que el código pueda ser ejecutado por la plataforma para la cual haya sido creado, que puede ser un ordenador, una tableta, una consola o un teléfono móvil, por ejemplo. Existe también una forma de traducir el código denominada interpretación, que consiste en analizar línea a línea, hasta que se traduzca lo suficiente como para poder realizar una tarea. Cabe mencionar que los lenguajes de programación se dividen en dos grandes grupos, donde los que pueden ser compilados no pueden ser interpretados, y viceversa.

Estructura secuencial

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra 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. 


En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma: 

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 constante 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).
Escritura o salida de datos 

Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable.

Lectura o entrada de datos 

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción.

Declaración de variables

La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es. Enteros, cadenas, carácter, por dar algunos ejemplos.

¿Qué es un algoritmo?

Podemos definir a un algoritmo de distintas maneras, aquí algunos ejemplos:

Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo más finito. [Donald E. Knuth, 1968].
Descripción de un esquema de comportamiento expresado mediante un repertorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomina léxico [Pierre Scholl, 1988].


Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004].

Las características fundamentales que debe cumplir todo algoritmo son:

  • Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.
  • Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.
  • Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.
  • Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.


  • Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.


    • Para la resolución de un problema, deben seguirse los siguientes pasos:
      Definición del Problema.
      El programador debe reconocer cuál es el problema, estableciendo con claridad cuáles son los datos disponibles y a qué resultados se desea llegar.
      Análisis del Problema.
      Es un estudio profundo del problema y de la situación que lo rodea. El programador deberá entenderlo por completo y proponer una solución para poder transformar los datos disponibles en resultados.
      Diseño del algoritmo.
      Se planea la estrategia que permitirá alcanzar la solución del problema.
      Programación (transformación del algoritmo en un programa).
      Consiste en traducir el algoritmo diseñado a un lenguaje de programación y aplicarlo en una computadora.
      Ejecución y validación del Programa (Pruebas).
      Verifican su funcionamiento para corregir posibles errores.
      Mantenimiento del Programa.
      El programador se encarga de modificar el programa según vayan apareciendo necesidades adicionales.

      Lenguaje de programación
      Un lenguaje de programación es un lenguaje artificial que puede ser usado para controlar el comportamiento de una máquina, especialmente una computadora. Estos se componen de un conjunto de reglas sintácticas y semánticas que permiten expresar instrucciones que luego serán interpretadas.
      El programador es el encargado de utilizar un lenguaje de programación para crear un conjunto de instrucciones que, al final, constituirá un programa o subprograma informático.

      En su uso, un lenguaje de programación puede acercarse a la forma humana de expresarse y, por eso, este tipo de lenguajes es llamado de alto nivel. Esto significa que utilizan palabras y formas en sus estructuras que se asemejan al lenguaje natural. En cambio, aquellos lenguajes que se aproximan más a la forma en la cual la computadora se maneja, son llamados lenguajes de bajo nivel. Esto significa que lo que el programador deba escribir se acercará al lenguaje máquina, que es, en definitiva, lo que las computadoras pueden interpretar. Los lenguajes de programación pueden clasificarse según el paradigma que usan en: procedimentales, orientados a objetos, funcionales, lógicos, híbridos, etc. Son ejemplos de lenguajes de programación: php, prolog, asp, actionscript, ada, python, pascal, c, basic, java, etc. 

      Condiciones
      If (Si)
      Permiten seguir un camino específico si se cumple una condición o conjunto de condiciones. Si al evaluar la condición o condiciones el resultado es true, entonces se ejecutas ciertas operaciónes. Luego se continúa con la secuencia normal del algoritmo o programa.
      If-Else (Si-Sino)
      Permiten tomar dos vías diferentes. Si al evaluar la condición (o condiciones) el resultado es true entonces se sigue por un camino específico y se ejecutan ciertas operaciones. Por otra parte, si el resultado es false entonces se sigue por otro camino y se ejecutan otras operaciones.
      Switch-Case (En caso de)
      Permite tomar por varias vías diferentes. Esto en función del valor que tome la variable. Así si la variable toma el valor 1 se realizara la operación 1, si el selector toma el valor N se realizara la operación N, y si toma un valor distinto de los valores comprendidos entre 1 y N, el algoritmo o programa continuara ejecutando otras operaciones.


      Operadores lógicos y de comparación
      Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true del tipo básico boolean, en cambio, 8<4 (ocho menor que cuatro) es falsa, false. En la primera columna de la tabla, se dan los símbolos de los operadores relacionales, el la segunda, el nombre de dichos operadores, y a continuación su significado mediante un ejemplo.

      Operador
      nombre
      ejemplo
      significado
      < 
      menor que
      a<b
      a es menor que b
      > 
      mayor que
      a>b
      a es mayor que b
      ==
      igual a
      a==b
      a es igual a b
      !=
      no igual a
      a!=b
      a no es igual a b
      <=
      menor que o igual a
      a<=5
      a es menor que o igual a b
      >=
      mayor que o igual a
      a>=b
      a es menor que o igual a b

      Los operadores lógicos producen un resultado boolean, y sus operandos son también valores lógicos o asimilables a ellos (los valores numéricos son asimilados a true o false según su valor sea cero o distinto de cero). Por contra, recuerde que las operaciones entre bits producen valores arbitrarios.
      Los operadores lógicos son tres; dos de ellos son binarios, el último (negación) es unario.

      El operador lógico AND &&
      También denominado por su nombre en inglés (generalmente en mayúsculas) AND lógico. Devuelve un valor lógico true si ambos operandos son ciertos. En caso contrario el resultado es false.

      x
      y
      resultado
      true
      true
      true
      true
      false
      false
      false
      true
      false
      false
      false
      false

      El operador lógico OR ||
      Este operador binario devuelve true si alguno de los operandos es cierto.  En caso contrario devuelve false.

      x
      y
      resultado
      true
      true
      true
      true
      false
      true
      false
      true
      true
      false
      false
      false

      El operador lógico NOT !
      Este operador es denominado también negación lógica y se representa en el texto escrito por la palabra inglesa NOT. En este caso al ser negación, si se ingresa un valor true devuelve un false y viceversa. 

      x
      resultado
      true
      false
      false
      true

      Ciclos
      For
      Un blucle for se repite hasta que una condición específica se evalúe como falsa. El bucle JavaScript for es similar a los bucles for en Java y C. Una sentencia forse parece a lo que sigue:
      for ([Expresióninicial]; [condición]; [incrementodelaExpresión]) {
         instrucciones
      }
      Cuando un blucle for se ejecuta, ocurre lo siguiente:La expresión iniciadora Expresióninicial, si hay una, es ejecutada. Esta expresión usualmente inicia uno o más contadores del bucle, pero la sintaxis permite una expresión de cualquier grado de complejidad. Esta expresión también declara variables.La expresión condición es evaluada. Sí el valor de la condición es verdadero, las sentencias del bucle se ejecutan. Sí el valor de la condición es falso, el bucle for termina. Sí la expresión condición es omitida por entero, la condición es asumida como verdadera.La expresión sentencia se ejecuta. Para ejecutar sentencias múltiples, utilice un bloque de sentencias ({ ... }) para agruparlas.
      La expresión de actualización incrementodelaExpresión, si hay alguna, se ejecuta y el control retorna al paso 2.

      Do...while
      La sentencia do...while repite sentencias hasta que una especificación condicionada se evalúe como falsa. Una sentencia do...while se parece a lo siguiente:
      Do {
         instrucciones
      } while (condición);
      La sentencia se ejecuta al menos una vez antes de que la condición sea verificada. Para múltiples sentencias, utilice un bloque de sentencias para agruparlas ({ ... }). Sí la condición es verdadera, la sentencia se ejecuta nuevamente. Al final de cada ejecución , la condición es verificada. Cuando la condición es falsa, la ejecución pasa el control a la siguiente sentencia después de do...while.

      While
      Una sentencia while ejecuta sus sentencias mientras una condición especificada sea evaluada como verdadera. Una sentencia while se parece a lo siguiente:
      while (condición) {
         instrucciones
      {
      Si la condición llega a ser falsa, la sentencia dentro del bucle para la ejecución y el control pasa a la sentencia siguiente luego del bucle.
      La condición de prueba ocurre antes que la sentencia en el bucle sea ejecutada. Si la condición retorna verdadero, la sentencia es ejecutada y la condición es probada nuevamente. Si la condición retorna falso, la ejecución se para y el control es pasado a la siguiente sentencia después del bucle while.
      Para ejecutar múltiples sentencias, utilice los bloques de sentencias ({ ... }) para agruparlas.

      Librerías
      Una biblioteca (library) es un conjunto de implementaciones funcionales, codificadas en un lenguaje de programación, que ofrece una interfaz bien definida para la funcionalidad que se invoca.
      A diferencia de un programa ejecutable, el comportamiento que implementa una biblioteca no espera ser utilizada de forma autónoma (un programa sí: tiene un punto de entrada principal), sino que su fin es ser utilizada por otros programas, independientes y de forma simultánea. Por otra parte, el comportamiento de una biblioteca no tiene porqué diferenciarse en demasía del que pudiera especificarse en un programa. Es más, unas bibliotecas pueden requerir de otras para funcionar, pues el comportamiento que definen refina, o altera, el comportamiento de la biblioteca original; o bien la hace disponible para otra tecnología o lenguaje de programación.
      En este caso java cuenta con una serie de librerías, si quieres saber más visite este link:


      Más información: