Búsqueda de Google

Google

lunes, 16 de junio de 2008

Pruebas Anteriores

Pongo a su disposición algunas pruebas anteriores que me han enviado.

Prueba 1

Prueba 2


Prueba 3

miércoles, 11 de junio de 2008

Ejercicios de Objetos

Ejercicio 1
Escribir la salida a pantalla emitida por el siguiente programa sin ejecutarlo en la computadora.
Se recomienda ir anotando en un papel los valores que van tomando las variables durante la
ejecución. Posteriormente, verificar el resultado usando la computadora.
Descargar archivo.

Ejercicio 2
Se desea programar una clase que permita representar una colección acotada de valores
enteros. Para almacenar los valores de la colección, la clase utilizará como único atributo un
arreglo de acuerdo con la siguiente declaración:

public class ColeccionEnteros
{
private int [] arreglo;
...
}

El método constructor de la clase deberá recibir como parámetro el tamaño que deberá tener
el arreglo. Dentro del método, se deberá crear el arreglo con esa cantidad de celdas y
posteriormente se deberán cargar las mismas con valores generados al azar.
Además del método constructor, la clase deberá proveer los siguientes métodos:

  1. desplegarColeccion ( ). Este método deberá desplegar en pantalla todos los valores almacenados en el arreglo.
  2. existeValor (int valor). Este método deberá determinar si el valor recibido como parámetro forma parte del arreglo o no.
  3. maximoValor ( ). Este método deberá devolver el máximo valor almacenado en el arreglo.
  4. desplegarPosicionesMultiplo (int num). Este método deberá desplegar en pantalla todos los valores del arreglo almacenados en celdas cuyo índice sea múltiplo de num.
  5. promedioValores ( ). Este método deberá calcular el promedio de todos los valores almacenados en el arreglo.
  6. invertir ( ). Este método deberá invertir los valores almacenados en el arreglo. Es decir, el valor de la primer celda deberá intercambiarse con el valor de la última celda. El valor de la segunda celda deberá intercambiarse con el valor de la penúltima celda, y así sucesivamente.
  7. duplicarCeldasMultiplo (int valor). Este método deberá duplicar el valor de cada celda del arreglo que contenga un elemento que sea múltiplo del valor recibido como parámetro.
  8. hayRepetidos ( ). Este método deberá determinar si el arreglo posee al menos un valor repetido en más de una celda o no.
Observaciones:
Elija cuidadosamente las estructuras de control a utilizar en cada método. Recuerde que debe
elegir las que sean más apropiadas en cada caso.
Al implementar cada método, determine si corresponde implementarlo como una función o
como un procedimiento. Para ello, tenga en cuenta que, a no ser que la letra lo diga
explícitamente, no debe asumir que el método solicita desplegar valores en pantalla.

Ejercicio 3
Haga una clase llamada PruebaColeccion que permita probar los métodos del ejercicio
anterior. Dicha clase deberá tener solamente un método main, el cual deberá realizar las
siguientes acciones:

  • Crear un objeto de la clase ColeccionEnteros, pasándole como tamaño de su arreglo un valor generado al azar no menor a 5.
  • Desplegar los valores almacenados en la colección.
  • Determinar si el valor 2 forma parte o no de la colección, emitiendo en pantalla un mensaje apropiado.
  • Desplegar en pantalla el máximo valor almacenado en la colección.
  • Desplegar en pantalla aquellos valores de la colección que estén almacenados en posiciones que sean múltiplos de 3.
  • Desplegar en pantalla el promedio de todos los valores almacenados en la colección.
  • Invertir los valores de la colección, y posteriormente desplegarlos en la pantalla luego de invertidos.
  • Duplicar los valores de la colección que sean múltiplos de 5, y posteriormente desplegar nuevamente en pantalla todos los valores de la colección.
  • Determinar si la colección tiene o no al menos un valor repetido, emitiendo en pantalla un mensaje apropiado.

domingo, 1 de junio de 2008

Ejercicios de Strings

Ejercicio 1
Escribir, compilar y ejecutar una clase llamada Persona con los siguientes atributos: nombre,
apellido, edad.
Implementar los métodos constructores, selectores y modificadores para la clase.
Implementar una función llamada toString que devuelva un mensaje en forma de String
conteniendo los datos de la persona.
Implementar un procedimiento llamado printPersona que despliegue en pantalla los datos de
la persona. Este procedimiento debe invocar a la función anterior.
Implementar una función llamada añoNacimiento que reciba como parámetro el año actual y
calcule el año en el cual nació la persona en base a la edad de la misma.
Implementar una función llamada esMasJoven que determine si la persona sobre la cual se
aplica la función es más joven que otra persona recibida como parámetro.

