Sie sind auf Seite 1von 18

1. a) Disee e implemente en Java una clase para trabajar con tringulos issceles.

Para ello,
defina
las variables de ejemplar mnimas que requiera, proporcione mtodos de consulta, un mtodo
constructor e implemente otros mtodos para calcular el permetro y el rea de un tringulo.
b) Implemente en Java un mtodo que a partir de una matriz de tringulos devuelva el rea del
tringulo de mayor superficie

package tarea;
import java.util.Scanner;
public class Tarea {
//Mtodo para calcular el rea de un tringulo
public static void Areatri ( double a, double b ){
double c1;
double area,
c = (((2*a)+b)/2);
c1 = (c*(c-a)*(c-a)*(c-b));
area =(float) Math.pow(c1,0.5);
System.out.printf("El rea del tringulo es igual a: %.4f", area);
System.out.println("");
}
//Mtodo para calcular el Permetro de un tringulo
public static void Pertrian ( float a, float b ){
float perim = ((a*2)+ b);
System.out.println("El permetro del trngulo es igual a: "+ perim);
}
public static void main(String[] args) {

Scanner ent = new Scanner (System.in);


Scanner ent1 = new Scanner (System.in);
System.out.println("Men tringulo isosceles");

System.out.println("1. rea ");


System.out.println("2. Permetro");
System.out.println("Ingrese la opcin a calcular: ");
double a, b;
int x = ent.nextInt();
float d, c;

switch ( x){
case 1:
System.out.println("Clculo del rea");
System.out.println("Ingrese la longitud de los lados iguales: ");
a = ent1.nextDouble();
System.out.println("Ingrese la longitud del lado diferente");
b = ent1.nextDouble();
double a1 = 2*a;
if ( a1 > b){
Areatri(a,b);
}
else{
System.out.println("Los lados no pertenecen a un tringulo ");
}
break;

case 2:
System.out.println("Clculo del permetro");
System.out.println("Ingrese la longitud de los lados iguales: ");

c = ent1.nextFloat();
System.out.println("Ingrese la longitud del lado diferente");
d = ent1.nextFloat();
float a2 = (float) (2*c);
if ( a2 > d){
Pertrian (c,d);
}
else{
System.out.println("Los lados no pertenecen a un tringulo ");
}
break;
}
}
}

2. El siguiente diagrama de clases, incompleto, representa la estructura bsica de un programa


para
recopilar los encargos de productos de una compaa.
Encargo
encargoID
fecha
valor
Producto
ID
coste
Cliente
nombre
direccin
pago( )
Cliente
corporativo
cuenta
pago( )
Cliente
particular
tarjetaNmr
pago( )
1
*
*1

Escriba una versin en Java

3. Dada la siguiente relacin de asociacin entre las clases A y B. Indique como


se implementara
a) Un objeto de A hereda de B
b) Un mtodo de B tiene como parmetro un objeto A

se implementa de esta forma ya que una clase tiene un mtodo para acceder o
controlar la otra clase.

c) Un atributo de ejemplar de B es un objeto A


d) Ninguna de las anteriores es cierta

4.
El resultado es 24,37
5.
El programa imprime lo siguiente:
8 9 9 10 13 14
6. Desarrolle un programa que sirva para evaluar el valor de un polinomio,
cuyo grado y coeficientes se introducen por teclado, en un valor de abscisa
determinado.
package tarea;

