miércoles, 19 de noviembre de 2014

TEMA #4: ESTRUCTURAS DE CONTROL Y ESTRUCTURAS DE DATOS

ESTRUCTURAS DE CONTROL
Este término suena un poco extraño, ¿cierto? Pues, lo voy a explicar de este modo: las estructuras de control son una serie de líneas que nos permiten comprobar que se está cumpliendo una condición y también nos permiten realizar acciones repetitivas.

Por ejemplo, si tenemos un juego que pida tu nombre y si eres hombre o mujer, y quieres que dependiendo de eso muestre un personaje masculino o femenino, esto lo podemos hacer con las estructuras de control.

Descarga la aplicación de ejemplo (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu celular). Descargar App   

Otro ejemplo: si tenemos una aplicación que quieres que obtenga 10 números aleatorios entre 0 y 100, y quieres que los muestre en la pantalla, necesitarás conocer las estructuras de control para hacerlo.

Descarga la aplicación de ejemplo (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu celular). Descargar App   

En estos dos ejemplos que hemos mencionado se hace uso de las estructuras de control, sin embargo, se usan estructuras de control diferentes. Hay dos grupos de estructuras de control:
  • Estructuras de control condicionales.
  • Estructuras de control repetitivas (también llamados bucles).


Estructuras de Control Condicionales
Este grupo de estructuras nos van a permitir realizar una acción u otra siempre y cuando se cumpla con una condición. En nuestro primer ejemplo, al principio de este tema, al mostrar una u otra imagen dependiendo de si eliges hombre o mujer, ilustra el uso de las estructuras de control condicionales. En este grupo tenemos dos estructuras de control: if/else y switch. Las veremos a continuación.
  • if/else: veamos cómo se construye y un ejemplo.
Estructura
Notas
if (condición){
      acción a realizar;
} else {
      acción a realizar;
}
Para construir esta estructura de control debemos hacerlo tal cual como se muestra. Las palabras que están en cursiva las decidimos nosotros, dependiendo de lo que queramos en nuestra aplicación/juego.

Ejemplo
Notas
if (monedas == 0){
     terminarJuego = true;
} else {
     monedas -= 1;
}
Aquí tenemos una variable de tipo numérico: “monedas”; y otra variable de tipo boolean: “terminarJuego”. Lo que hace esta estructura de control es: si (if) monedas es igual a cero, el juego termina, de otra forma (else), se le resta 1 a monedas. Nota la utilización de los operadores relacionales para colocar la condición.

Descarga un ejemplo de código en el que se utiliza esta estructura de control (Idioma Español). Descargar Código   

Descarga la aplicación de ejemplo “if_else” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu celular). Descargar App  

  • switch: permite un control condicional múltiple. Veamos cómo se construye y un ejemplo.
Estructura
Notas
switch (variable){
     case valor1:
          acción a realizar;
          break;
     case valor2:
          acción a realizar;
          break;
     case valorX:
          acción a realizar;
          break;
     default:
          acción a realizar;
          break;
}
Para construir esta estructura de control debemos hacerlo tal cual como se muestra. Las palabras que están en cursiva las decidimos nosotros, dependiendo de lo que queramos en nuestra aplicación/juego. La variable puede ser numérica o de otro tipo. valor1, valor2 y valorX son los distintos valores que puede tomar la variable. Siempre es necesario colocar “break;” porque si no ocurrirá un error. En el caso de que no se cumpla con alguna de las condiciones colocadas (case), ocurre la acción colocada en default. Podemos colocar cuantos “case” queramos.

Ejemplo
Notas
switch (lugar){
     case 1:
          premio = 100;
          break;
     case 2:
          premio = 50;
          break;
     case 3:
          premio = 20;
          break;
     default:
          premio = 0;
          break;
}
Imaginemos un juego de carrera de motos donde debemos competir con otros y ganar dinero para comprar piezas para la moto. Aquí tenemos dos variables de tipo numérico: “lugar” y “premio”. Lo que hace esta estructura de control es: si el jugador llegó de 1er lugar el premio es 100$, si llegó de 2do lugar el premio es 50$, si llegó de 3er lugar el premio es 20$; si no llegó de 1ro, 2do o 3ro, se cumple la acción colocada en default (el premio es 0$).

