Anda di halaman 1dari 5

LABORATORIO 3

LABORATORIO 3 PREGUNTAS DE AUTO PRUEBA 1. Cules son los tipos de nmeros ms utilizados en Java? 2. Suponga que desea escribir un programa que trabaja con los datos de poblacin de diversos pases. Qu tipo de datos Java debe utilizar? 3. Cul de las siguientes inicializaciones son incorrectas, y por qu? a.. int soles = 100,0; b. doble balance = 100; 4. Cul es la diferencia entre las dos afirmaciones siguientes? doble CM_POR_PULGADA final = 2,54; y public static double CM_POR_PULGADA final = 2,54; 5. Qu est mal con la siguiente secuencia de instrucciones? doble dimetro. = . .; doble circunferencia = 3.14 * dimetro; 6. Cul es el valor de n despus de la siguiente secuencia de instrucciones? n --; n ++; n --; 7. Cul es el valor de 1729/100?Cual de 1,729% 100? 8. Por qu la siguiente sentencia no calcula el promedio de s1, s2 y s3? doble media = s1 + s2 + s3 / 3 / / Error 9. Cul es el valor de Math.sqrt (Math.pow (x, 2) + Math.pow (y, 2)) en notacin matemtica? 10. Cundo el cast (long) x da un resultado diferente de la llamada Math.round (x)? 11. Cmo se puede redondear el valor doulbe x al valor entero ms cercano, en el supuesto de que usted sabe que es menor de 2 109? 12. Por qu no se puede llamar a x.pow (y) para calcular xy? 13. Es la llamada System.out.println (4) una llamada a un mtodo esttico? 14. Suponiendo que la variable String s contiene el valor "Agente", cul es el efecto de la asignacin s = s + s.length ()? 15. Suponiendo que la variable String ro contiene el valor "Amazonas", cul es el valor de rio.substring (1, 3)? Cul es de rio.substring (2, rio.length () - 3)? 16. Por qu no se puede leer la entrada directamente con System.in? 17. Supongamos que ingrese es un objeto de la clase Scanner que lee de System.in, con su rutina: String nombre = ingrese.next (); Cul es el valor de nombre, si el usuario escribe Juan P. Meza? EJERCICIOS DE REPASO 1 Escribe las siguientes expresiones matemticas en Java. 2 Escribe las siguientes expresiones de Java en la notacin matemtica. a. dm = m * (Math.sqrt(1 + v / c) / (Math.sqrt(1 - v / c) - 1)); b. volumen = Math.PI * r * r * h; c. volumen = 4 * Math.PI * Math.pow(r, 3) / 3; d. p = Math.atan2(z, Math.sqrt(x * x + y * y)); 3 Qu hay de malo en esta versin de la frmula cuadrtica? x1 = (-b - Math.sqrt (b * b - 4 * a * c)) / 2 * a; x2 = (-b + Math.sqrt (b * b - 4 * a * c)) / 2 * a; 4 D un ejemplo de desbordamiento de enteros. Sera el mismo ejemplo funcione correctamente si utiliz coma flotante?

5 D un ejemplo de un error de redondeo de punto flotante. El mismo ejemplo de trabaja correctamente si utiliza nmeros enteros y cambi a un nivel suficientemente pequea unidad, como centavos en lugar de dlares, por lo que los valores no tienen una parte fraccionaria? 7 Sea n un entero y x un nmero de punto flotante. Explicar la diferencia entre n = (int) x; y n = (int) Math.round (x); 8 Sea n un entero y x un nmero de punto flotante. Explicar la diferencia entre n = (int) (x + 0,5); y n = (int) Math.round (x); Para qu valores de x no dan el mismo resultado? Para qu valores de x no dan diferentes resultados? 10 Explique las diferencias entre 2, 2.0, 2 "," 2 "y" 2.0 ". 11 Explique lo que cada uno de los dos segmentos de programa siguiente se calcula: int x = 2; int y = x + x; y String s = "2"; String t = s + s; 12 Verdadero o falso? (x es un int y s es una cadena) a.. Integer.parseInt ("" + x) es el mismo que x b. "" + Integer.parseInt (s) es el mismo que s c. s.substring (0, s.length ()) es la misma que s 13 Cmo se obtiene el primer caracter de una cadena? Cmo el ltimo? Cmo se eliminar el primer carcter? Cmo el ltimo? 14 Cmo se llega al ltimo dgito de un nmero entero? El primer dgito? Es decir, si n es 23456, cmo Cmo se entera de que el primer dgito es 2 y el ltimo dgito es 6? No convierta el nmero en una cadena. Sugerencia: %, Math.log. 15 Este captulo contiene una serie de recomendaciones con respecto a las variables y constantes que hacen que los programas ms fciles de leer y de mantener. Resuma estas recomendaciones. 16 Qu es una variable final? Se puede declarar una variable final sin suministrar su valor? 17 Cules son los valores de las siguientes expresiones? En cada lnea, se supone que doble x = 2,5; doble y = -1,5; int m = 18; int n = 4; a.. x + n * y - (x + n) * y b. m / n + m% n c. 5 * x - n / 5 d. Math.sqrt (Math.sqrt (n)) e. (Int) Math.round (x) f. (Int) Math.round (x) + (int) Math.round (y) g. 1 - (1 - (1 - (1 - (1 - n)))) 18 Cules son los valores de las siguientes expresiones? En cada lnea, se supone que int n = 4; String s = "Hola"; String t = "mundo"; a.. s + t b. s + n . c. n + t d. s.substring (1, n)e. s.length () + T.Length ()