Ejercicio 2
Escribir, compilar y ejecutar una clase llamada PruebaPersona que solamente tenga un método
main, el cual debe realizar las siguientes acciones:
Crear dos personas distintas.
Desplegar en pantalla los datos de cada una de ellas.
Determinar cuál de las dos personas es más joven, y desplegar en pantalla su nombre y su año
de nacimiento.

Ejercicio 3
Escribir la salida a pantalla emitida por el siguiente programa sin ejecutarlo en la computadora.
Se recomienda ir anotando en un papel los valores que van tomando las variables durante la
ejecución. Posteriormente, verificar el resultado usando la computadora.

Descargar código fuente.

miércoles, 28 de mayo de 2008

Ejercicios Adicionales de Objetos en Java

Ejercicio 1
Implemente una clase en Java que permita realizar operaciones sobre dos números. La misma debe tener dos atributos que son los números enteros con los que se va a operar. Debe disponer de un único constructor que reciba ambos atributos y cinco métodos, que son las operaciones que la misma brindará. Dichos métodos serán:

• obtenerSuma()
• obtenerResta()
• obtenerProducto()
• obtenerCociente()
• obtenerModulo()

Nota: Siempre consideramos el primero en relación al segundo, es decir, la resta será el primero menos el segundo y análogamente para los demás métodos. Para realizar el cociente y el módulo debemos chequear que el segundo número sea diferente a cero.

Implemente luego una clase de prueba que genere dos valores aleatorios, los muestre y luego ejecute las cinco operaciones, desplegando sus resultados.

Ejercicio 2
Implemente una clase en Java que permita realizar promedios. La misma debe tener dos métodos, uno para ingresar un nuevo número, llamado agregarNumero(int numero) y otro para obtener el promedio hasta el momento, llamado obtenerPromedio(). Determine qué atributos son necesarios para implementarla.

Implemente luego una clase de prueba que permita ingrese algunos valores y muestre el promedio. Utilice valores inventados por usted.

Ejercicio 3
Implemente una clase en Java que permita evaluar un polinomio de grado 3 en una abscisa determinada.
Para ello necesitará guardar como atributos los tres coeficientes y disponer de un método calcularValor(double x) que evalúe el polinomio en dicho valor de x.
Para realizar las potencias podrá utilizar la función Math.pow(base, exponente).

Implemente luego una clase de prueba que cree un polinomio de 3er grado y lo evalúe en algunos puntos inventados por usted.

lunes, 26 de mayo de 2008

Complemento para Ejercicios de Clases

Ejercicio 1

Compila y ejecuta la clase PruebaProductos presentada en la sección "Invocación de Métodos en Java". No olvides incluir en ella todas las invocaciones a procedimientos y funciones realizadas. Recuerda que debes guardar la clase en la misma carpeta que la clase Producto.

Ejercicio 2

Escribe una clase llamada PruebaRectángulos que posea solamente al método main. La clase debe guardarse en la misma carpeta que la clase Rectángulo que hiciste anteriormente. Dicho método main debe realizar las siguientes acciones. Luego debes compilar y ejecutar esta clase.
1. Construir dos rectángulos con dimensiones 20x5 y 8x15 respectivamente.
2. Calcular el perímetro y el área de cada uno de ellos, desplegando los resultados en la pantalla.
3. Determinar si los rectángulos son horizontales o verticales, emitiendo un mensaje apropiado por pantalla en cada caso.
4. Dibujar ambos rectángulos en la pantalla según sus representaciones con asteriscos.

Ejercicio 3

Modifica el método main de la clase PruebaRectángulos a efectos de probar invocaciones a los
restantes métodos de la clase Rectángulo.

Ejercicios de Clases

Ejercicio 1

Compila la clase Producto presentada en las secciones "Métodos Constructores", "Funciones"
y "Procedimientos". No olvides incluir en ella todos los métodos constructores, funciones y
procedimientos definidos para la clase a lo largo de los diferentes ejemplos. Por ahora no
vamos a ejecutar la clase porque la misma no cuenta con un método main. Más adelante en el
teórico haremos un método main que permita crear diferentes objetos de la Clase Producto e
invocar (llamar) a sus diferentes métodos.

Ejercicio 2

Escribe una clase llamada Rectángulo que posea dos atributos de tipo entero llamados largo y
ancho. Por ahora sólo vamos a compilar la clase, pero no la vamos a ejecutar porque no le
vamos a poner ningún método main. La clase debe poseer los siguientes métodos:
Un método constructor que no reciba ningún parámetro y que inicialice las dimensiones del
rectángulo (largo y ancho) con dos enteros positivos por defecto.

