Ejercicios Tema 2-Soluciones

Programación 2013-2014 Ejercicios Tema 2 Ejercicios del Tema 2 Ejercicio 1: Dadas las siguientes declaraciones de vari

Views 134 Downloads 3 File size 53KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • xicen
Citation preview

Programación 2013-2014

Ejercicios Tema 2

Ejercicios del Tema 2 Ejercicio 1: Dadas las siguientes declaraciones de variables, explicar cuáles son incorrectas. ¿Cómo se pueden resolver, si es que se puede? 1) char a$a='c', A$A = 'd', a$A, A$a=A$A; 2) float c=3, _d=4.2, e= _d*c; 3) boolean j= false, h= true, f=j+h; 4) String aa="hola", bb= "adios", dd, ee=aa+bb+dd; Respuesta: 1) Correcta: java distingue mayúsculas de minúsculas por lo que las 4 variables son distintas y el signo $ puede aparecer en el nombre de una variable (de hecho una variable puede empezar por $) 2) Incorrecta. Asignamos un valor double (4.2) a la variable _d que es de tipo float. Para resolverlo, o bien ponemos una F detrás (4.2F) o hacemos un casting: _d= (float) 4.2 3) Incorrecta. No se pueden sumar booleanos. No se puede arreglar. 4) Incorrecta. Intentamos usar dd sin haberle dado valor antes. Para resolverlo habría que darle antes valor. Ejercicio 2: Indicar cuál sería la salida por consola al ejecutar la siguiente clase: public class Pregunta2 { public static void main(String[] args) { int x = 10; int j = 5; int z = x + j; System.out.println(++z); System.out.println(z++); } }

Respuesta: En la primera impresión, primero se incrementa el valor de la variable (z vale 16) y luego se imprime. En la segunda, primero se imprime el valor de la variable (16) y luego se incrementa. Por tanto se imprime: 16 16 Al final z vale 17. Ejercicio 3: Escribir un programa en Java que en su método main realice lo siguiente: 1) Crear un array de 4 números enteros. 2) Introducir en el array creado los valores: 7, 22, 3, 49 3) Crear una variable de tipo entero llamada total 4) Introducir en la variable total la suma de los elementos del array 5) Imprimir el valor de la variable total Respuesta: package ejerciciosTema2; public class Ejercicio3 { public static void main(String[] args) { int[] array = new int[4]; array[0] = 7; array[1] = 22; array[2] = 3; array[3] = 49; int total = array[0] + array[1] + array[2] + array[3]; System.out.println(total); }}

Universidad Carlos III de Madrid. Grado en Ingeniería Informática

1

Programación 2013-2014

Ejercicios Tema 2

Ejercicio 4: Encontrar y explicar los 3 errores de compilación que aparecen en el siguiente código Java. ¿Cómo los resolvería? public class Pregunta4 { public static void main (String [] args){ int a, b, c; int [] d, e; String s; short f=33; a=f; b=a+f; c= f; f=a; a=12; String k = s+"adios"; d[0]= 15; } }

