Diferencia entre revisiones de «Ejercicios programación Java»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 101: Línea 101:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
−
===Ejercicio 3===
+
===Ejercicio 3: Definir variables y tipos===
  
 
* Define las variables y constantes con un nombre adecuado y un tipo correcto que serían necesarios para dar solución a los siguientes problemas:
 
* Define las variables y constantes con un nombre adecuado y un tipo correcto que serían necesarios para dar solución a los siguientes problemas:

Revisión del 16:43 15 sep 2017

Fuentes

  • Algunos de los ejercicios listados fueron obtenidos de las siguientes fuentes:

Ejercicios UD1: Identificación de los elementos de un programa informático

  • En este punto entraría:
  • Estructura de un programa en Java.
  • Variables.
  • Constantes.


Ejercicio 1: Validez de identificadores

Obtenidos en parte desde este sitio web.
  • Indica qué identificadores de los siguientes son válidos y cuales no lo son. En el caso que no sean válidos detalla el por qué: casa, -numero, micasa1, MES_1, mes_1, _a890, numero_”, 3numero, a890


  • Tenemos que crear variables para medir la temperatura de un horno, almacenar un número de teléfono, un interés bancario, los campos para guardar los datos personales de una persona, las partes de un ordenador. Indica los nombres que les darías a cada una de las variables.


  • Indica los nombres que les darías a cada una de las constantes: constante para medir 32 grados de fiebre, almacenar el teléfono de urgencias 112, la primera vocal del alfabeto y la velocidad de la luz.


Solución Ejercicio 1

  • Indica qué identificadores de los siguientes son válidos y cuales no lo son. En el caso que no sean válidos detalla el por qué: casa, -numero, micasa1, MES_1, mes_1, _a890, numero_”, 3numero, a890
  • Solución: Mirando los apuntes podemos comprobar como un identificador debe comenzar con una letra, $ o _ pero por convenio no se debe utilizar $ y _
Por lo tanto, en el caso anterior no son válidos: -numero,_a890,3numero
Por otra banda no se puede utilizar ninguno de los caracteres especiales (las comillas dobles): numero_”


  • Tenemos que crear variables para medir la temperatura de un horno, almacenar un número de teléfono, un interés bancario, los campos para guardar los datos personales de una persona, las partes de un ordenador. Indica los nombres que les darías a cada una de las variables.
  • Solución: tempHorno; telefono; interesBancario; nombreCompleto, direccion, telefono, codigoPostal,pais; marcaMonitor, marcaCpu, marcaHd, capacidadHD
Nota: Fijarse que se hiciéramos uso de la POO, podríamos crear una clase Monitor (por ejemplo) que tuviera las propiedades (variables) marca, tamaño,...


  • Indica los nombres que les darías a cada una de las constantes: constante para medir 32 grados de fiebre, almacenar el teléfono de urgencias 112, la primera vocal del alfabeto y la velocidad de la luz.
  • Solución: GRADOS_32, TFNO_URGENCIAS;VOCAL_1; VELOCIDAD_LUZ

Ejercicio 2: Tipos de variables

  • Identifica los tipos de variables que encuentres en esta clase, atendiendo a si son:
  • Variables de tipos primitivos/de referencia.
  • Variables/Constantes
  • Variables miembro/locales
 1 class Computador{
 2 
 3     final int MAYOR_EDAD=100;
 4     int capacidade; 
 5     String marca; 
 6    
 7     void calcularPotencia(){
 8         float indice=0; 
 9        
10        
11     }
12     String obtenerDescripcion(){
13         String temporal=""; 
14         final String CADENA_FIJA="TE ENCUENTRAS EN:";
15 
16       
17         return temporal;
18     }
19    
20 }


Solución Ejercicio 2

 1 class Computador{
 2 
 3     final int MAYOR_EDAD=100; => primitivo, constante, miembro
 4    
 5     int capacidade; => primitivo, variable, miembro
 6     String marca; => referencia, variable, miembro
 7    
 8     void calcularPotencia(){
 9         float indice=0; => primitivo, variable, local
10     }
11     String obtenerDescripcion(){
12         String temporal=""; => referencia, variable, local
13         final String CADENA_FIJA="TE ENCUENTRAS EN:"; => referencia, constante, local
14 
15        
16         return temporal;
17     }
18    
19 }

Ejercicio 3: Definir variables y tipos

  • Define las variables y constantes con un nombre adecuado y un tipo correcto que serían necesarios para dar solución a los siguientes problemas:
  • Se quiere crear una clase que guarde información personal de sus empleados (incluidos teléfono y email).
  • Se quiere crear un método que a partir de un radio dado, calcule el diámetro, la longitud y el área.
  • Se quiere crear un método que en base a un conjunto de notas de cada uno de los alumnos, calcule la media de todas ellas.
  • Se quiere crear una clase que guarde información sobre los coches de alquiler de los que dispone.
  • Se quiere crear un método que calcule el importe total del precio de un producto con su iva.


Solución Ejercicio 3

  • Se quiere crear una clase que guarde la dirección y nombre de sus empleados (incluidos teléfono y C.P.).
  • Solución:
1 String nombre;
2 String apellidos;
3 String fechaNac;   // Si queremos guardar la fecha de nacimiento, Java dispone de una clase Date.
4 String direccion;
5 String telefono;   // ¿ No debería ser un número ? 
6 String codigoPostal; // ¿ No debería ser un número ?
Os indico alguna de las razones por las que no sería necesario que teléfono y código postal sean número:
  • El código postal y el teléfono aportan información con parte de sus dígitos. Así el C.P., por ejemplo, 15660 indicaría que es de Coruña. Extraer esas 'partes' es mucho más fácil si el tipo de dato es String.
  • No vamos a realizar operaciones matemáticas con ellas. Si tuviéramos un campo edad, sí que sería numérico, ya que podríamos querer obtener la media de edad de todos los empleados, o cual de ellos es mayor.
  • Si alguno de los datos tiene ceros al comienzo, no podrían ser guardados dentro de un campo de tipo numérico.


  • Se quiere crear un método que a partir de un radio dado, calcule el diámetro, la longitud y el área.
  • Solución:
1 float radio;
2 float diametro;
3 float longitud;
4 float area;
5 final float PI;
Podríamos utilizar double para guardar los datos. De echo, las operaciones trigonométricas de senos, cosenos,...devuelven un double. Todo dependerá del dato de entrada que utilicemos y de la precisión que queramos tener.


  • Se quiere crear un método que en base a un conjunto de notas de cada uno de los alumnos, calcule la media de todas ellas.
  • Solución:
1 float media;
2 float nota;  // Ponemos float ya que la nota podría venir con números decimales y llega el tipo float para guardar dos dígitos.
El enunciado habla de un conjunto de notas. En este caso estamos definiendo el nombre y tipo de una nota. Para guardar un conjunto de notas tendremos que hacer uso de unas estructuras de datos más complejas, como arrays o listas.


  • Se quiere crear una clase que guarde información sobre los coches de alquiler de los que dispone.
  • Solución:
1 String marca;
2 String matricula;
3 int km;


  • Se quiere crear un método que calcule el importe total del precio de un producto con su iva.
  • Solución:
1 final float IVA;
2 float precioFinal;

Ejercicio 4

  • Crea una variable para cada uno de los siguientes datos e inicialízala (cuando se indique su valor).
Cada variable se escribirá en una línea.
Nota: Fíjate en las advertencias errores que muestra NetBeans
  • peso
  • Edad: 12
  • Temperatura Exterior: -45 ºC
  • Temperatura interior: 13 ºC
  • Radio del universo: 13 x 10-97m
  • Gastos: 1443.14 €
  • Poblacion existente en China: 1.325.254.589 habitanes
  • Sexo: H
  • float: 3;
  • Peso de un tomate: 0.23 Kg
  • letra del NIF
  • NIF


Solución Ejercicio 4

  • Es esta solución se hace uso del método printf el cual permite mostrar información con un formato determinado. Más información en este enlace.


 1     public static void main(String[] args) {
 2         // TODO code application logic here
 3 
 4         float peso;
 5         byte edad=12;  // Si tenemos dudas de si 127 va a ser una edad alcanzable, mejor poner un short
 6         byte tempExterior=-45;
 7         byte tempInterior=13;
 8         double radioUniverso=13e97;
 9         float gastos=1443.14f;
10         int poblacionChina=1325254589;  // Si queremos tener un margen mayor pondríamos un long
11         char sexo='H';  // En programación, a los datos que pueden guardar solamente dos valores se les asigna un tipo boolean
12         // float es una palabra reservada y no se puede utilizar como nombre de variable;
13         float pesoTomate = 0.23f;
14         char letraNif;
15         String nif="11111111A";
16 
17         // Al ser variables locales (están definidas dentro del metodo main) las no inicializadas no tienen valor y por tanto no pueden visualizarse.
18         
19         System.out.println("Edad:" + edad);
20         System.out.printf("Edad:%d años %n", edad);
21 
22         System.out.println("Temperatura exterior:" + tempExterior);
23         System.out.printf("Temperatura exterior:%d ºC %n", tempExterior);
24 
25         System.out.println("Temperatura interior:" + tempInterior);
26         System.out.printf("Temperatura interior:%d ºC %n", tempInterior);
27         
28         System.out.println("Radio Universo:" + radioUniverso);
29         System.out.printf("Radio Universo:%,.2f %n", radioUniverso);  // Muestra la coma separando los miles y dos dígitos decimales
30 
31         System.out.println("Gastos:" + gastos);
32         System.out.printf("Gastos: %,.2f Euros %n", gastos);
33         
34         System.out.println("Población en China:" + poblacionChina);
35         System.out.printf("Población en China: %,d personas. %n", poblacionChina);
36 
37         System.out.println("Sexo:" + sexo);
38         System.out.printf("Sexo: %C %n", sexo);  // C en maíscula pasa a letra a maiúscula
39 
40         System.out.println("Peso del tomate:" + pesoTomate);
41         System.out.printf("Peso del tomate: %.2f Kilogramos %n" , pesoTomate);
42 
43         System.out.println("NIF:" + nif);
44         System.out.printf("NIF:%s%n" , nif);
45         
46     }


Ejercicio 5

  • Crea un tipo de dato enumerado con los días de la semana.
  • Crea un tipo de dato enumerado que guarde las etapas por las que pasa el ser humano: bebé, niño, adolescente, adulto, anciano.


  • Crea una variable de cada tipo y asígnale un valor inicial.

Solución Ejercicio 5=

 1 public class OlaMundo {
 2 
 3    enum Dias {Lunes,Marte,Miercoles,Jueves,Viernes,Sabado,Domingo};
 4    enum EtapasHumano {BEBE,NIÑO,ADOSLESCENTE,ADULTO,ANCIANO};
 5     /**
 6      * @param args the command line arguments
 7      */
 8     public static void main(String[] args) {
 9         // TODO code application logic here
10 
11         Dias dia = Dias.Jueves;
12         EtapasHumano misEtapas = EtapasHumano.ADOSLESCENTE;
13         
14     }
15     
16 }