Talleres Libro Guía “Como programar en JAVA” ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION Fichas: 581708 y 600182 Instructor: IVAN DANIEL VELA MONTENEGRO Al seguir como libro Guía el texto “Como programar en JAVA” encontramos una serie de ejercicios Propuesto que nos permitirán afianzar las lecturas de los capítulos propuestos en el libro, inicialmente se desarrollaran los siguientes ejercicios que le permitirán al aprendiz apropiarse de conceptos y definiciones para posteriormente aplicarlos al desarrollo de código específico. Por esta razón es necesario que basados en las lecturas del capítulo respondan los siguientes cuestionarios: Ejercicios Propuestos: Capítulo 3: ejercicios 3.5 a 3.10 3.5 ¿Cuál es el propósito de la palabra clave new? Explique lo que ocurre cuando se utiliza en una aplicación. La palabra clave new crea un nuevo objeto de la clase especificada a la derecha de la palabra clave. 3.6 ¿Qué es un constructor predeterminado? ¿Cómo se inicializan las variables de instancia de un objeto, si una clase sólo tiene un constructor predeterminado? Los paréntesis a la derecha del objeto son obligatorios, esos paréntesis en combinación con el nombre de una clase representan una llamada a un constructor , que es similar a un método, pero se utiliza sólo cuando se crea un objeto, para inicializar los datos de éste. Cada clase que usted declare puede proporcionar un constructor, el cual puede utilizarse para inicializar un objeto de una clase al momento de crear ese objeto. De hecho, Java requiere una llamada al constructor para cada objeto que se crea. La palabra clave new llama al constructor de la clase para realizar la inicialización. La llamada al constructor se indica mediante el nombre de la clase, seguido de paréntesis; el constructor debe tener el mismo nombre que la clase. Cuando una clase sólo tiene el constructor predeterminado, sus variables de instancia se inicializan con sus valores predeterminados. Las variables de los tipos char, byte, short, int, long, float y double se inicializan con 0, las variables de tipo boolean se inicializan con false, y las variables de tipo por referencia se inicializan con null. 3.7 Explique el propósito de una variable de instancia. Guardar los atributos de un objeto. 3.8 La mayoría de las clases necesitan importarse antes de poder utilizarlas en una aplicación ¿Por qué cualquier aplicación puede utilizar las clases System y String sin tener que importarlas primero? La mayoría de las clases que utilizará en los programas de Java deben importarse. Las clases System y String están en el paquete java.lang, que se importa de manera implícita en todo programa de Java, por lo que todos los programas pueden usar las clases del paquete java.lang sin tener que importarlas de manera explícita. 3.9 Explique cómo utilizaría un programa la clase Scanner, sin importarla del paquete java.util. La declaración import no es obligatoria si siempre hacemos referencia a la clase Scanner como java.util.Scanner, que incluye el nombre completo del paquete y de la clase. 3.10 Explique por qué una clase podría proporcionar un método establecer y un método obtener para una variable de instancia. El método establecer, almacena el nombre de un curso en un objeto. El método obtener, obtiene el nombre del curso de un objeto. Capítulo 4: ejercicios 4.10 a 4.14 4.10 Compare y contraste la instrucción if de selección simple y la instrucción de repetición while. ¿Cuál es la similitud en las dos instrucciones? ¿Cuál es su diferencia? La similitud esta en que los dos necesitan una condición para cumplir con unas instrucciones , la diferencia esta en que el if necesita la condición para ejecutar las instrucciones y el while ejecutara las instrucciones (MIENTRAS) la condición se cumpla , se podría decir que se itera infinitamente , si la condición no se cumple este llega a su fin . La instrucción if es una instrucción de selección simple, ya que selecciona o ignora una sola acción o un solo grupo de acciones. La instrucción while realiza la acción (o grupo de acciones) en su cuerpo, cero o más veces; si la condición de continuación del ciclo es inicialmente falsa no se ejecutará la acción (o grupo de acciones). 4.11 Explique lo que ocurre cuando un programa en Java trata de dividir un entero entre otro. ¿Qué ocurre con la parte fraccionaria del cálculo? ¿Cómo puede un programador evitar ese resultado? Al dividir dos enteros se produce una división entera (int): se pierde cualquier parte fraccionaria del cálculo (es decir, se trunca). Para evitar esto, el programador debe definir las variables como punto flotante (float). 4.12 Describa las dos formas en las que pueden combinarse las instrucciones de control. Están las instrucciones de selección , las cuales ay sencillas if , las ay dobles if – else que es para una doble condición y las ay multiples switch , la cual tiene que llevar un break seguido y terminar en un default . Estan las instrucciones de repetición , como son : while , Do- while y for que cumplen funciones parecidas de diferentes formas 4.13 ¿Qué tipo de repetición sería apropiada para calcular la suma de los primeros 100 enteros positivos? ¿Qué tipo de repetición sería apropiada para calcular la suma de un número arbitrario de enteros positivos? Describa brevemente cómo podría realizarse cada una de estas tareas. Para la primera tarea lo más conveniente es usar un ciclo de iteración while ya que es este puede decirse que mientras n sea menor a cien se incrementaran nuestros valores de 1 en 1 hasta llegar a este valor , y se podría anidar a un if para condicionarlo luego de 100 y que nos sume todos los valores pero esta tarea también se puede llevar a cabo con cualquier otro ciclo iterativo , ya se dowhile o for 4.14 ¿Cuál es la diferencia entre preincrementar y postincrementar una variable? Básicamente es el orden del la operación , ya que en el resultado esto no tiene ninguna diferencia Capítulo 5: ejercicios 5.5 a 5.8 5.5 Describa los cuatro elementos básicos de la repetición controlada por contador. 5.6 Compare y contraste las instrucciones de repetición while y for. Las instrucciónes de repetición while y for cumplen funciones muy similares solo que ejecutadas de distinta forma , podemor ver que una es mientras y la otra para , entonces podríamos decir que la diferencia radica en que en el while mientras una condición se cumpla el ciclo iterativo permanece funcionando , mientras que en el for para que se cumpla el bloque de instrucciones tiene que cumplir con la condición y predefinir un valor tope para el contador 5.7 Hable sobre una situación en la que sería más apropiado usar una instrucción do...while que una instrucción while. Explique por qué. La instrucción do .. se utiliza en situaciones donde necesitamos que la iteración del bucle se lleve a cabo por lo menos una ves antes de llegar a la condición . como un programa que nos tome un valor inicial y siga la secuencia a partir del mismo hasta un limite puesto en la condición que se ejecutara después del bloque de instrucciones . 5.8 Compare y contraste las instrucciones break y continue. El break y el continue se diferencian en que el break se utiliza para dar un descanzo o finalizar un bloque de instrucciones por un case de un switch y el continue se utiliza para pasar al siguiente bloque de instrucciones Capítulo 6: ejercicios 6.7 a 6.14 6.7 = a) x = Math.abs( 7.5 ); = 7.5 b) x = Math.floor( 7.5 ); = 7.0 c) x = Math.abs( 0.0 ); = 0.0 d) x = Math.ceil( 0.0 ); = 0.0 e) x = Math.abs( -6.4 ); = 6.4 f) x = Math.ceil( -6.4 ); = 7.0 g) x = Math.ceil( Math.abs( -8 + Math.floor( -5.5 ) ) ); floor -5.5= -6.0 abs -8.0= 8.0 ceil 2.0 = 2.0 rta: 2.0 6.10 = import java.lang.Math; import java.util.Scanner; public class ejercicio610 { public static void main(String []args){ float total=0; Scanner XD = new Scanner(System.in); System.out.println("Digite un numero de 4 cifras"); float num = XD.nextFloat(); System.out.println("Digite una opcion"); System.out.println("1.redondeo 1 cifra"); System.out.println("2.redondeo 2 cifras"); System.out.println("3.redondeo 3 cifras"); System.out.println("4.redondeo 4 cifras"); int opcion = XD.nextInt(); switch (opcion) { case 1:{ System.out.println("Total: "+Math.floor(num+0.5)); break; } case 2:{ System.out.println("Total: "+Math.floor(num*10+0.5)/10); break; } case 3:{ System.out.println("Total: "+Math.floor(num*100+0.5)/10); break; } case 4:{ System.out.println("Total: "+Math.floor(num*1000+0.5)/10); break; } } } } 6.11 = a) .Que signifi ca elegir numeros “al azar”? rta = cuando se escoge cualquier numero de los que uno tiene b) .Por que es el metodo nextInt de la clase Random util para simular juegos al azar? Rta= por que se escoge es un numero entero para el juego y este método impre números enteros. c) .Por que es a menudo necesario escalar o desplazar los valores producidos por un objeto Random? Rta= para tener un parámetro para poder hacer el random 6.12 = Incompleto import java.lang.Math; import java.util.Random; import java.util.Scanner; public class ejercicio610 { public static void main(String []args){ double total; Scanner XD = new Scanner(System.in); System.out.println("Digite una opcion"); System.out.println("1.1 <= n <= 2"); System.out.println("2.1 <= n <= 100"); System.out.println("3.0 <= n <= 9"); System.out.println("4.1000 <= n <= 1112"); System.out.println("5.-1 <= 1"); System.out.println("6.-3 <= 11"); Random rdn = new Random(); int opcion = XD.nextInt(); switch (opcion) { case 1:{ System.out.println("resultado: "+rdn.nextInt(1)+2); break; } case 2:{ System.out.println("Total: "+rdn.nextInt(100)+1); break; } case 3:{ System.out.println("Total: "+rdn.nextInt(2)); break; } case 4:{ System.out.println("Total: "); break; } } } } clase y se debe entregar al instructor individualmente y de forma escrita.