Ej Introjava

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

INTRODUCCIÓN

AL LENGUAJE JAVA ULTIMA REVISIÓN: 13-ABR-2002

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.

1. - Ingrese a MS-DOS. (Inicio à Programas à Accesorios à MS-DOS)


- Escriba la siguiente secuencia de comandos:
CD \
MD SuNombre
CD SuNombre

Usted ha creado una carpeta que tiene su nombre como identificador.

- 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?

INTRODUCCIÓN AL LENGUAJE JAVA UMSS


1/7 INF-SIS
3. - Utilice el archivo creado en el ejercicio 1 y añada en la fila 3, específicamente después de la coma (,),
lo siguiente: \n
- Vuelva a grabar su archivo, compílelo y ejecútelo. ¿Qué ha sucedido?
- Repita este ejercicio colocando otros \n en otros lugares de la fila 3. ¿Qué ocurre?
- ¿Qué hace exactamente \n?

4. - Repita el ejercicio 3, pero en vez de \n utilice \t. Comente sus resultados.


- ¿Qué hace exactamente \t?
- ¿Habrá otras variantes de \t y \n como \a o \1? Si las hay, indique cuáles son y qué hacen.

5. Copie el siguiente código, compílelo y ejecútelo.

1: class Declaraciones
2: { public static void main (String ar[])
3: { int x;
4: System.out.println (x);
5: }
6: }

¡¡ ¿Qué, no puede compilarlo? !! ¿Por qué? Modifíquelo para que funcione.

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.

x2 2x _x2 _2x x2k x4&3 goto true 'ax' #uno

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';

INTRODUCCIÓN AL LENGUAJE JAVA UMSS


2/7 INF-SIS
12:
13: String direccion,
14: nom="Juan", /* Solo nombre de la persona
15: apP="Perez", Apellido paterno
16: apM="Perez"; Apellido materno */
17:
18: System.out.println ("Hola " + nom + " " + apP + "" + apM);
19: }
20: }

- 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 /* */?

8. Copie el siguiente código y ejecútelo. ¿Qué observa?

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

2. Defina las siguientes constantes:


a) una constante EOF con valor -1.
b) una constante entera MAXIMO con valor 999.
c) dos constantes lógicas ABIERTO y CERRADO con valores true y false, respectivamente.
d) una constante ULTIMA_LETRA con valor ’Z’.
e) una constante real PI con valor 3.14159.
f) una constante real EPSILON con valor 0.0001 (utilice la notación científica).
g) una cadena constante MENSAJE con valor "Error en la entrada de datos".

3. Declare las siguientes variables:


a) dos variables c1 y c2 con valores iniciales ’A’ y ’B’ respectivamente.
b) dos variables enteras i, j.
c) una variable real d.
d) una variable encontrado de tipo lógico con valor inicial Falso.
e) una variable mayoria_de_edad con valor inicial 18.
f) una variable dia que indique que día de la semana es.

4. Indique el valor de las siguientes expresiones:


a) 3/2 d) 10.0/5*2.0 g) ’5’ - ’0’ j) 6/3*2
b) 3.0/2 e) 10.0/5/2 h) ’7’ - ’5’ k) 6/(3*2)
c) (int)3.0/2 f) 10.0/(5/2.0) i) ’a’ - 32 l) 1+2*3

INTRODUCCIÓN AL LENGUAJE JAVA UMSS


4/7 INF-SIS
5. Suponiendo declaradas y asignadas las variables

int i=8, j=5;


double x=0.005, y=-0.01;
char c=’c’, d=’d’;

indique los valores de las siguientes expresiones:

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

6. Dadas las siguientes definiciones de constantes

public static final int MINIMO = 1;


public static final int MAXIMO = 5;
public static final int VALOR1 = 7;
public static final int VALOR2 = 9;
public static final int VALOR3 = -1;

y la siguiente declaración de variable

int numero;

Escriba expresiones lógicas que sean verdaderas si:

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.

7. Dadas las siguientes expresiones matemáticas:


− b + b 2 − 4ac a3 a5
a) ax 2 + bx + c b) c) a − +
2a 6 120
1
1
1+
a+b x f) e sen (ln ( x +1)+1)+cos (ln ( x +1)+1)−1
2 2
d) e) 1 +
a×b 1
1+
1
1+
x

escriba las correspondientes expresiones en lenguaje JAVA.

INTRODUCCIÓN AL LENGUAJE JAVA UMSS


5/7 INF-SIS
8. Dada la declaración de variables.

int a=1, b=5, c=2;

indique el valor de la siguiente expresión lógica:

(((a < b) || (c == 1)) && !(b <= (a - c)))

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.

10. Para saber si un año es bisiesto se utiliza la siguiente regla:

"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.

11. Sean dos variables enteras x e y, y sea la asignación siguiente:

x=5+y++;

Desdoble la asignación en dos instrucciones de forma que el operador de incremento no intervenga en la


expresión. Una vez hecho esto, indique el valor que tendrán las variables x e y después de ejecutarse las
instrucciones, siendo el valor inicial de la variable y igual a 7.

12. Dadas las variables:

int i=5, j=7, edad=15;


double suma = 12.559;
char vocal = ’a’;

indique el resultado impreso por las siguientes instrucciones:

a) System.out.print ("El cuadrado de " + i + " vale " + i*i);


b) System.out.print (i + "+1 vale " + i+1);
c) System.out.println (i + "x" + j + " = " + i*j);
d) System.out.print (i + "+" + j + " = " + i+j);
e) System.out.println ("La suma es: " + suma);
f) System.out.println ("La edad de "+"Rosario"+" es "+edad+" años");
g) System.out.print ("Nombre\tEdad\n" + "Rosario" + "\t" + edad);

Una vez respondidos todos los incisos, haga un pequeño programa en una computadora para comprobar sus
respuestas.

13. Indique el resultado impreso del siguiente programa:

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;

kms = 1.609 * (millas + yardas/1760.0);


System.out.println("\nLa distancia del maratón es: " +kms +
" kilómetros\n");
}
}

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));

System.out.println ("\nCálculo del área de un rectángulo");


System.out.pritnln ("\nIntroduzca base y altura: ");

/* Leer base y altura */


base = Integer.parseInt(flujo.readLine());
altura = Integer.parseInt(flujo.readLine());

/* Calcular e imprimir área


area = base*altura;
System.out.println ("\n\nEl área del rectángulo es: "+area);
}
}

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.

Este documento fue actualizado por última vez el 13 de marzo de 2002.


Visite el sitio web: www.cs.umss.edu.bo/inf135/ para obtener una versión actualizada de este documento.

© 2000 - 2002 Departamento de Informática y Sistemas – Universidad Mayor de San Simón

Cochabamba - Bolivia

INTRODUCCIÓN AL LENGUAJE JAVA UMSS


7/7 INF-SIS

También podría gustarte