Practicum 2     Entrada y Salida de datos + Conociendo Java por dentro


(*) El Ayudante alumno NO deberá interferir y/o manipular los códigos que los alumnos estén realizando en los Laboratorios, y por otro lado los alumnos NO deberán solicitar ayuda del tipo antes descrito.


Prerequisitos

• Leer el Capítulo I del Libro Guía "Programación en Java2" y visto enlace http://dns.uls.cl/~ej/java-2002/jdk_public/index.html

• Revisar las Estructuras de Control (if , while, do, ....etc), tipos de datos, operaciones básicas con métodos de Java y  funciones(llamada método en Java).


Clases de Flujos de datos

(Java no tiene un método de entrada por consola generalizado que sea simila a la función scanf() de C o a los operadores de entrada de C++) .
Se sabe que todos los programas Java importan automáticamente el paquete java.lang. Dentro de este contexto Java implementa los flujos de datos dentro 
de una jerarquía de clases definida en el paquete java.io. Este paquete define una clase llamada System que encapsula algunos aspectos del entorno de ejecución. 
En particular System.in hace referencia a la entrada estandar, que es por defecto el teclado. Otra alternativa es usar las herramientas que posee la clase javax de la 
distribución Java, la que contiene JOptionPane.

 

 

Aplicación 1.
//evaluar polinomios
class evalPoli
{
public static void main (String[] args ) throws IOException
{

  double x // un valor para usar con el polinomio en su evaluación  
  String responde = "s";         // "s" o "n"

  while ( responde.equals( "s" ) )    
  {
	 // prompt solicitando datos para x

	 // evalue el polinomio que desee por ejemplo 7*x*x*x - 3*x*x + 4*x - 12

	 // print el resultado

	 // envie un mensaje al usuario si desea continuar o no
	 // el usuario respondera

  }

 }
}
Complete lo solicitado (en negrita)de manera que se alcance el objetivo pedido, 
además deme un criterio para decir donde aproximadamente se encuentra una raíz real.

 

Aplicación 2.
Completar para obtener una variante de las entradas de datos usuales.
En este caso, una vez que termina la cantidad de datos ingresados en la linea
se procede a sumar...
_____________;
_____________ ;

public class sumaActual
{

 public static void main ( String[] args ) throws IOException
 {
   StringTokenizer tok;
   int sum = 0;

   BufferedReader inData = new BufferedReader 
	   ( new InputStreamReader( System.in ) );

   System.out.println("Ingrese los datos:" );
   String inString = inData.readLine();
   tok = new StringTokenizer( inString );

   .....
   .....
   System.out.println("La suma es: " + sum );
 }
}
La viaualización es
wpe1.jpg (18965 bytes)

 


Conociendo Java por dentro

 
Java es un lenguaje muy rico en clases, la dificultad para el novicio es determinar que clase importar para que pueda soportar el o los métodos 
que esta usando. En este sentido el siguiente ejemplo usa el paquete de utilidad  java.lang.Math. El cual lo encontrara en la distribución de java. 
Vea el directorio src , y sino esta descomprimido use el comando jar -xvf src.jar para hacerlo.

 

 // Test para la conversión de grados a radianes y viceversa

class Angulos {
  public static void main(String args[]) {
    double theta = 120.0;

    System.out.println(theta + " grados es " +
                       Math.toRadians(theta) + " radianes.");

    theta = 1.312;
    System.out.println(theta + " radianes es " +
                       Math.toDegrees(theta) + " grados.");
  }
}
Aplicación 3.
/* En los tiempos de ejecución normalmente se necesita conocer 
un método para poder comparar empíricamente tiempos de ejecución entre 2 programas, 
en tiempo real, no en forma teórica, o a través de operadores. 
Vea en java.lang.System el método apropiado, encuentrelo e implemente una demo.
*/
Aplicación 4.
/* Convertir un entero a binario, hexadecimal, y octal es una tarea muy recurrente, 
por eso que Java implemento estas funciones y otras mas. 
La misión es construirse un programa que realice esta tarea usando las funciones 
estandares que tiene Java. El reto es poder encontrarlas 
(una pista ....busque en java.lang.Integer). Implemente una demo.
*/
Aplicación 5.
(Ejerc 6.12, Deitel3Ed.) 
Escribir la declaración que asigna enteros random (al azar) a la variable n 
en los rangos. 
(a) 1 <= n <= 2. 
(b) 0 <= n <= 9. 

 

 

Factorial en ViVo

Cultura General

Esta es una versión Web de la función Factorial:

Pruebe algunos valores para N que prueben los limites: -1, 0, 1. Luego pruebe algunos valores pequeños como 6 o 12.
Cuando usted prueba un valor de aproximadamente 25 quedara sorprendiendo. ¡Los números que el programa da para factorial son muy grandes! De hecho, ellos son tan grandes que ellos tienen que ser expresados en notación científica. JavaScript (en que este programa se escribe) hará esto automáticamente. Java no hará esto, hay una diferencia importante de cómo este programa se comporta y cómo el programa en Java se comporta, NO CONFUNDIR JavaScript con Java. Si usted necesitara los valores de factorials grande, usted tendría que usar una precisión doble. Esto no es completamente satisfactorio, por la exactitud ( punto flotantes sólo tienen aproximadamente 15 decimales de exactitud).

 

Ingrese N:

 

 
Objetivo del Practicum 2 fue:
  • Conocer las diversas entradas y salidas de datos ya sea a través de la usual 
BufferedReader de la distribución usual de Java, alguna otra clase como la de Corsmann
autor del Libro Core Java, o la aplicación del paquete swing con la clase JOptionPane.
  • Usar las Estructuras de Control para tener el control del flujo de datos tanto en su entrada como en su salida.
  • Además, se pretende que el alumno vaya conociendo la distribución y la ubicación 
de los paquetes que le pueden ser de utilidad, en este caso se ha visto el
paquete java.lang.* (con Character, Integer, Math......etc.).
  • Java y JavaScript son dos mundos diferentes!!