EJERCICIOS DE PROGRAMACIN 4.- Escriba un programa que pide al usuario dos nmeros, luego imprime La suma La diferencia El producto El promedio La distancia El mximo El mnimo public class Par{ / ** Construye un par. @ Param unPrimero el primer valor del par @ Param unSegundo el segundo valor del par */ public Par (doble unPrimero, doble unSegundo) {. . . } / ** Calcula la suma de los valores de este par. @ Devolver la suma de los primeros y segundos valores de */ public doble obtenerSuma () {. . . } ... } Luego implemente una clase ParPrueba, que construye un par de objetos Pair, invoca sus mtodos, e imprime los resultados. 5 Declarar una clase Datos que calcula la suma y el promedio de una secuencia de nmeros enteros. Suministre los mtodos: void adicionaValor (int x) int obtenerSuma () double getAPromedio () Sugerencia: Mantenga un registro de la cantidad y el recuento de los valores. A continuacin, escriba un programa DatosPrueba, donde llame cuatro veces adicionaValor e imprema los resultados esperados y los reales. 6 Escribir una clase Datos que calcule el valor mximo y mnimo de una secuencia de nmeros. Mtodos a suministrar void adicionaValor (int x) int getMaximo () int getMinimo () Lleve un registro de los valores mximos y mnimos que hemos visto hasta ahora. A continuacin, utilice los mtodos Math.Min y Math.max para actualizarlos en el mtodo adicionaValor. Qu debe hacer utiliza como valores iniciales? Sugerencia: Integer.MIN_VALUE, Integer.MAX_VALUE. Escriba un programa DatosPrueba que llame cuatro veces a adicionaValor e imprima los resultados esperados y los reales. 7 Escriba un programa que pide al usuario una medicin en metros y luego se convierta en millas, pies y pulgadas. Utilice una clase public class Convertidor { / ** Construye un convertidor que puede convertir entre dos unidades. @ Param aConversionFactor el factor por el que se multiplica para convertir a la unidad de destino */ public Convertidor (doble factorConversion) {. . . } / ** Convierte desde una fuente de medicin para una medicin de destino.

@ Param deMedision la medicin @ Return el valor de entrada convertido a la unidad de destino */ public doble ConvierteA (doble deMedision) {. . . } / ** Convierte partir de una medicin de destino a una medicin. fuente @ Param aMedision medision de destino. @ Return el valor cuya conversin es la medision destino. */ public doble convierteDe (doble aMedision) {. . . } } En la clase ConverirPrueba, construir y probar el siguiente objeto Convertidor doble MILLA_A_KM final = 1,609; MillaaAMetros Convertidor = new Convertidor (1000 * MILE_TO_KM); 8 Escriba una clase Cuadrado cuyo constructor recibe la longitud de sus lados. Luego suministrar mtodos para calcular El rea y el permetro de la plaza La longitud de la diagonal 9 Implementar una clase SodaLata cuyo constructor recibe la altura y el dimetro de la lata de refresco. Suministro mtodos getVolume y getAreaSuperficie. Proporcione una clase SodaLataprueba que las pruebas de su clase. 10 Implementar una clase Globo que modela un globo esfrico que se llena de aire. El constructor construye un globo vaco. Suministre los siguientes mtodos: void adicionaAire (doble cantidad) agrega la cantidad dada de aire Doble getVolumen () obtiene el volumen actual Doble getAreaSuperficie () obtiene la superficie actual doble getRadio () obtiene el radio actual Suministro una clase GloboPrueba que construye un globo, aada 100 cm3 de aire, prueba la tres mtodos de acceso, se suma otros 100 cm3 de aire, y pone a prueba los mtodos de acceso de nuevo. 13 Escribir un programa que lea un entero y divida en una secuencia de dgitos en orden inverso. Por ejemplo, la entrada 16384 se como 4 8 3 6 1 (en presentacin vetical) Usted puede asumir que la entrada no tiene ms de cinco dgitos y no es negativo. public class EstractorDigitos { / ** Construye un extractor dgitos que recibe los dgitos de un nmero entero en el orden inverso. @ Param anInteger el entero se rompa en cifras */ pblica EstractorDigitos (int anInteger) {. . . } / ** Devuelve el siguiente dgito a extraer. @ Return el siguiente dgito */ nextDigit public int () {. . . } } En su DigitPrinter clase principal, llamada System.out.println (myExtractor.nextDigit ()) cinco

