Vous êtes sur la page 1sur 3

Programación avanzada en Java – Práctica I

1. Escribir un programa que imprima una tabla de conversión de grados centígrados a fahrenheit para las
temperaturas en centígrados entre 1 y 100 grados.

2. a) Definir las clases necesarias para representar puntos, vectores y rectas del plano.
b) En el apartado anterior has escogido una de las posibles formas de definir una recta (p.e. coeficientes de la
ecuación implícita). Define distintos constructores para permitir otras formas alternativas de crear rectas (p.e.
un punto y un vector).
c) Definir las funciones necesarias para realizar las siguientes operaciones:
− Distancia entre dos puntos
− Distancia de una recta a un punto
− Determinar si dos rectas son paralelas
− Pertenencia de un punto a una recta

Opcional: modificar las clases anteriores para definir los objetos correspondientes en IR3. Definir la clase
Plano con sus constructores y una función que determine si dos planos son perpendiculares.

Sugerencias:
− Establece para las variables y métodos las modalidades de acceso que consideres adecuadas.
− Para cada paso, escribe un pequeño programa main que utilice las clases definidas, para comprobar
que funcionan correctamente.

3. Definir una clase Polinomio que permita:


− Suma de polinomios.
− Obtención del valor de un polinomio en un punto.
− Obtención del grado del polinomio.
− Obtención del coeficiente i-esimo.
− Conversión a String.
− Opcional: cálculo de la derivada
A continuación ejecutar la función main definido en TestPolinomio.java (ver al final) y comprobar que la salida
obtenida coincide con la que se recoge en el fichero SalidaPolinomio.txt. ( ver al final)

4. Escribir una clase Matriz con la siguiente funcionalidad:


a) Un constructor que lea los valores de la misma de un fichero de texto con el siguiente formato:
− En las dos primera líneas se indican las dimensiones m, n (nº de filas y nº de columnas) de la matriz.
− A continuación todos los términos de la matriz: a11 a12 ... a1n a21 a22 ..., un término por línea.
b) Un método suma.
c) Un método producto.

5. La siguiente función ordena una lista de números decimales por el método de la burbuja:
void ordenar (double lista[], int n) {
int i, j;
for (i = 0; i < n; i++)
for (j = n-1; j > i; j--)
if (lista[j] < lista[j-1]) intercambiar(lista,j,j-1);
}
d) Definir la función intercambiar, necesaria para la función anterior.
Comprobar la corrección del código con un programa main que ordene una lista de números.
e) Generalizar la función ordenar para que ordene listas de cualquier tipo de datos sobre los que tenga sentido
definir una relación de orden.

Programa CITIUS de iniciación profesional en la empresa 1/3 Universidad Autónoma de Madrid, Escuela Politécnica Superior
Indicación: definir una interface Ordenable, con un método de comparación menor(Ordenable).
f) Definir las clases Persona y Automovil, de forma que los objetos de estas clases se puedan ordenar por
apellido y precio respectivamente.
Escribir un programa main que cree listas de estos objetos y las ordene, para comprobar la corrección de los
métodos definidos.
g) Definir las clases Rectangulo, Circulo y Figura, de tal manera que sea posible ordenar listas de figuras
por área. Escribir un programa main.

6. Escribir un programa que sea una calculadora matemática. Por simplicidad, esta calculadora deberá admitir sólo
las operaciones de suma y multiplicación (sería un ventana con los botones: 0,1,2,3,4,5,6,7,8,9,+,*,=).

7. Escribir un applet que incluya un botón (hora), de modo que al pulsarlo, aparezca la hora exacta.

8. Escribir un applet que se comporte como un reloj, mostrando la hora exacta cada segundo (para ello se deberá
utilizar un hilo auxiliar).

Programa CITIUS de iniciación profesional en la empresa 2/3 Universidad Autónoma de Madrid, Escuela Politécnica Superior
FICHERO "TestPolinomio.java"
public class TestPolinomio {
public static void main(String args[ ]) {
double coefs1[] = {3, 0, 0, 0, -3};
double coefs2[] = {1, 1, -2, 0, 1, 0, 6};
double []x = {1.0, 2.0, 3.0};
Polinomio pol1 = new Polinomio(coefs1);
Polinomio pol2 = new Polinomio(coefs2);
Polinomio pol3;

//Polinomio 1
System.out.println("El polinomio 1, " + pol1.toString() + ", es de " + pol1.dameGrado() + "º grado");
System.out.println("Algunos valores para el polinomio 1:");
for(int i=0;i<x.length;i++)
System.out.println("f(" + x[i] + ") = " + pol1.f(x[i]));

//Polinomio 2
System.out.println("El polinomio 2, " + pol2 + ", es de " + pol2.dameGrado() + "º grado");
System.out.println("Algunos valores para el polinomio 2:");
for(int i=0;i<x.length;i++)
System.out.println("f(" + x[i] + ") = " + pol2.f(x[i]));
pol3 = pol1.suma(pol2);

//Operaciones con ambos polinomios


System.out.println("La suma es " + pol3 + " es de " + pol3.dameGrado() + "º grado");
pol3 = pol1.multiplicacion(pol2);
System.out.println("La multiplicacion es " + pol3 + " es de " + pol3.dameGrado() + "º grado");
}
}

FICHERO " SalidaPolinomio.txt"


El polinomio 1, f(x) = -3.0*x^4 + 3.0, es de 4º grado
Algunos valores para el polinomio 1:
F(1.0) = 0.0
F(2.0) = -45.0
F(3.0) = -240.0
El polinomio 2, f(x) = 6.0*x^6 + 1.0*x^4 -2.0*x^2 + 1.0*x + 1.0 es de 6º grado
Algunos valores para el polinomio 2:
f(1.0) = 7.0
f(2.0) = 395.0
f(3.0) = 4441.0
La suma es f(x) = 6.0*x^6 -2.0*x^2 + 1.0*x + 4.0 es de grado
La multiplicación es f(x) = -18.0*x^10 -3.0*x^8 + 24.0*x^6+c.0*x^5 -6.0*x^2 + 3.0*x + 3.0 es de 10º grado

Programa CITIUS de iniciación profesional en la empresa 3/3 Universidad Autónoma de Madrid, Escuela Politécnica Superior

Vous aimerez peut-être aussi