Respuesta: Primer error: f=a. f es short y a es int, por lo que no se puede asignar a f el valor de a. Para resolverlo habría que hacer un casting: f = (short) a Segundo error: k=s+ "adios". No se ha dado valor a s, por lo que no puede utilizarse. Se puede resolver dando cualquier valor a s. Tercer error: d[0]=15. Se ha declarado el array d, pero no se ha asignado memoria todavía ni se ha dicho cuántas posiciones tiene, así que no se le puede asignar valor a la posición 0. Para resolverlo habría que crear el array con cualquier número de elementos, por ejemplo d = new int [5]; Ejercicio 5. Crear una matriz de double tres filas, la primera debe tener cinco columnas, la segunda 3 y la tercera 8. Respuesta: public class Ejercicio5 { public static void main(String[] args) { //Como va a ser una matriz irregular al crearla solo // decimos el número de filas double [][] matriz = new double [3][]; //Ahora vamos creando las columnas de cada fila matriz[0]= new double [5]; matriz[1]= new double [3]; matriz[2]= new double [8]; } }

Ejercicio 6: Crear un nuevo tipo de dato para almacenar los equipos que componen la primera división de fútbol. Respuesta: //Creamos un tipo enumerado enum Equipos {BARCELONA, ATLETICO, REAL_MADRID, VILLAREAL, GETAFE, ATHLETIC, ESPANYOL, VALENCIA, LEVANTE, ELCHE, SEVILLA, REAL_SOCIEDAD, MALAGA, RAYO, BETIS, GRANADA, VALLADOLID, OSASUNA, CELTA, ALMERIA}

Ejercicio 7: Crear un nuevo tipo para representar un jugador de fútbol. Deberá incluir el nombre, los apellidos, la edad, la posición en la que juega y el equipo al que pertenece (usar el tipo de dato creado en el ejercicio anterior). En otra clase crear un objeto de este tipo y rellenarlo. Respuesta: Universidad Carlos III de Madrid. Grado en Ingeniería Informática

2

Programación 2013-2014

Ejercicios Tema 2

Clase en la que se define el nuevo tipo: public class public public public public public }

Jugador { String nombre; String apellidos; byte edad; String posicion; Equipos equipo;

Clase en la que se declara una variable (un objeto) del nuevo tipo: public class Ejercicio7 { public static void main(String[] args) { Jugador unJugador = new Jugador(); unJugador.nombre = "Iker"; unJugador.apellidos="Casillas"; unJugador.edad= 31; unJugador.posicion = "portero"; unJugador.equipo = Equipos.REAL_MADRID; } }

Ejercicio 8: Crear arrays que sirvan para guardar los siguientes datos: a) Los resultados de la quiniela para una sola jornada (15 resultados) b) Los resultados de la quiniela para todas las jornadas (38 jornadas y 15 resultados cada una) Las notas de una asignatura de los alumnos de tres clases que tienen 15, 25 y 21 alumnos respectivamente. package ejerciciosTema2; public class Ejercicio8 { public static void main(String[] args) { //Lo hacemos de char para poder meter 1,X,2 char [] quiniela = new char [15]; char [][] todasQuinielas = new char [38][15]; //creamos primero las filas float [][] notas = new float [3][]; notas[0]= new float[15]; notas[1]=new float[25]; notas[2]=new float[21]; } }

Ejercicio 9: Crear un programa que pida por teclado una temperatura en grados centígrados e imprima su correspondiente temperatura en grados Fahrenheit de la siguiente forma: X grados centígrados son Y grados Fahrenheit (recordar que (F-32)/9 = C/5) package ejerciciosTema2; import java.util.Scanner; public class Ejercicio9 { public static void main(String[] args) { Scanner sc = new Scanner (System.in); System.out.println("Introduce la temperatura en grados centígrados");

Universidad Carlos III de Madrid. Grado en Ingeniería Informática

3

Programación 2013-2014

Ejercicios Tema 2

double temp = sc.nextDouble(); double fahr = 9*temp/5+32; System.out.println(temp+ " grados centígrados son "+fahr+" grados fahrenheit"); //Cerramos el scanner, no es obligatorio sc.close(); } }

Ejercicio 10: Crear un programa en Java que reciba por teclado un valor entero que represente segundos y lo convierta en su equivalente en horas (por ejemplo 3680 segundos son 1 hora, 1 minuto y 20 segundos) package ejerciciosTema2; import java.util.Scanner; public class Ejercicio10 { public static void main(String[] args) { Scanner sc = new Scanner (System.in); System.out.println("Dime los segundos"); int se = sc.nextInt(); int horas, minutos, segundos; //Para las horas dividimos por 3600 horas = se/3600; //Para los minutos cogemos el sobrante (el módulo) //y lo dividimos por 60 minutos = se%3600/60; //El sobrante son segundos segundos = se%3600%60; System.out.println(se+ " segundos son "+horas+" horas "+minutos+" minutos "+segundos+" segundos"); sc.close(); } }

Ejercicio 11: Crear un nuevo tipo de datos, denominado Alumno, para representar un alumno de primer curso de Ingeniería Informática. Tendrá los siguientes atributos: nombre, apellidos, nota de programación, nota de algebra, nota de cálculo, nota de física, nota de técnicas de búsqueda y nota de técnicas de expresión oral (elegir el tipo de dato más adecuado para cada atributo) package ejerciciosTema2; public class public public public public public public public public }

Alumno { String nombre; String apellidos; float notaProgramacion; float notaAlgebra; float notaCalculo; float notaFisica; float notaBusqueda; float notaTecnicas;

Ejercicio 12: Crear un programa que cree un objeto del tipo de datos anterior, pida los valores de cada uno de los atributos por teclado y los imprima. package ejerciciosTema2; import java.util.Scanner; public class Ejercicio12 {

Universidad Carlos III de Madrid. Grado en Ingeniería Informática

4

Programación 2013-2014

Ejercicios Tema 2

public static void main(String[] args) { Alumno al = new Alumno(); Scanner sc = new Scanner (System.in); System.out.println("Introduce el nombre"); al.nombre = sc.next(); System.out.println("Introduce los apellidos"); //Como los apellidos van separados por un espacio hay que pedirlos 2 veces al.apellidos= sc.next(); al.apellidos= al.apellidos+" "+sc.next(); System.out.println("Introduce la nota de Programación"); al.notaProgramacion = sc.nextFloat(); System.out.println("Introduce la nota de Algebra"); al.notaAlgebra = sc.nextFloat(); System.out.println("Introduce la nota de Cálculo"); al.notaCalculo = sc.nextFloat(); System.out.println("Introduce la nota de Física"); al.notaFisica = sc.nextFloat(); System.out.println("Introduce la nota de Técnicas de Búsqueda"); al.notaBusqueda = sc.nextFloat(); System.out.println("Introduce la nota de Técnicas de Expresión Oral"); al.notaTecnicas= sc.nextFloat(); sc.close(); System.out.println("Nombre y apellidos del alumno: "+al.nombre+" "+al.apellidos); System.out.println("Nota de Programación: "+al.notaProgramacion); System.out.println("Nota de Algebra: "+al.notaAlgebra); System.out.println("Nota de Cálculo: "+al.notaCalculo); System.out.println("Nota de Física: "+al.notaFisica); System.out.println("Nota de Técnicas de Búsqueda: "+al.notaBusqueda); System.out.println("Nota de Técnicas de Expresión Oral: "+al.notaTecnicas); } }

Universidad Carlos III de Madrid. Grado en Ingeniería Informática

5