Importante. En todos los problemas que lean valores desde el
teclado y escriban en la pantalla, utilice las instrucciones de lectura
y escritura que le resulten más cómodas. Por otra parte,
no necesita incluir las instrucciones iniciales de los programas (import,
class, main).
1. Tres números enteros positivos a, b y c se consideran pitágoricos si cumplen con la relación a2+b2=c2. Por ejemplo 3, 4 y 5 son pitágoricos puesto que 32+42=52. Nótese que si los números representan las longitudes de los lados de un triángulo, entonces forman un triángulo rectángulo de catetos a y b e hipotenusa c.
Al respecto, escriba un programa que lea el valor de la hipotenusa y busque los valores de los catetos del triángulo rectángulo correspondiente, siguiendo el diálogo indicado en el siguiente ejemplo:
Determinar catetos de triangulo rectangulo
Ingrese valor de hipotenusa: 10
Catetos = 6 8
En caso que no se puedan obtener valores enteros para los catetos debe
responderse "Catetos no son enteros".
2.
a) Escribir un método (función) de encabezamiento
static public String borrar(String x, String y)
que elimine todas las apariciones de x en y. Por ejemplo, la invocación borrar("bra","abracadabra") entrega el string "acada".
b) Utilice el método anterior en un programa que lea todas las líneas de un archivo y las grabe en otro archivo eliminando todas las apariciones de los strings ":-)" y ":-(". El programa debe obtener el nombre del archivo de entrada siguiendo el diálogo indicado en el siguiente ejemplo:
Nombre de archivo de entrada ? carta
El resultado quedará en el archivo carta.out
3. Para operar con un número secreto generado por el computador
se dispone de la clase Secreto con los métodos indicados en la siguiente
tabla:
encabezamiento | significado | ejemplo |
---|---|---|
Secreto(int x,int y) | Constructor que calcula y guarda un Nº secreto (entero entre x e y generado al azar) | Secreto s = new Secreto(10,20) |
int comparar(int x) | -1 si Nº secreto < x, 0 si Nº secreto = x, 1 si Nº secreto > x | s.comparar(15) |
int menorMasCerca() | Entrega el Nº menor más cercano que ha sido comparado con el Nº secreto | s.menorMasCerca() |
int mayorMasCerca() | Entrega el Nº mayor más cercano que ha sido comparado con el Nº secreto | s.mayorMasCerca() |
a) escribir un programa que utilice la clase anterior para implementar un juego en que el usuario tenga que adivinar un Nº secreto generado por el computador, siguiendo las reglas y el diálogo indicado en el siguiente ejemplo:
adivine un Nº X entre 1 y 100
X ? 27 pregunta
X < 27
respuesta
X ? 15
X > 15
X ? 0
solicitar
ayuda
15 < x < 27 responder con menor
y mayor más cercanos
..
X ? 25
X = 25 Felicitaciones
b) Escriba las instrucciones del método comparar, considerando la siguiente declaración de la clase Secreto:
class Secreto {
private int secreto, menor, mayor;
public Secreto(int x,int y) { //constructor
secreto = x + (int)(Math.random()*(y-x+1));
menor = x - 1;
mayor = y + 1;
}
public int menorMasCerca(){ return menor; }
public int mayorMasCerca(){ return mayor; }
public int comparar(int x){ . . .}
}