import java.util.Scanner;
public class Polinomio {
public static void main (String [] args) {
Scanner ent = new Scanner (System.in);
System.out.println("6. Desarrolle un programa que sirva para evaluar el
valor de un polinomio, cuyo grado y coeficientes\n" +
"se introducen por teclado, en un valor de abscisa determinado.");

System.out.println("Polinomio evaluado en el valor de abscisa 5");

int x = 5;
System.out.println("Ingrese el primer coeficiente");
int a = ent.nextInt();
System.out.println("Ingrese el primer grado");
int q = ent.nextInt();
System.out.println("Ingrese el segundo coeficiente");
int b = ent.nextInt();
System.out.println("Ingrese el segundo grado");
int w = ent.nextInt();
System.out.println("Ingrese el tercer coeficiente");
int c = ent.nextInt();
System.out.println("Ingrese el tercer grado");
int e = ent.nextInt();

float pol;
pol = (float) ((float) (a*(Math.pow(x,q)))+(b*(Math.pow(x, w)))+
(c*(Math.pow(x, e))));
System.out.println("El valor del polinomio ingresado, evaluado en 5 es
igual a: "+ pol);
}
}
7. Cul es el error del siguiente programa?

class Cuenta {
protected int numero_cuenta;
protected double saldo;
public Cuenta(int cuenta, double inicial) {
numero_cuenta=cuenta;
saldo = inicial;
} // Fin constructor cuenta
public void depositar(double cantidad) {
saldo = saldo + cantidad;
} // Fin mtodo deposito
public double saldo(){
return saldo;
} // Fin mtodo saldo
}//fin clase Cuenta
class Banco {
public static void main(String [] args) {
//Se crea la cuenta
Cuenta cuenta_1 = new Cuenta(123456, 2505.32);
// Se consulta el saldo
double total_cuenta=cuenta_1.saldo;
System.out.println(Total actual en la cuenta:
+total_cuenta + Euros);
}//del main
}//de la clase Banco
NO EXISTE ERROR

8. Un teatro se caracteriza por su nombre y su direccin y en l se realizan 4 funciones al da.


Cada
funcin tiene un nombre y un precio. Realice el diseo de clases e indique qu mtodos tendra
cada
clase, teniendo en cuenta que se pueda cambiar el nombre del teatro y el nombre y precio de la
funcin. Implemente dichas clases.

class Teatro {
String Nombre="Duran";
String Direccion="Abel GIlbert"
void CambiaNombre(String nombre){
teatro=nombre;
}
void PeliculasDefecto(ArrayList<String> t){
t.add(0,"Vengadores");
t.add(1,"TED");
t.add(2,"Efecto Mariposa");
t.add(3,"Vengadores");
}
void PreciosDefecto(ArrayList<Double> p){
p.add(0,2.50);
p.add(1,3.50);
p.add(2,0.50);
p.add(3,1.50);
}
void muestra(ArrayList<String> A){
int i;
for(i=0;i<A.size();i++){
System.out.println(" " + (i+1) +" " + A.get(i));
}
}
void muestra2(ArrayList<Double> M){
int i;
for(i=0;i<M.size();i++){
System.out.println(" " + (i+1) +" " + M.get(i));
}
}
}
class Homework {
public static void main(String [] args) {
//Creando Array Lists
ArrayList <String> teatro=new ArrayList();
ArrayList <Double> precio=new ArrayList();
Cuenta muestra=new Cuenta();
String NombreTeatro=new String();
Scanner teclado=new Scanner(System.in);
Cuenta funcion=new Cuenta();
int modificar;

double NuevoPrecio;
String NuevoNombre=new String();
System.out.print("Teatro\n\n");
System.out.print("Ingrese Nombre del Teatro : ");
NombreTeatro=teclado.nextLine();
funcion.CambiaNombre(NombreTeatro);
System.out.print("\nTeatro "+ NombreTeatro+ "\n\nFunciones Disponibles y
sus Precios\n");
muestra.PeliculasDefecto(teatro);
muestra.PreciosDefecto(precio);
muestra.muestra(teatro);
muestra.muestra2(precio);
System.out.print("\nIngresa Numero de Funcion con su precio a Modificar :
");
modificar=teclado.nextInt();
modificar=modificar-1;
System.out.println("\n\nNombre de Funcion a Ingresar : ");
NuevoNombre=teclado.nextLine();
NuevoPrecio=teclado.nextDouble();
teatro.set(modificar,NuevoNombre);
precio.set(modificar,NuevoPrecio);
muestra.muestra(teatro);
muestra.muestra2(precio);
}
}

9. Qu imprime el siguiente programa? b) Y si prop en Clase1 no la declaramos como static?


class Ejercicio {
public static void main (String [] args) {
Clase1 obj1= new Clase1(7);
Clase1 obj2= new Clase1(9);
obj2=obj1;
System.out.print(obj1.valorprop()+" ");
System.out.print(obj2.valorprop()+" ");
}//fin main
}

class Clase1{
static int prop=0;
public Clase1 (int valor){
prop=valor;
}
public int valorprop(){
return prop;
}
}
Imprime :
9

Sin static:
7

10. Dado el siguiente fragmento de cdigo:


Ordenador sobremesa; Ordenador portatil;
sobremesa = new Ordenador();
sobremesa.precio(900);
portatil = new Ordenador();
portatil.precio(1100);
portatil = sobremesa;
sobremesa = null;
Qu afirmacin es cierta?
a) Al final tanto el objeto sobremesa como el objeto porttil apuntan anull
b) Al final slo queda un objeto de tipo Ordenador con precio 1100
c) Al final slo queda un objeto de tipo Ordenador con precio 900
d) Al final hay dos objetos de tipo Ordenador, uno con precio 900 y otro con precio 1100

