Mostrando entradas con la etiqueta Conceptos básicos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Conceptos básicos. Mostrar todas las entradas

viernes, 7 de febrero de 2014

Estructuras de control (y II)

Estructuras de control

Estructuras de repetición o iterativas.
Las estructuras de repetición o iterativas son utilizadas cuando una o más sentencias deben ser repetidas 0, 1 o “n” veces.

¡OJO!
Ten cuidado con los bucles infinitos (son aquellos en los que la condición para salir del bucle nunca se cumple). En caso de producirse un bucle infinito el programa se seguirá ejecutando y se quedará “colgado” hasta que el usuario mate el proceso.

While
Cuando usamos el bucle while la condición se comprueba al principio del bucle, por lo que las sentencias que se encuentren dentro de él pueden ser ejecutadas entre 0 y “n” veces.
Las instrucciones se repetiran mientras se cumpla la condición dada en el while.
La ejecución de un bucle while sigue esta estructura:
  1. Evalúa si la condición es cierta o no.
  2. En caso de que sea “false” no se ejecutan las instrucciones de su interior y el programa sigue omitiendo la parte interior del while.
  3. En caso de que la condición sea “true” se ejecutan las instrucciones que contiene el while y se vuelve al paso 1.

Do While
En este caso, a diferencia del while, la condición se comprueba al final del bucle, por lo que las sentencias se ejecutan al menos una vez.
La ejecución de un bucle Do While sigue la siguiente estructura:
  1. Se ejecutan las instrucciones contenidas en el Do.
  2. Se evalúa si la condición es cierta o no.
  3. Si el resultado resulta ser “false” se ejecutan las instrucciones que continúan a partir de la condición del while.
  4. En caso de que el resultado sea “true” se vuelve al paso 1.

For
El bucle for se utiliza cuando es necesario repetir las instrucciones un número fijo y conocido de veces. Las instrucciones se repetirán mientras se cumpla la condición marcada.
La estructura de un bucle for en Java es la siguiente:
    for(inicialización; condicion; incremento/decremento){
        instrucción 1;
        …..
        instrucción n;
    }

Después del for, entre paréntesis, debe haber siempre 3 partes separadas por punto y coma:
  1. Inicialización: Es la parte en la que la variable o variables de control toman el valor inicial. Puede haber una o más instrucciones en la inicialización separadas por comas. Solo se inicializa una vez.
  2. Condición: Es una expresión booleana que hace que se ejecuten o no las sentencias que están dentro del for. Mientras sea “true” se ejecutarán, cuando sea “false” se saldrá del bucle. Generalmente en la condición se compara la variable de control con un valor límite.
  3. Incremento/decremento: Es una expresión que incrementa o decrementa la variable de control del bucle.

La ejecución de un bucle for sigue la siguiente estructura:
  1. Se inicializa la variable o variables de control (inicialización).
  2. Se evalúa la condición.
  3. Si el resultado resulta ser “false” se ejecutan las instrucciones que continúan a partir de la condición del for.
  4. Si la condición es “true” se ejecutan las sentencias contenidas en el for.
  5. Se actualiza la variable o variables de control.
  6. De vuelta al punto 2.

miércoles, 5 de febrero de 2014

Estructuras de control en Java (I)

Estructuras de control en Java

En java tenemos distintas estructuras para controlar el flujo del programa, esto es, los distintos caminos que va tomando la ejecución de las sentencias y como lo hace.

Secuencial.
Es la forma normal en la que se ejecuta un programa. Las instrucciones se ejecutan una tras otra, sin saltos ni repeticiones.
Cada instrucción está separada de las demás por un “;” al final de la línea.

Condicional, alternativa o selectiva.

IF
En java hay tres tipos de estructuras if
  1. IF
Esta es una estructura de control condicional, esto quiere decir que en el caso de que se cumpla la condición que se le ha dado, en caso de que sea “true” se ejecutará el código que hay tras el IF.

  1. IF ELSE
Esta estructura de control es alternativa, esto quiere decir que si se cumple la condición marcada ejecutará el código tras el IF y si no se cumple ejecutara el que esté tras el ELSE.

  1. IF ELSE IF ELSE
Por último, el IF ELSE IF ELSE es una estructura selectiva. Consiste en anidar varios IF ELSE uno dentro de otro, así dentro del ELSE colocaremos un IF, por lo que podremos jugar con muchas opciones para que se ejecute uno u otro código.