veces. 14 Implementar una clase EcuacionCuadratica cuyo constructor recibe los coeficientes a, b, c de la ecuacin cuadrtica ax2 0. Mtodos de alimentacin y getSolution1 getSolution2 que+ bx + c = obtener las soluciones, el uso de la frmula cuadrtica. Escribir una clase de prueba EcuacionCuadraticaPrueba que construye un objeto EcuacionCuadratica, e imprime los dos soluciones. Implementar un TimeInterval clase cuyo constructor toma dos veces militares. La clase debe tener dos mtodos getHours y getMinutes. 16 escribir letras grandes. Una gran letra H se puede producir de esta manera: ** ** ***** ** ** Utilice la clase public class LetraH{ public String aString () { Return ** \ n ** \ n ***** \ n ** \ n ** \ n"; } } Declarar clases similares para las letras E, L y O. A continuacin, escriba el mensaje H E L L O (en letras grandes y verticalmente. 18 Su trabajo consiste en transformar los nmeros 1, 2, 3,. . ., 12 en nombres del mes correspondiente de enero, febrero, marzo. . ., diciembre. Implementar una clase Mes cuyo parmetro del constructor es el nmero de meses y cuyo mtodo getNombre devuelve el nombre del mes. Sugerencia: Haga una cadena muy larga "Enero Febrero Marzo ...", en el que agrega espacios de tal manera que cada nombre de mes tiene la misma longitud. A continuacin, utilice subcadena para extraer el mes que desea. 19 escribir una clase para calcular la fecha del Domingo de Pascua. Domingo de Pascua es el primer domingo despus de la primera luna llena de primavera. Utilice este algoritmo, inventado por el matemtico Carl Friedrich Gauss en 1800: 1. Sea y el ao (por ejemplo, 1800 o 2001). 2. Divide y por 19 y llama al resto a. Ignorar el cociente. 3. Divide y por 100 para obtener un cociente b y un resto c. 4. Divida b por 4 para obtener el cociente d y un resto e. 5. Divide 8 * b + 13 por 25 para obtener un cociente g. Ignore el resto. 6. Divide 19 * a + b - d - g + 15 por 30 para obtener un residuo h. Ignorar el cociente. 7. Divida c por 4 para obtener un cociente j y un resto k. 8. Divida a + 11 * h por 319 para obtener un cociente m. Ignore el resto. 9. Divide 2 * e + 2 * j - k - h + m + 32 por 7 para obtener un resto r. Ignore el cociente. 10. Divida h - m + r + 90 por 25 para obtener un cociente n. Ignore el resto. 11. Divida h - m + r + n + 19 por 32 para obtener un resto p. Ignorar el cociente. Entonces Pascua cae en das de p meses n. Por ejemplo, si y es 2001: a = 6 b = 20 c = 1 d = 5, e = 0 g = 6 h = 18 j = 0, k = 1 m = 0 r = 6 n = 4 p = 15 Por lo tanto, en 2001, El Domingo de Pascua cay el 15 de abril. Escriba una clase Pascua con los mtodos getMesDePascua y getDiaDePascua.