POO Tarea 1 Objetos y Clases.docx

20
ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN PROGRAMACION ORIENTADA A OBJETOS – 2012 -II TARE 3 – CLASES Y OBJETOS 1. Diseñe e implemente en Java una clase para trabajar con triángulos isósceles. Para ello, defina las variables de ejemplar mínimas que requiera, proporcione métodos de consulta, un método constructor e implemente otros métodos para calcular el perímetro y el área de un triángulo. class Triangulo { int base=100; int altura=200; int perimetro(int l1,int l2){ return l1+l1+l2; } int area (int base,int h){ return ((base*h)/(2)); } void menu(){ System.out.print("\t\t\tMenu Triangulo Isoceles\n\n"); System.out.print("\t[1] Calcula Area\n"); System.out.print("\t[2] Calcula Perimetro\n"); System.out.print("\tIngrese Opcion: "); } } class Homework{ public static void main (String args[]){ Triangulo x; int resultArea,resultPerimetro; int opcion; int base,altura,ladosIguales,ladoDesigual; Scanner teclado; teclado=new Scanner(System.in); x=new Triangulo(); do{ x.menu(); opcion=teclado.nextInt(); } while(opcion!=2 && opcion!=1); switch(opcion){ case 1:

description

Resumen:Objeto:Es aquel que tiene Atributos y Metodos.A los objetos se los conoce como Instancia.Metodos de Instancia o metodos miembro se refiere a las acciones que puede hacer el ObjetoEncapsulamiento: Accion de Proteger las variables de instancia mediante los metodosAsi las variables solos podran cambiarse solo mediante los metodosMetodos:Determinan como se va a comportar el ObjetosAtributos:Son las propiedades o caracteristicas del ObjetoLos atributos de la clase estan representadas por VariablesExisten 4 Niveles de Acceso:- Public- Private- Default-ProtectedVentajas de Encalupsar- Facilidad de Mantenimiento- Creacion de Modulos- No necesitamos saber como estan implementados los metodosClase:Son plantillas de las cuales podemos crear objetos... En una clase puede haber uno o mas metodos-------------------------------------------------------------Resumen:Objeto:Es aquel que tiene Atributos y Metodos.A los objetos se los conoce como Instancia.Metodos de Instancia o metodos miembro se refiere a las acciones que puede hacer el ObjetoEncapsulamiento: Accion de Proteger las variables de instancia mediante los metodosAsi las variables solos podran cambiarse solo mediante los metodosMetodos:Determinan como se va a comportar el ObjetosAtributos:Son las propiedades o caracteristicas del ObjetoLos atributos de la clase estan representadas por VariablesExisten 4 Niveles de Acceso:- Public- Private- Default-ProtectedVentajas de Encalupsar- Facilidad de Mantenimiento- Creacion de Modulos- No necesitamos saber como estan implementados los metodosClase:Son plantillas de las cuales podemos crear objetos... En una clase puede haber uno o mas metodos

Transcript of POO Tarea 1 Objetos y Clases.docx

ESCUELA SUPERIOR POLITÉCNICA DEL LITORALFACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN

PROGRAMACION ORIENTADA A OBJETOS – 2012 -IITARE 3 – CLASES Y OBJETOS

1. Diseñe e implemente en Java una clase para trabajar con triángulos isósceles. Para ello, defina las variables de ejemplar mínimas que requiera, proporcione métodos de consulta, un método constructor e implemente otros métodos para calcular el perímetro y el área de un triángulo.

class Triangulo { int base=100; int altura=200; int perimetro(int l1,int l2){ return l1+l1+l2; } int area (int base,int h){ return ((base*h)/(2)); } void menu(){ System.out.print("\t\t\tMenu Triangulo Isoceles\n\n"); System.out.print("\t[1] Calcula Area\n"); System.out.print("\t[2] Calcula Perimetro\n"); System.out.print("\tIngrese Opcion: ");} }

class Homework{public static void main (String args[]){ Triangulo x; int resultArea,resultPerimetro; int opcion; int base,altura,ladosIguales,ladoDesigual; Scanner teclado; teclado=new Scanner(System.in); x=new Triangulo(); do{ x.menu(); opcion=teclado.nextInt(); } while(opcion!=2 && opcion!=1); switch(opcion){ case 1: System.out.print("Ingrese Base: "); base=teclado.nextInt(); System.out.print("Ingrese Altura: "); altura=teclado.nextInt(); resultArea=x.area(base, altura); System.out.println("El Area del Triangulo Isoceles es " +resultArea); break;

case 2: System.out.print("Ingrese 2 Lados Iguales "); ladosIguales=teclado.nextInt(); System.out.print("Ingrese Lado Desigual: "); ladoDesigual=teclado.nextInt(); resultPerimetro=x.area(ladosIguales, ladoDesigual); System.out.println("El Perimetro del Triangulo Isoceles es " +resultPerimetro); } }}

2. ¿Cuál es el resultado del siguiente programa?

R// 24.3 "espacio" 7

3. ¿Qué imprime el siguiente programa?

R// 8 9 9 10 13 14

4. 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.

class Polinomio{ void funcion(double grado,double poli[],double x){ int i; Scanner teclado=new Scanner(System.in); double polinomio,resultado; for(i=0;i<grado+1;i=i+1) { System.out.print("Poli"+"[" +i +"]"); poli[i]=teclado.nextInt(); } //Calculo polinomio=0; for(i=0;i<grado+1;i++){ resultado=Math.pow(x, i); polinomio=polinomio+poli[i]*resultado; } System.out.println("El valor es" +polinomio); }}

class Homework{ public static void main(){ Scanner teclado=new Scanner(System.in); int grado; double poli[]; poli = new double[100]; double x; Polinomio llama=new Polinomio(); System.out.println("Ingrese Grado del Polinomio: "); grado=teclado.nextInt(); System.out.println("Ingrese el valor de X"); x=teclado.nextDouble(); llama.funcion(grado, poli, x); }}

5. ¿Cuál es el error del siguiente programa?

R// A simple vista no vi un error, tipie y lo ejecute en netbeans y no me boto ningún error... Es más me compilo y la respuesta

Total actual en la cuenta: 2505.32 Euros

6. Un teatro se caracteriza por su nombre y su dirección y en él se realizan 4 funciones al día. Cada función tiene un nombre y un precio. Realice el diseño de clases e indique qué métodos tendría cada clase, teniendo en cuenta que se pueda cambiar el nombre del teatro y el nombre y precio de la función. 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); }}

7. a) ¿Qué imprime el siguiente programa? b) ¿Y si prop en Clase1 no la declaramos como static?