Otro método constructor que reciba el ancho y el largo como parámetros. Se debe chequear
que ambos valores sean positivos antes de asignárselos a los atributos correspondientes. En
caso contrario, se asignarán valores por defecto.

Métodos selectores y modificadores para la clase. Los métodos modificadores deben chequear
que las nuevas dimensiones efectivamente sean enteros positivos.

Una función que calcule y retorne el área del rectángulo. Esta función no necesita recibir
ningún parámetro.

Otra función que calcule y retorne el perímetro del rectángulo. Esta función no necesita recibir
ningún parámetro.

Otra función que determine si el rectángulo es horizontal o vertical. Decimos que el rectángulo
es horizontal si el valor del largo es mayor que el del ancho. En caso contrario, decimos que el
rectángulo es vertical. Esta función no necesita recibir ningún parámetro.

Un procedimiento que despliegue en pantalla los valores de las dimensiones (largo y ancho)
del rectángulo. Este procedimiento no necesita recibir ningún parámetro.

Otro procedimiento que dibuje en pantalla el rectángulo mediante asteriscos, utilizando tantas
columnas como valor tenga el largo y tantas filas como valor tenga el ancho. Por ejemplo, si el
ancho valiera 3 y el largo valiera 12, se debería desplegar así:

************
************
************

Este procedimiento no necesita recibir ningún parámetro.

sábado, 17 de mayo de 2008

Información para la Tarea

Esto no lo mencionamos, pero lo van a necesitar para resolver la tarea.
Para comparar Strings, no utilicen los operadores != ni ==.
Para comparar por igual, háganlo de la siguiente forma:

if (texto.equals("lo que quiero comparar"))

Mientras que para comparar por distinto, hacen lo mismo pero negándolo:

if (!texto.equals("lo que quiero comparar"))

Esto lo necesitan para comparar lo digitado con el asterisco.

miércoles, 14 de mayo de 2008

Tarea Obligatoria

Escriba un programa compuesto de una clase de nombre AdivinarNumero que contenga sólo al método main. Su objetivo será permitir que el usuario averigüe un número entero generado aleatoriamente y comprendido entre [0,100] que se almacenará, dentro del código del programa, en una variable int a la que se llamará numero.

El programa pedirá un número por teclado e informará de si el número que introduce el usuario es mayor o menor que el que se trata de averiguar. Si no se acierta a la primera, no importa porque tiene que dejar introducir números de forma ininterrumpida. Cuando el usuario acierte, se mostrará un mensaje de felicitación y el número de intentos empleados. A tener en cuenta:

  • Si el usuario introduce un numero no comprendido entre [0,100], el programa mostrará un mensaje informativo.
  • Si el usuario teclea asterisco, el programa deberá finalizar.
  • La generación aleatoria del número a adivinar se utilizará Math.random().
  • Para pedir el número por teclado basarse en el ejemplo que se detalla a continuación.
    Descargar código fuente.
Descargar código fuente de la tarea.
/*
* Para que el programa compile correctamente debe importarse el paquete java.io,
* ya que en él se encuentran las clases que se emplean para la captura de
* datos desde teclado. Esto se consigue con esta línea, que debe escribirse
* antes que cualquier declaración de clase. El asterisco indica que se tiene
* acceso a todas las clases de primer nivel del paquete.
* Los paquetes se estudiarán más adelante.
*/
import java.io.*;

public class SumaDatosTeclado{
public static void main(String args[])throws IOException{

//Creación del flujo para leer datos
InputStreamReader isr = new InputStreamReader(System.in);

//Creación del filtro para optimizar la lectura de datos
BufferedReader br = new BufferedReader(isr);
System.out.print("Teclea el primer numero: ");

//Lectura de datos mediante el método readLine()
String texto1 = br.readLine();

//Conversión a int de la String anterior para poder sumar
int num1 = Integer.parseInt(texto1);

System.out.print("Teclea el segundo numero: ");
String texto2 = br.readLine();
int num2 = Integer.parseInt(texto2);

//Sumar los dos enteros
System.out.println("Suma de " + num1 + " y " + num2 + " es " + (num1+num2));
}
}

lunes, 12 de mayo de 2008

Ejercicios Extras de Estructura de Control.

Más ejercicios para practicar las bases del lenguaje.
Descargar letra.

Próximamente se publicará una Tarea Obligatoria.

lunes, 5 de mayo de 2008

Entrega de Ejercicios

De la segunda serie de ejercicios de la entrada anterior, entregar del número 2 al 12 al este correo.
Los ejercicios 13, 14 y 15 los discutiremos en clase.

Dado que no hubo un gran porcentaje de entregas, asumo que existieron dificultades en la resolución de esta serie de ejercicios. Vamos a plantearlos en clase y discutir su resolución.