SWITCH
Cuando una expresión puede tener varios valores y dependiendo del valor que tome se debe ejecutar un código u otro hay 2 formas de resolver el problema. Se puede hacer anidando IF ELSE hasta que hayamos cubierto todas las opciones o se puede utilizar SWITCH. El uso del SWITCH deja un código limpio y fácil de interpretar.

lunes, 3 de febrero de 2014

Puertas lógicas correspondientes a los operadores lógicos de Java

Puertas lógicas correspondientes a los operadores lógicos de JAVA

Cada operador lógico en Java tiene su correspondiente puerta lógica. Las puertas lógicas son dispositivos electrónicos que ofrecen resultados basados en la lógica booleana. Vamos a ver qué puertas lógicas utilizan nuestros operadores lógicos.

AND
En el caso de la puerta AND, solo tendremos una señal de salida (S) si se activan todas las señales de entrada (A, B). Esta puerta correspondería al producto lógico A·B=S y tiene el siguiente esquema y símbolos:
Y su correspondiente tabla de la verdad es:

A
B
S
0
0
0
0
1
0
1
0
0
1
1
1





OR
En la puerta OR, tendremos una señal de salida (S) siempre que se active alguna de las señales de entrada (A, B). Esta puerta correspondería a la suma lógica A+B=S y tiene el siguiente esquema y símbolos:
Y su correspondiente tabla de la verdad es:

A
B
S
0
0
0
0
1
1
1
0
1
1
1
1




NOT
Con esta puerta lógica sólo obtendremos una señal a la salida si no tenemos señal a la entrada. Esta puerta equivale a la negación o inversión S=A´ y tiene el siguiente esquema y símbolos.
Y su correspondiente tabla de la verdad es:

A
S
0
1
1
0

viernes, 31 de enero de 2014

Comentarios en Java (y II)

Comentarios en JAVA


Ya conocemos dos tipos de comentarios ¿Acaso hay mas?

Pues la respuesta es "true", en Java existe un tercer tipo de comentario llamados comentarios Javadoc.
Estos comentarios tienen la característica especial de que sirven para crear la documentación del programa con solo escribirlos. Esta documentación se crea con una utilidad llamada Javadoc del Kit de desarrollo de Java SE y se nos presenta en formato HTML.


¿y como los uso?

Un comentario Javadoc se escribirá igual que un comentario multilinea, con la diferencia de que no comenzará con /*, sino con /**.
Los comentarios Javadoc tienen 2 partes bien diferenciadas:
  1. Descripción: Donde se aporta la descripción y datos importantes que facilitan la comprensión del elemento comentado.
  2. Indicación: En la segunda parte del comentario se utiliza el indicador @ con ciertas palabras clave para que el programa, a la hora de realizar la documentación, sepa correctamente que estamos describiendo.
Normalmente se coloca un comentario Javadoc al inicio del programa en el que se describe que es lo que hará el mismo, la versión de la aplicación y el autor.
Este comentario quedaría así:

/**
 * Aquí iría una descripción sobre que va a hacer nuestro programa.
 * Podemos seguir la descripción en esta linea.
 * @version 1.0, 31/01/14
 * @author Sonando Java
 */

Las palabras reservadas para los indicadores son:
  • @author nombreDelAutor descripción --> Indica quién escribió el código al que se refiere el comentario. Si son varias personas se escriben los nombres separados por comas o se repite el indicador, según se prefiera. Es normal incluir este indicador en el comentario de la clase y no repetirlo para cada método, a no ser que algún método haya sido escrito por otra persona.
  • @version númeroVersión descripción --> Si se quiere indicar la versión. Normalmente se usa para clases, pero en ocasiones también para métodos.
  • @param nombreParámetro descripción --> Para describir un parámetro de un método.
  • @return descripción --> Describe el valor de salida de un método.
  • @see nombre descripción --> Cuando el trozo de código comentado se encuentra relacionada con otra clase o método, cuyo nombre se indica en nombre.
  • @throws nombreClaseExcepción descripción --> Cuando un método puede lanzar una excepción ("romperse" si se da alguna circunstancia) se indica así.
  • @deprecated descripción --> Indica que el método (es más raro encontrarlos para una clase) ya no se usa y se ha sustituido por otro.

jueves, 30 de enero de 2014

Operadores aritméticos en Java

Operadores aritméticos en JAVA

Java cuenta con 5 operadores aritméticos tanto para números enteros como en coma flotante. Estos son:


miércoles, 29 de enero de 2014

Tipos de datos simples en Java

Tipos de datos simples

Los tipos de datos generalmente se utilizan al declarar las variables y sirven para decirle al compilador o al intérprete, de antemano, el tipo de dato que se guardará en la variable.
Los tipos de datos simples en Java son:
Tipo de dato
Información representada
Rango
Descripción
byte
Datos enteros
-128 ←→ +127
Se utilizan 8 bits (1 byte) para almacenar el dato.
short
Datos enteros
-32768 ←→ +32767
Dato de 16 bits de longitud (independientemente de la plataforma).
int
Datos enteros
-2147483648 ←→ +2147483647
Dato de 32 bits de longitud (independientemente de la plataforma).
long
Datos enteros
-9223372036854775808 ←→ +9223372036854775807
Dato de 64 bits de longitud (independientemente de la plataforma).
char
Datos enteros y caracteres
0 ←→ 65535
Este rango es para representar números en Unicode, los ASCII se representan con valores del 0 al 127.*
float
Datos con coma flotante de 32 bits
Precisión aproximada de 7 dígitos
Dato en coma flotante de 32 bits en formato IEEE 754 (1 bit de signo, 8 para el exponente y 24 para la mantisa).
double
Datos con coma flotante de 64 bits
Precisión aproximada de 16 dígitos
Dato en coma flotante de 64 bits en formato IEEE 754 (1 bit de signo, 11 para el exponente y 52 para la mantisa).
boolean
Valores booleanos
true/false
Utilizado para evaluar si el resultado de una expresión booleana es verdadero (true) o falso (false).

* ASCII es un subconjunto de caracteres Unicode.

sábado, 20 de octubre de 2012

Tipos de lenguajes de programación (Cercanía a lenguaje máquina)

Tipos de lenguajes de programación según su cercanía al lenguaje máquina.

El ordenador solo entiende un lenguaje, el lenguaje máquina, formado por 1 (si hay un pulso de corriente) o 0 (si no lo hay).
El programar así es una tarea demasiado pesada, demasiado larga y demasiado tediosa como para que sea el lenguaje habitual en el que se programa, por lo que aparecieron posteriormente los distintos tipos de lenguajes que paso a explicar.


Lenguajes de bajo nivel 

Dentro de este grupo se encuentran: 
  • El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento. Cnsiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina.
    Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
    La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente enormes donde encontrar un fallo es casi imposible.
  • El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes eran más cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prácticamente las mismas que las del lenguaje ensamblador, añadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de probar y mantener.

Lenguajes de alto nivel 

Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina. 
Están dirigidos a solucionar problemas mediante el uso de EDD's (Estructuras Dinámicas de Datos). 


Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema. 


Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que están diseñando el programa. Tan solo necesitan un traductor que entiendan el código fuente como las características de la maquina. 

Suelen usar tipos de datos para la programación y hay lenguajes de propósito general (cualquier tipo de aplicación) y de propósito especifico (como FORTRAN para trabajos científicos). 

Lenguajes de Medio nivel 

Se trata de un termino no aceptado por todos, pero q seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel. 

viernes, 19 de octubre de 2012

Comentarios en Java (I)

Comentarios en JAVA


Vamos a ver algo básico, básico, básico de JAVA (y de cualquier otro lenguaje de programación) como son los comentarios.


Resumen de Clases y Objetos en Java

Objetos y clases


Bien, empecemos por el principio, vamos a ver, de la manera más simple que me sea posible, lo que es un objeto y lo que es una clase:

  • Clase: Una clase define de que tipo es un objeto. Dependiendo de la clase a la que pertenezca recibirá un tratamiento, dispondrá de una serie de capacidades y tendrá una serie atributos propios.
    Por ejemplo:
    Bolígrafo sería una clase (un modelo) que definiría que características tendrían todos los objetos pertenecientes a esa clase (por ejemplo, todos los objetos pertenecientes a la clase Bolígrafo tendrían la capacidad de escribir).

  • Objeto: Un objeto se crea a partir de una Clase y representan casos individuales dentro de una Clase. La Clase define la categoría del objeto.
    Por ejemplo:
    BoliBic sería en este caso un Objeto de la Clase Bolígrafo. Un BoliBic comparte las características de la todo boligrafo pero esas características toman valores unicos que lo hacen ser lo que es.

  • Podríamos por tanto resumir que un objeto es un caso concreto de una clase, y que de esta toma sus características esenciales.