Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MTODOS Y ESTRUCTURAS DE
DATOS
3.1 MTODOS
Los mtodos (procedimientos, funciones, subrutinas) nos permiten
encapsular un conjunto de instrucciones de manera que puedan ser ejecutadas desde
diferentes puntos de la aplicacin. Por ejemplo, puede resultar til crear un mtodo
que convierta de libras a kilos, de manera que, cada vez que se necesite realizar esta
conversin se pueda invocar al mtodo sin preocuparse de los detalles con los que
est implementado.
3.1.1 Sintaxis
JESS BOBADILLA SANCHO (JBOBI@EUI.UPM.ES) CAPTULO 3: MTODOS Y ESTRUCTURAS DE DATOS 59
Ejemplo:
3.1.2 Ejemplo 1
3.1.4 Ejemplo 2
3.2 STRINGS
Los Strings, tambin llamados literales o cadenas de caracteres, nos
permiten declarar, definir y operar con palabras y frases. Su utilizacin es muy
comn en los programas, de hecho, nosotros, de una forma implcita los hemos
usado en todos los ejemplos anteriores al escribir frases en consola por medio del
mtodo System.out.println(El String a imprimir); tambin declaramos una
estructura de datos basada en el String como parmetro del mtodo main.
Los Strings no forman parte de los tipos nativos de Java, sino que existe una
clase String (java.lang.String).
3.2.1 Sintaxis
ninguna estructura de datos; su valor es null. Esto es diferente a una instancia del
objeto String que apunta hacia un conjunto de caracteres vaco.
Ejemplo:
boolean Iguales = InstanciaDeString.equals(Greenpeace);
System.out.println(Iguales); verdadero
3.2.3 Resultado
14 System.out.println(Caracteres3Al8);
15
16 int NumPalabras=0, Posicion=0;
17
18 while(Posicion!=-1) {
19 Posicion = Frase.indexOf(" ",Posicion+1);
20 NumPalabras++;
21 }
22 System.out.println(NumPalabras);
23
24 }
25 }
3.2.5 Resultados
que declarar 1000 variable diferentes, insertar las notas con 1000 instrucciones
diferentes, etc.
3.3.1 Sintaxis
tipo[] Variable; // declara una matriz de variables del tipo indicado (ejemplo:
// float[] Notas;)
tipo Variable[]; // otra alternativa sintctica para declarar la misma matriz
// que la lnea anterior,
// en adelante utilizaremos nicamente la sintaxis de la primera lnea
Ejemplos:
float[] TemperaturasMadrid = {3.4f, 5.6f, 17.5f, 19.2f, 21.0f, 25.6f, 35.3f, 39.5f,
25.2f, 10.0f, 5.7f, 4.6f};
String[] Nombres = {Pinta,Nia,Santamara};
Una de las grandes ventajas que presentan las matrices es la posibilidad que
existe para recorrer sus elementos con una instruccin repetitiva:
for (int i=0; i<12; i++)
System.out.println(Temperaturas[i]);
3.3.3 Ejemplo 1
3.3.5 Ejemplo 2
36 }
37 }
3.3.7 Ejemplo
La matriz se ha definido de tipo String, lo que encaja muy bien con los
campos que tienen que albergar nombres, sin embargo, las notas hay que
transformarlas de String a tipo float, lo que se realiza con facilidad gracias al mtodo
parseFloat de la clase Float (lneas 12 y 13). La operacin contraria tambin nos
resulta necesaria; en la lnea 31 se convierte de float a String utilizando el mtodo
toString de la clase Float.
Solucin
22 }
23
24 Primo = true;
25 PosiblePrimo++;
26 Indice = 0;
27
28 } while (PrimosHallados<NUM_PRIMOS );
29
30 for (int i=0; i<NUM_PRIMOS;i++) {
31 System.out.print(Primos[i] + " ");
32 if (i % 10 ==0)
33 System.out.println();
34 }
35
36 }
37 }
Del bucle anterior se puede salir por dos causas: que PosiblePrimo haya
pasado todas las comprobaciones de divisibilidad y por lo tanto es primo (Primo es
true), o que no haya pasado las comprobaciones y por lo tanto no es primo (Primo es
false). En el primer caso se actualiza la matriz Primos y el contador asociado:
PrimosHallados (lneas 20 y 21). En cualquier caso, al salir del bucle, se preparan
las variables para comprobar el siguiente valor en secuencia (lneas 24, 25 y 26).
Resultados
Este ejemplo muestra como combinar caracteres, con el fin de generar todas
las posibles claves que se pueden utilizar con un juego de caracteres permitido y un
tamao mximo establecido. El juego de caracteres que utilizaremos son los
nmeros y letras (maysculas y minsculas), junto a unos pocos caracteres
especiales de uso comn.
Solucin
37
38 }
39 }
En las lneas 15, 16, 17 y 18 se inician 4 bucles, uno por cada carcter (1,
2, 3, 4) de cada clave generada, de tal forma que cada carcter va aumentando
(lneas 25, 28, 31 y 34) en cada iteracin de su bucle correspondiente. Cada iteracin
de un bucle exterior debe inicializar el carcter del bucle inferior (lneas 27, 30 y
33).
Resultado
3.4.3 Estadsticas
Solucin
35 float[] TemperaturasGranada =
36 {5.2f, 4.6f, 12.5f, 19.3f, 16.2f, 24.5f,
37.2f, 37.0f, 29.3f, 18.2f, 10.3f, 7.5f};
37 float[] PresionFebrero =
38 {800.2f, 810.5f, 815.2f, 825.6f, 837.4f, 850.2f, 860.4f,
39 855.2f, 847.2f, 820.4f, 810.5f, 805.2f, 790.3f, 795.1f,
40 790.4f, 786.6f, 780.6f, 770.3f, 770.4f, 777.7f, 790.3f,
41 820.2f, 830.7f, 840.1f, 845.6f, 859.4f, 888.2f, 899.4f};
42
43 float[] mM = new float[2]; // Contendra el menor y
// el mayor valor
44 System.out.println("Media temperaturas de Madrid: " +
45 Media(TemperaturasMadrid) );
46 System.out.println("Variacion temperaturas de Madrid:
47 " + Variacion(TemperaturasMadrid) );
48 mM = MenorMayor(TemperaturasMadrid);
49 System.out.println("Menor y mayor temperatura de
50 Madrid: "+ mM[0] + " " + mM[1] );
51 System.out.println();
52
53 System.out.println("Media temperaturas de Granada: " +
54 Media(TemperaturasGranada) );
55 System.out.println("Variacion temperaturas de Granada:
56 " + Variacion(TemperaturasGranada) );
57 mM = MenorMayor(TemperaturasGranada);
58 System.out.println("Menor y mayor temperatura de
59 Granada: "+mM[0] + " " + mM[1] );
60 System.out.println();
61
62 System.out.println("Media presion de febrero:
"+Media(PresionFebrero));
63 System.out.println("Variacion presion de febrero: " +
64 Variacion(PresionFebrero) );
65 mM = MenorMayor(PresionFebrero);
66 System.out.println("Menor y mayor presion de febrero:
67 " + mM[0] + " " + mM[1] );
68 }
69 }
Del mtodo Media (situado entre las lneas 3 y 8) cabe resaltar la utilizacin
de la propiedad length, asociada al array Matriz. Utilizando esta propiedad, que nos
indica el nmero de elementos de la matriz lineal, conseguimos que el mtodo
Media sea independiente del tamao de la matriz: obsrvese como funciona
adecuadamente con TemperaturasMadrid, de 12 elementos y con PresionFebrero,
de 28 elementos. Esta propiedad la utilizamos tambin en los dems mtodos del
ejemplo.
Resultados