Descarga un ejemplo de código en el que se utiliza esta estructura de control (Idioma Español). Descargar Código   
Descarga la aplicación de ejemplo “switch” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu celular). Descargar App   

Estructuras de Control Repetitivas (Bucles)
Este grupo de estructuras nos van a permitir realizar una acción una y otra vez. Algo interesante es que las estructuras de control repetitivas también dependen de una condición; es decir, la acción se repetirá una y otra vez siempre y cuando se siga cumpliendo la condición impuesta. En nuestro segundo ejemplo, al principio de este tema, al obtener una y otra vez un número aleatorio estamos haciendo uso de las estructuras de control repetitivas, y la condición sería que se obtendrán números aleatorios hasta que ya se tengan 10 números. En este grupo tenemos tres estructuras de control: for, while y do/while. Las veremos a continuación.

  • for: es el más simple. Veremos cómo se construye y un ejemplo.
Estructura
Notas
for (contador ; condición ; incremento){
     acción a realizar;
}
Lo que hace es repetir la acción mientras se cumpla la condición. El contador es el que lleva la cuenta. La condición se coloca igual que se hizo en if (con operadores relacionales). El incremento es cuánto se le va a sumar al contador cada vez que se cumpla la acción a realizar.

Ejemplo
Notas
for (int cuenta = 1; cuenta <= 10; cuenta++){
     numero += cuenta;
}
Aquí tenemos una variable numérica de tipo int (el tipo int es el más comúnmente usado): “valor”. Lo que hace esta estructura de control es: le suma el valor de “cuenta” a “numero” con cada vuelta; esto se hará mientras se cumpla la condición. Con cada vuelta se incrementa el valor de cuenta en una unidad (cuenta++). Cuando cuenta sea igual a 10 se detendrá el bucle.

Descarga un ejemplo de código en el que se utiliza esta estructura de control (Idioma Español). Descargar Código   
Descarga la aplicación de ejemplo “for” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu celular). Descargar App   

  • while:
Estructura
Notas
while (condición){
     acción a realizar;
}
Repite una acción mientras se cumpla la condición.

Estructura
Notas
while (cuenta < 100){
     cuenta++;
}
Tenemos una variable de tipo numérico: “cuenta”. Lo que hace este bucle es: aumenta el valor de cuenta en una unidad con cada vuelta (acción), mientras cuenta sea menor a 100 (condición).

Descarga un ejemplo de código en el que se utiliza esta estructura de control (Idioma Español). Descargar Código   
Descarga la aplicación de ejemplo “while” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu celular). Descargar App   

  • do/while:
Estructura
Notas
do {
     acción a realizar;
} while (condición);
Es similar a while con la diferencia de que la acción siempre se ejecutará al menos una vez, y esto es debido a que primero realiza la acción y después comprueba si se cumple la condición.

Estructura
Notas
do {
     cuenta++;
} while (cuenta < 100);
Tomando la variable “cuenta” del ejemplo anterior, lo que hace este bucle es: aumenta el valor de la variable en una unidad y después comprueba si cuenta es menor a 100. Si por ejemplo, el valor inicial de cuenta es 200, el bucle le sumará una unidad a cuenta antes de darse cuenta de que la condición  no se cumple.

Descarga un ejemplo de código en el que se utiliza esta estructura de control (Idioma Español). Descargar Código
Descarga la aplicación de ejemplo “do_while” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu celular). Descargar App  



ESTRUCTURAS DE DATOS
Aquí en estructura de datos lo que vamos a ver son dos elementos: El String y los arrays.

String
Un String es un elemento de Java que nos permite almacenar una cadena de caracteres (secuencia de letras), por ejemplo, “Hola, me llamo Arán”. Algo que siempre debemos tener en cuenta es que las cadenas de caracteres van encerradas entre comillas (“”).
Para crear una variable de tipo String se hace como vimos en el capítulo de variables:
  • Primero se coloca el tipo de variable, en este caso será String.
  •  Luego se coloca el nombre de la variable, en este caso la llamaremos texto.

Tenemos entonces nuestra variable: String texto, y podemos asignarle un valor a través del operador “=”: String texto = “Hola, me llamo Arán”;. También podemos asignarle el valor de una variable de tipo String a otra del mismo tipo: String cadena = texto;, en este ejemplo, el valor de la variable “cadena” será “Hola, me llamo Arán”. También es posible usar el operador “+” para hacer una cadena de caracteres a partir del valor de diversas variables de tipo String, o variables String y numéricas; veamos cómo:

Variables
Ejemplo
Significado
String texto1 = “Hola,”;
String cadena = texto1 + texto2 + texto3 + texto4;
cadena = “Hola, me llamo Arán”;
String texto2 = “ me”;
String texto3 = “ llamo”;
String cadena = texto4 + texto2 + texto6 + texto3;
cadena = “ Arán me años llamo”;
String texto4 = “ Arán”;
String texto5 = “ y tengo ”;
String cadena = texto1 + texto2 + texto3 + texto4 + texto5 + edad + texto6;
cadena = “Hola, me llamo Arán y tengo 20 años”;
int edad = 20;
String texto6 = “ años.”;

Nota: Algo importante que debes notar es que al principio de las cadenas hay un espacio en blanco (un espacio), esto es para que cuando se peguen las cadenas las palabras queden separadas. Si no hubiera puesto los espacios en  blanco el resultado de cadena en el primer ejemplo sería “Hola,mellamoArán”. Debes notar también que al final de texto6 hay un espacio en blanco, el cual es para que la edad quede separada y no pegada. Si no hubiera puesto ese espacio en blanco al final del texto6 el resultado de cadena en el tercer ejemplo sería cadena = “Hola, me llamo Arán y tengo20 años”.


Arrays

Un array es como una caja que contiene elementos de un mismo tipo y que tienen un mismo nombre. Pero, te preguntarás ¿cómo es esto?, porque en el capítulo de variables vimos que no pueden haber dos o más variables con el mismo nombre, pues es sencillo, y lo explicaremos con un ejemplo gráfico.


En este ejemplo vemos que dentro de la caja hay varios elementos, los cuales son variables. Estas variables tienen el mismo nombre que la caja pero se enumeran usando corchetes ([]). Veamos el siguiente ejemplo.


En este ejemplo tenemos un array de tipo numérico. ¿Cómo sabemos que es un array?, pues los arrays se definen igual que una variable normal (tipo y nombre), pero con la diferencia de que inmediatamente después del tipo se colocan unos corchetes ([]). Pero, ¿para qué son estos corchetes?, bueno, los corchetes nos van a permitir determinar cuántos elementos tendrá la caja dentro y nos va a permitir hacer referencia a cada uno de esos elementos, como vemos en el ejemplo (aNum[0], aNum[1],...).

Veamos un ejemplo real en programación:

Ejemplo
Notas
int[] datos;
En la primera línea vemos cómo se define un array, en este caso de tipo numérico. Vemos el tipo: int; y el nombre: datos.
En la segunda línea vemos el array y cómo se determina cuántos elementos contendrá, en este caso, 10.
Podemos definir el array y de una vez determinar cuántos elementos contendrá, como se muestra en la tercera línea.
int[] datos = new int[10];
int[] datos;
datos = new int[10];

Para hacer referencia a un elemento específico dentro del array lo especificamos con un número dentro de corchetes; por ejemplo, si tenemos un array de 2 elementos y queremos colocar que el valor del primer elemento sea 1000, lo hacemos así:
Ejemplo
Notas
int[] puntos = new int[2];
puntos[0] = 1000;
Vemos en la segunda línea que para acceder a una variable específica usamos los corchetes. También es importante destacar que si tenemos un array de 2 elementos, los elementos serán [0] y [1]; si tenemos un array de 1000 elementos, los elementos serán [0],..., [999]. Siempre se comienza con el cero.

Haz clic aquí para descargar un ejemplo de código en el que se utilizan los arrays (Idioma Español). Descargar Código   
Descarga la aplicación de ejemplo “arrays” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu celular). Descargar App   

Nota: al crear un array, éste puede ser de cualquier tipo. En este caso vimos un ejemplo con arrays numéricos, sin embargo, los arrays pueden ser de tipo String (String[]), boolean (boolean[]), de tipo InputStream (InputStream[]), de otro tipo numérico (short[], long[], float[], double[]); siempre que se le coloquen los corchetes ([]), luego del tipo de variable, será un array.

No hay comentarios.:

Publicar un comentario