Ej Introjava
Ej Introjava
Ej Introjava
EXPERIMENTOS
INSTRUCCIONES: Realice los pasos que se indican en una computadora y vaya tomando nota de lo que
hace y observa. Responda a las preguntas que se le van planteando durante el desarrollo del ejercicio.
Anote sus conclusiones.
ACLARACION: Algunos ejemplos están diseñados específicamente para ser utilizados en el sistema
operativo Windows. Usuarios de otros sistemas operativos pueden realizar operaciones homólogas a las
mencionadas.
- Abra un editor de textos como el Bloc de Notas de Window (Inicio à Programas à Accesorios à Bloc
de Notas); y escriba el siguiente programa (respete las mayúsculas y las minúsculas y obvie los números
de la izquierda). Luego almacénelo en la carpeta que creó en el anterior paso.
1: class HolaMundo
2: { public static void main (String args[])
3: { System.out.print("Hola Mundo, este es mi primer programa en Java");
4: }
5: }
- ¿Qué nombre debería tener el archivo en el que está almacenado su programa? ¿Por qué?
- Desde la línea de comandos de MS-DOS, ejecute el comando DIR ¿Qué observa?
- Llame al compilador de JAVA para que compile a su programa.
- Vuelva a ejecutar el comando DIR. ¿Qué observa ahora? ¿Qué ha sucedido respecto a la anterior vez que
ejecutó DIR?
- Llame a la Maquina Virtual JAVA (JVM - Java Virtual Machine) para ejecutar su programa.
- ¿Qué hace su programa?
- Divida la frase que está entre comillas dobles en 2 filas.
- Vuelva a grabar su archivo, compílelo y ejecútelo. ¿Qué observa ahora?
- En función a lo que ha podido observar ¿Qué hace exactamente la instrucción de la fila 3?
2. - Tome como base el archivo creado en el experimento anterior y modifique la fila 1 por
class HolaMundo2 y en la fila 3 cambie la palabra print por println.
- Vuelva a llamar al compilador de JAVA para compilar su programa.
- Ejecute DIR nuevamente. ¿Qué ha sucedido? ¿Qué conclusión ha obtenido hasta ahora? Si no tiene
ninguna conclusión clara, vuelva a repetir este ejercicio cambiando la fila 1 por class HolaMundo3.
- ¿Qué hace ahora su programa?
- ¿Qué diferencia existe entre print y println?
1: class Declaraciones
2: { public static void main (String ar[])
3: { int x;
4: System.out.println (x);
5: }
6: }
6. Considerando que usted pudo solucionar el problema del experimento 5, reemplace las x de las filas 3 y 4
por los siguientes valores e indique que ocurre en cada caso.
7. Copie el siguiente código. ¿Qué hace en teoría? ¿Y en la práctica... por qué no puede compilarlo? ¿Para que
sirven las variables que han sido declaradas? ¿Para que cree usted que servirán.... luego.... cada una de ellas?
1: class ExperimentoDeComentarios
2: { public static void main (String arg[])
3: { int ci=5337562, edad=18, aux, cont, i, j, k;
4: double estatura=1.81, peso=72.3;
5: char sexo='m';
6: String direccion, nom="Juan", apP="Perez", apM="Perez";
7: System.out.println ("Hola " + nom + " " + apP + "" + apM);
8: }
9: }
- ¿El siguiente código es equivalente al anterior? Cópielo y pruébelo. No resuelva este ejercicio por
simple inspección. Comente el resultado de comparar con el anterior programa.
1: class ExperimentoDeComentarios2
2: { public static void main (String arg[])
3: { int ci=13375624, // Carnet de Identidad
4: edad=18, // Edad de la persona
5: aux; // Variable auxiliar para cambio de valores
6: cont, i, j, k; // Contadores
7:
8: double estatura=1.81,
9: peso=72.3;
10:
11: char sexo='m';
- Entre los dos códigos (corregidos), ¿cuál es más correcto? ¿por qué?
- ¿Cuál de los dos códigos ocupa más espacio y por lo tanto es menos recomendable?
- ¿En qué casos es aconsejable el uso de los comentarios // y el de los comentarios /* */?
1: class Constantes
2: { public static final double PI = 3.141592654;
3:
4: public static void main(String abc[])
5: { System.out.print ("El valor de PI es una constante\n");
6: System.out.println ("Vale: "+PI);
7:
8: // Voy cambiar el valor de PI
9: PI = 3.1416;
10:
11: System.out.println ("Ahora PI vale: "+PI);
12: }
13: }
9. El siguiente programa muestra resultados de algunas expresiones cuyos valores introduce el usuario por
teclado. Realice una prueba de escritorio con este programa y muestre para distintos valores los resultados
que obtendría. Luego copie este código y hágalo correr en una computadora. Comente sus resultados. Como
siempre, si hay que corregir algo en el programa, hágalo.
1: import java.io.*;
2:
3: class UsoDeIO
4: { public static final double PI = 3.141592654;
5:
6: public static void main(String arg[]) throws Exception
7: { // Así se declara un flujo de Entrada
8: BufferedReader flujo;
9: flujo = new BufferedReader(new InputStreamReader(System.in));
10:
11: // Las declaraciones de variables deberían ir
12: // -como una buena norma- acá arriba.
13: int x, y;
14: double a, b;
15: float c;
16:
17: System.out.print ("Ingrese dos valores enteros.
18: Separados por ENTER: ");
19: x = Integer.parseInt(flujo.readLine());
20: y = Integer.parseInt(flujo.readLine());
21:
22: System.out.println ("Suma = "+ x+y);
INTRODUCCIÓN AL LENGUAJE JAVA UMSS
3/7 INF-SIS
23: System.out.println ("Resta = "+ x-y);
24: System.out.println ("Producto = "+ x*y);
25: System.out.println ("División = "+ x/y);
26:
27: System.out.print ("Ingrese 2 valores reales.
28: Separados por ENTER:");
29: a = Double.parseDouble(flujo.readLine());
30: b = Double.parseDouble(flujo.readLine());
31: c = (a*y + b/x/y)*PI;
32:
33: System.out.print ("("+a+"*"+y+" + "+b+"/"+x+"/"+y+")*PI = ");
34: System.out.println (c);
35: }
36: }
¿Qué sucede en la fila 31? ¿Por qué el compilador nos lanza un error?
¿Por qué hay error en las filas 17, 18, 27 y 28? ¿Cómo soluciona el problema sin volverlas una sola fila?
¿Es correcto el valor que se devuelve con la ejecución de la instrucción de la fila 22? ¿Por qué?
¿Cómo podemos obtener división real en la fila 25?
¿Qué diferencia existe entre double y float?
EJERCICIOS
1. Indique cuáles de los siguientes identificadores no son válidos y por qué. Haga este ejercicio con sus
conocimientos teóricos acerca del lenguaje JAVA y luego experimente con una computadora para
comprobar sus respuestas.
a) X_max d) _total g) si*no j) MiProblema
b) 5down e) si_o_no h) AAAAAAAA k) Mi Juego
c) SumaTotal f) contador2 i) long l) goto
a) (3*i-2*j)%(2*d-c) k) (i>0)&&(j<5)
b) 2*((i/5)+(4*(j-3))%(i+j-2)) l) (i>0)||(j<5)
c) -(i + j)/2 m) (x>y)&&(i>0)||(j<5)
d) i++; n) (x>y)||(i>0)&&(j<5)
e) i--; ñ) i%2 == 0
f) i<=j+3 o) (i >= 1) && (i <= 10)
g) c>d p) (i<1)||(i>10)
h) j!=6 q) i/j
i) c==99 r) (double) (i/j)
j) !(i <= j) s) (double) i/j
int numero;
a) El valor de numero se encuentra en el rango definido por las constantes MINIMO y MAXIMO.
b) El valor de numero es uno de los tres valores constantes VALOR1, VALOR2 o VALOR3.
c) El valor de numero se encuentra en el rango definido por las constantes MINIMO y MAXIMO, o bien es
igual al valor constante VALOR1.
9. Sean dos fechas dadas por (dia1, mes1, anyo1) y (dia2, mes2, anyo2), respectivamente. Escriba una
expresión lógica cuyo valor sea cierto si la primera fecha es igual o anterior a la segunda, y falso si es
posterior. Realice una tabla de verdad para demostrar la validez de su expresión.
"Un año es bisiesto si es divisible por 400, o bien si es divisible por 4 pero no por 100"
Dada una variable entera anio que representa un año, escriba una expresión lógica que tenga valor cierto si el
año es bisiesto y falso si no lo es. Para demostrar la validez de su expresión, haga una tabla de verdad.
x=5+y++;
Una vez respondidos todos los incisos, haga un pequeño programa en una computadora para comprobar sus
respuestas.
class MiClase
{ public static void main (String argv[])
{ int millas, yardas;
double kms;
INTRODUCCIÓN AL LENGUAJE JAVA UMSS
6/7 INF-SIS
millas = 26;
yardas = 385;
14. Escriba un programa similar al anterior, en este caso para convertir entre grados Fahrenheit a Celsius. La
fórmula de conversión es la siguiente:
º C = (º F + 32)
5
9
15. El siguiente programa calcula el área de un rectángulo cuyos datos se leen de la entrada estándar. ¿Qué
errores encuentra en el mismo?
import java.io.*;
class Ejemplo
{ public static void main (String args[]) throws Exception
{
float base, altura;
BufferedReader flujo;
flujo = new BufferedReader(new InputStreamReader(System.in));
16. Escriba un programa similar al anterior que calcule el área de un círculo. Defina el valor de π como una
constante.
17. Escriba un programa que lea un instante de tiempo expresado en horas, minutos y segundos y calcule el
número de segundos transcurridos desde las cero horas hasta dicho instante de tiempo.
Cochabamba - Bolivia