Es verdadera la B

11. Implemente un programa que muestre por pantalla el resultado de


la suma y el producto de dos
nmeros complejos. Adems, el programa deber comprobar si dos
nmeros complejos dados son
iguales y tambin deber multiplicar un nmero complejo por un
entero. Para ello:
a) Dibuje el diagrama UML de la/s clase/s implicada/s, indicando todos sus miembros.
b) Implemente el cdigo de la/s clase/s en Java.
c) Implemente un programa principal que muestre por pantalla el nmero complejo (en la forma
x+yi)

resultante de la suma y el producto de dos nmeros complejos dados, as como el resultante de la


multiplicacin de un nmero complejo por un entero. Adems, el programa deber indicar si los dos
nmeros complejos introducidos son iguales.
Nota: Sean a y b dos nmeros reales*, el par (a, b) se llama nmero complejo, si la igualdad, la
adicin y la multiplicacin de pares se definen del modo siguiente:
a) Igualdad: (a,b) = (c,d ) a = c b = d
b)Suma: (a,b) + (c,d ) = (a + c,b + d )

c) Producto: (a,b) (c, d ) = (ac bd , ad + bc)


El nmero complejo (a, b) puede expresarse en la forma a+bi. Tambin se puede definir la
operacin
multiplicacin de un nmero complejo por un entero de la siguiente forma:
Multiplicacin por un entero: (a,b) = ( a,b)
* Por simplicidad considere a y b como enteros.