R//a) 9 " espacio" 9 b)7 "espacio " 7

8. Dado el siguiente fragmento de código:

Ordenador sobremesa; Ordenador portatil;

sobremesa = new Ordenador(); sobremesa.precio(900); portatil = new Ordenador();

portatil.precio(1100); portatil = sobremesa; sobremesa = null;

¿Qué afirmación es cierta? a) Al final tanto el objeto sobremesa como el objeto portátil apuntan anull

b) Al final sólo queda un objeto de tipo Ordenador con precio 1100 c) Al final sólo 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

9. Implemente un programa que muestre por pantalla el resultado de la suma y el producto de dos números complejos. Además, el programa deberá comprobar si dos números complejos dados son iguales y también deberá multiplicar un número 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 código de la/s clase/s en Java. c) Implemente un programa principal que muestre por pantalla el número complejo

(en la forma x+yi) resultante de la suma y el producto de dos números complejos dados, así como el resultante de la multiplicación de un número complejo por un entero. Además, el programa deberá indicar si los dos números complejos introducidos son iguales.

Nota: Sean a y b dos números reales*, el par (a, b) se llama número complejo, si la igualdad, la adición y la multiplicación de pares se definen del modo siguiente:

a) Igualdad: (a, b) = (c, d) ⇔ a = c ∧ b = db) Suma: ( a, b) + (c, d) = (a + c, b + d )c) Producto: (a, b) (c, d) = (ac – bd, ad + bc)

El número complejo (a, b) puede expresarse en la forma a+bi. También se puede definir la operación multiplicación de un número complejo por un entero de la siguiente forma: Multiplicación por un entero: α (a ,b ) = (αa, αb)* Por simplicidad considere a y b como enteros.

CODIFICACION

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(); }}

10. ¿Qué imprime el siguiente programa?

R//

La trilogía de Nueva York de Paul Auster

11. ¿Qué imprime el siguiente programa?

R//

Objeto a1:-----------Nombre: Alumno 1Grupo: ALlamada al metodo prueba1(a1).Nombre: Alumno 1Grupo: BObjeto a2:-----------Nombre: Alumno 1Grupo: ALlamada al metodo prueba2(a2).Dentro del metodo prueba2. Nombre: Alumno 1Grupo: BEn main: Fuera ya del metodo prueba2. Nombre: Alumno 1Grupo: A

12. En una tienda cada factura se representa por su número y una serie de productos. Cada producto se caracteriza por su código alfanumérico 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 métodos para la consulta del número de factura y el/los productos de la factura y métodos para actualización 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: (código: C1, precio: 24 euros), (código: H23, precio: 234 euros) y (código: M30, precio: 109 euros). A continuación debe cambiarse el segundo producto de la factura por el siguiente (código: 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");}}

13. Escriba un programa que use una lista enlazada para gestionar una serie de libros identificados por su título. El programa debe ser capaz de ir añadiendo libros a la serie mantenida y de poder imprimir los títulos de toda la serie cuando se le indique. Como ejemplo use los siguientes libros: “Niebla”, “La Metamorfosis” y “El callejón de los milagros”

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; }

14. ¿Qué imprime el siguiente programa?

a) rojo azul verde b) null

c)rojo azul d) azul verde