class NumeroComplejo{
class operaciones{
void TodasOperaciones(){
int x,y,a,b,sumI,sumR,multR,multI,entero;
Scanner teclado=new Scanner(System.in);
System.out.println("Ingrese cualquier Numero Entero: ");
entero=teclado.nextInt();
System.out.println("Ingrese Parte real del Numero Complejo 1: ");
x=teclado.nextInt();
System.out.println("Ingrese Parte Imaginaria del Numero Complejo 1: ");
y=teclado.nextInt();
System.out.println(+x +"+" +y+"i");
System.out.println("Ingrese Parte real del Numero Complejo 2: ");
a=teclado.nextInt();
System.out.println("Ingrese Parte Imaginaria del Numero Complejo 2: ");
b=teclado.nextInt();
System.out.println("\n"+a +"+" +b+"i");
if(x==a && b==y){
System.out.println("Los Numeros COmplejos son Iguales");
}
else {
System.out.println("Los Numeros COmplejos son Diferentes");
}
sumR=a+x;
sumI=y+b;
System.out.println("La suma de los 2 Numeros Complejos es "+sumR
+"+" +sumI+"i");
multR=(x*a)-(y*b);
multI=(x*b)+(y*a);
System.out.println("La Multiplicacion de los 2 Numeros Complejos es
"+multR +"+" +multI+"i");
System.out.println("La Multiplicacion del entero" +entero +" con el
Numeros Complejo 1 es "+(entero*x) +"+" +(entero*y)+"i");
System.out.println("La Multiplicacion del entero " +entero +"con el
Numeros Complejo 2 es "+(entero*a) +"+" +(entero*b)+"i");
}
}

}
class Homework{
public static void main(String[] args){
NumeroComplejo num=new NumeroComplejo();
num.pedirNumero();
}
}

12. Qu imprime el siguiente programa?


class Principal {
public static void main(String[] args) {
Autor autor =new Autor ("Paul", "Auster");
Libro libro= new Libro ("La triloga de Nueva York", autor);
System.out.println (libro.getTitulo()+" de " +
(libro.getAutor()).toString());
}
}
class Libro {
private String titulo;
private Autor autor;
public Libro(String titulo, Autor autor) {
this.titulo = titulo;
this.autor = autor;
}
public Autor getAutor() {
return autor;
}
public String getTitulo() {
return titulo;
}
}
class Autor {
private String nombre;
private String apellido;
public Autor (String nombre, String apellido) {
this.nombre = nombre;
this.apellido=apellido;
}
public String toString () {
return nombre+ " " +apellido;
}
}
Imprime:
La triloga de Nueva York de Paul Auster

13. Qu imprime el siguiente programa?


class Alumno {
String nombre = "Alumno 1";
char grupo ='A';
char devolvergrupo() {
return grupo;
}
void cambiargrupo(char nuevogrupo) {
grupo = nuevogrupo;
}
void imprimir() {
System.out.println("Nombre: " + nombre);
System.out.println("Grupo: " + devolvergrupo());
}
}
class Principal {
public static void main (String[] args) {
Alumno a1 = new Alumno();
System.out.println("Objeto a1:\n-----------\n");
a1.imprimir();
System.out.println("\nLlamada al metodo prueba1(a1).\n");
prueba1(a1);
a1.imprimir();
System.out.println(" ");
Alumno a2 = new Alumno();
System.out.println("\nObjeto a2:\n-----------\n");
a2.imprimir();
System.out.println("\nLlamada al metodo prueba2(a2).\n");
prueba2(a2);
System.out.println("\nEn main: Fuera ya del metodo prueba2. \n");
a2.imprimir();
}
static void prueba1(Alumno b) {
b.cambiargrupo('B');
}
static void prueba2(Alumno b) {
b = new Alumno();
b.cambiargrupo('B');
System.out.println("\nDentro del metodo prueba2. \n");
b.imprimir();
}
}
Imprime:

Objeto a1:
----------Nombre: Alumno 1
Grupo: A
Llamada al metodo prueba1(a1).

Nombre: Alumno 1
Grupo: B
Objeto a2:
----------Nombre: Alumno 1
Grupo: A
Llamada al metodo prueba2(a2).
Dentro del metodo prueba2. Nombre: Alumno 1
Grupo: B
En main: Fuera ya del metodo prueba2.
Nombre: Alumno 1
Grupo: A

14. En una tienda cada factura se representa por su nmero y


una serie de productos. Cada producto se caracteriza por su
cdigo alfanumrico y su precio. Se pide:
a) Dibujar el diagrama de clases indicando las relaciones entre las mismas y los
miembros que hay
en cada una. Debe incluir mtodos para la consulta del nmero de factura y
el/los productos de la
factura y mtodos para actualizacin de los datos del/los productos.
b) Implemente en Java dichas clases
c) Implemente un programa principal donde se imprima una factura con los
siguientes productos:
(cdigo: C1, precio: 24 euros), (cdigo: H23, precio: 234 euros) y (cdigo: M30,
precio: 109
euros). A continuacin debe cambiarse el segundo producto de la factura por el
siguiente
(cdigo: K123, precio:247 euros) y volver a imprimir la factura

class Tienda {
String Nombre="Santa Isabel";
void PreciosDefecto(String B[][]){
/*
p.add(11,5.2;8);
p.add(1,3.50);
p.add(2,0.50);
p.add(3,1.50);*/
B[1][0]="c1";
B[1][1]="$24 Dolares";
B[2][0]="H23";
B[2][1]="$234 Dolares";
B[3][0]="M30";
B[3][1]="$109 Dolares";
}
class Factura{
void muestra(String B[][]){
int i,j;
for(i=0;i<4;i++){
for(j=0;j<2;j++){
System.out.print(B[i][j] +"\t");
}
System.out.print("\n");
}
}
}
class Homework {
public static void main(String [] args) {
//Creando Array Lists
Cuenta muestra=new Cuenta();
String arr[][]=new String[4][2];
arr[0][0]="CODIGO";
arr[0][1]="PRECIO";
muestra.PreciosDefecto(arr);
muestra.muestra(arr);
System.out.println("\n-------------\nTOTAL:$367 Dolares");
System.out.println("\n\nCambiaremos el 2 do Codigo de la Factura por un
Error\n\n");
System.out.println("Por Modificar: \n\nCodigo K123 Precio 247 Euros\n\n\n");
arr[2][0]="K123";
arr[2][1]="$247 Dolares";

muestra.muestra(arr);
System.out.println("\n-------------\nTOTAL:$380 Dolares");
}
}
15. Escriba un programa que use una lista enlazada para gestionar una serie de libros identificados
por su ttulo. El programa debe ser capaz de ir aadiendo libros a la serie mantenida y de poder
imprimir los ttulos de toda la serie cuando se le indique. Como ejemplo use los siguientes libros:
Niebla, La Metamorfosis y El callejn de los milagros

package tarea;

import java.util.ArrayList;

import java.util.Scanner;
class Libro{

void LibrosDefecto(ArrayList<String> A){

A.add(0,"Metamorfosis");
A.add(1,"Niebla");
A.add(2,"El Callejon de los Milagros");
}
void muestra(ArrayList<String> A){
int i;
for(i=0;i<A.size();i++){
System.out.println(" " + (i+1) +" " + A.get(i));
}
}

void menu(){
System.out.println("SERIE DE LIBROS");
System.out.println("\n\n[1] Ingrese mas Libros a las Serie");
System.out.println("[2] Muestre la Serie de Libros Existentes");
System.out.println("Opcion: ");
}
void IngresaLibro(int cant,ArrayList<String> lista){
int i;
ArrayList <String> Serie=new ArrayList();
String Nombre=new String();
Scanner teclado=new Scanner(System.in);
for(i=0;i<cant;i++){
System.out.println("Ingrese Nombre del Libro: ");
Nombre=teclado.nextLine();
Serie.add(i,Nombre);
}
lista.addAll(Serie);
}
}

class Homework {
public static void main(String [] args) {
ArrayList <String> Serie=new ArrayList();
Libro libro=new Libro();
Scanner teclado=new Scanner(System.in);
int opcion,op;

libro.LibrosDefecto(Serie);
do{
libro.menu();
opcion=teclado.nextInt();}
while(opcion!=1 && opcion!=2);

switch(opcion){
case 1:
int cantidad;

System.out.println("Ingrese Cant. de Libros a Ingresar: ");


cantidad=teclado.nextInt();
libro.IngresaLibro(cantidad, Serie);
System.out.println("Desea Imprimir la Serie de Libros:");
System.out.println("[1]Si\n[2]No");
op=teclado.nextInt();
switch(op){
case 1:
libro.muestra(Serie);
return;
case 2:
return;
}
case 2:
libro.muestra(Serie);
return;

}
}
}
Imprime:
C) rojo azul.