Computing">
Nothing Special   »   [go: up one dir, main page]

BMA15O - PC4 (11-07-22) - Medina Vasquez Andrea Noelia

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

UNIVERSIDAD NACIONAL DE INGENIERÍA Ciclo Académico: 2022-1

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Fecha: 11/07/22


DEPARTAMENTOS ACADÉMICOS Duración: 1:30 h
Programación Orientada a Objetos BMA15 - O
CURSO: ________________________________________________________ COD. CURSO:
4
TIPO DE PRUEBA: PRACTICA N° EX. PARCIAL EX. FINAL EX. SUST.

// Alumna: Medina Vásquez Andrea Noelia


// Pregunta 1 (10.6 – Joyanes)

Output:
Código:

package fiee.indicemasacorporal;
import javax.swing.*;
import java.awt.event.*;
/**
*
* @author FIEE
*/
public class IndiceMasaCorporal extends JFrame {
private JTextField campoAltura;
private JTextField campoPeso;
private JTextField campoIMC;

public IndiceMasaCorporal(){
// declaracion de etiquetas fijas en la ventana
JLabel etiquetaAltura = new JLabel("Altura (metros)");
JLabel etiquetaPeso = new JLabel("Peso(kg)");
JLabel etiquetaIMC = new JLabel("Índice Masa Corporal");
// button
JButton calcular = new JButton("Calcular IMC");
campoAltura = new JTextField(6); // 6 columnas de espacio
campoPeso = new JTextField(6);
campoIMC = new JTextField(6);
// comp
campoIMC.setEditable(false); // resultado es inalterable
// crea panel
JPanel panel = new JPanel();

// añade elementos al panel


//
panel.add(etiquetaAltura);
panel.add(campoAltura);
panel.add(etiquetaPeso);
panel.add(campoPeso);
// etiqueta button
panel.add(calcular);
//
panel.add(etiquetaIMC);
panel.add(campoIMC);

add(panel);

// accion de calcular al accionarse el button 'calcular'


calcular.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent evento){
Double peso = Double.parseDouble(campoPeso.getText()); // asigna el input
// en el campo pesoa la variable peso
Double altura = Double.parseDouble(campoAltura.getText());
Double imc = peso / (altura*altura);
String cadena = String.format("%6.2f",imc); // 6 espacios y 2 decimales
campoIMC.setText(cadena);
}
}
);
}
public static void main(String[] args) {
IndiceMasaCorporal ventana = new IndiceMasaCorporal();
ventana.setTitle("Indice de Masa Corporal");
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setSize(400,100);
ventana.setResizable(false);
ventana.setVisible(true);
}
}

// Problema 2: (10.7 – Joyanes)


Output:

Código:

package ayaya.joyanes107;

import javax.swing.*;
import java.awt.event.*;

/**
*
* @author anmv_
*/
public class Joyanes107 extends JFrame {
private final double TASACAMBIO = 166.386;
private double cambioEfectivo = TASACAMBIO;
// jtext are camps to b filled with input
// jlabels are just tags with instructions
private JTextField campoCantidad;
private JTextField campoResultado;

public Joyanes107(){
// declaracion de etiquetas fijas
JLabel etiquetaConvertir = new JLabel("Cantidad a convertir");
//JLabel etiquetaCantidad = new JLabel("Cantidad a convertir");
JLabel etiquetaResultado = new JLabel("Resultado");
campoCantidad = new JTextField("0.0" ,6);
campoResultado = new JTextField("0.0", 6);
campoResultado.setEditable(false);
// button
JToggleButton moneda= new JToggleButton("Euros a Pesetas");
moneda.addActionListener(new OyenteBotonConmutador());
JButton cambiar= new JButton("Cambiar");
cambiar.addActionListener(new OyenteCambio());
// crear panel
JPanel panel = new JPanel();
// adding
panel.add(etiquetaConvertir);
panel.add(campoCantidad);
panel.add(etiquetaResultado);
panel.add(campoResultado);
panel.add(moneda);
panel.add(cambiar);
add(panel);
}

class OyenteCambio implements ActionListener{


public void actionPerformed(ActionEvent evento){
double dinero = Double.parseDouble(campoCantidad.getText());
dinero = dinero*cambioEfectivo;
String cadena = String.format("%6.2f",dinero);
campoResultado.setText(cadena);
}
}
class OyenteBotonConmutador implements ActionListener{
public void actionPerformed(ActionEvent evento){
JToggleButton boton = (JToggleButton)evento.getSource();
if(boton.isSelected()){
boton.setText("Pesetas a Euros");
cambioEfectivo = 1/TASACAMBIO;
}else{
boton.setText("Euros a Pesetas");
cambioEfectivo = TASACAMBIO;
}
}
}
public static void main(String[] args) {
Joyanes107 ventana = new Joyanes107();
ventana.setTitle("Calculadora cambio moneda");
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setSize(400,100);
ventana.setVisible(true);
}
}

// Problema 3: (9 - Joyanes)

Output:

Código:

// clase pivot (contenedora de métodos)

package ayaya.ykwim;

import java.util.*;

/**
*
* @author anmv_
*/
public class Irlydont {
// 9.20
public static <T extends Operable <T>> void elevaCuadrado(List<T> lista){
for(int i=0;i<lista.size();i++){
T resultado = lista.get(i).producto(lista.get(i));
lista.set(i,resultado);
}
}
// 9.19
public static <T extends Operable <T>> T sumaTodos(List<T> lista){
T resultado = lista.get(0);
for(int i=1;i<lista.size();i++){
resultado = resultado.suma(lista.get(i));
}
return resultado;
}
// 9.17
public static <T> T mayor(List<T> lista, Comparator <? super T> comparador){
T mayor = lista.get(0);
for(T elemento: lista){
if(comparador.compare(mayor, elemento)<0){
mayor = elemento;
}
}
return mayor;
}
// 9.14 (9.12++)
public static double sumaPerimetros(List<? extends Poligono> lista){
double suma = 0;
for(Poligono p: lista){
suma += p.perimetro();
}
return suma;
}
}

// otras clases necesarias


// clase Punto
package ayaya.ykwim;
// pagina 169 Joyanes
/**
*
* @author anmv_
*/
public class Punto {
private double x;
private double y;
public Punto(double x, double y){
this.x = x;
this.y = y;
}
public Punto(){
this(0,0);
}
public void setX(double x){
this.x = x;
}
public void setY(double y){
this.y = y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
public double distancia(Punto p){
double distanciaX = p.getX()-x;
double distanciaY = p.getY()-y;
return Math.sqrt(distanciaX*distanciaX+distanciaY*distanciaY);
}
public String toString(){
return "(" + x + " , " + y + ")";
}
}

// clase Poligono

package ayaya.ykwim;

/**
*
* @author anmv_
*/
public class Poligono {
private Punto[] vertices;

public Poligono(Punto[] valor){


if(valor.length<3){
throw new IllegalArgumentException();
}
vertices = valor;
}
public void escalar(double x,double y){
double valX, valY;
for(Punto p: vertices){
valX = p.getX();
valY = p.getY();
p.setX(valX*x);
p.setY(valY*y);
}
}
public void trasladar(double x, double y){
double valX, valY;
for(Punto p: vertices){
valX = p.getX();
valY = p.getY();
p.setX(valX+x);
p.setY(valY+y);
}
}
public int numVertices(){
return vertices.length;
}
public double perimetro(){
double acumulador = 0;
for(int i=0;i<vertices.length - 1;i++){
acumulador += vertices[i].distancia(vertices[i+1]);
}
acumulador += vertices[0].distancia(vertices[vertices.length - 1]);
return acumulador;
}
@Override
public String toString(){
String cadena ="";
for(Punto p: vertices){
cadena += p + "\n";
}
return cadena;
}
}

// clase Racional
package ayaya.ykwim;

/**
*
* @author anmv_
*/
public class Racional implements Operable<Racional> {
private int num;
private int den;
// CC
public Racional(int num, int den){
if(den == 0){
throw new IllegalArgumentException();
}
this.num = num;
this.den = den;
}
public int getNumerador(){
return num;
}
public int getDenominador(){
return den;
}
public Racional suma(Racional r){
int numRes = num*r.getDenominador() + r.getNumerador()*den;
int denRes = den*r.getDenominador();
return new Racional(numRes, denRes);
}
public Racional resta(Racional r){
int numRes = num*r.getDenominador() - r.getNumerador()*den;
int denRes = den*r.getDenominador();
return new Racional(numRes, denRes);
}
public Racional producto(Racional r){
int numRes = num*r.getNumerador();
int denRes = den*r.getDenominador();
return new Racional(numRes, denRes);
}
public Racional division(Racional r){
int numRes = num*r.getDenominador();
int denRes = den*r.getNumerador();
if(denRes == 0){
throw new ArithmeticException();
}
return new Racional(numRes, denRes);
}
public String toString(){
return num + "/" + den;
}
}

// clase comparadora de poligonos

package ayaya.ykwim;

import java.util.*;

/**
*
* @author anmv_
*/
public class ComparadorPoligonos implements Comparator<Poligono> {
public int compare(Poligono p1, Poligono p2){
if(p1.perimetro()<p2.perimetro()){
return -1;
}else if(p1.perimetro()>p2.perimetro()){
return 1;
}else{
return 0;
}
}
}

// interfaz operable

package ayaya.ykwim;

/**
*
* @author anmv_
*/
public interface Operable <E>{ // con todos los metodos de la clase Racional
E suma(E obj);
E resta(E obj);
E producto(E obj);
E division(E obj);
}

// implementacion de metodos -> main

package ayaya.ykwim;

import java.util.*;

/**
*
* @author anmv_
*/
public class YKWIM {

public static void main(String[] args) {


Racional r1 = new Racional(1,2);
Racional r2 = new Racional(2,3);
Racional r3 = new Racional(3,4);

List<Racional> racionales = new ArrayList<Racional>();

racionales.add(r1);
racionales.add(r2);
racionales.add(r3);
// show parameters
System.out.println("Numeros racionales:");
System.out.println(racionales);
// llamada al metodo del 9.19
System.out.println("-->(implementacion del metodo 9.19)\nSuma:
"+Irlydont.sumaTodos(racionales));
// llamada al metodo 9.20
Irlydont.elevaCuadrado(racionales);
System.out.println("-->(implementacion del metodo 9.20)\nElementos al cuadrado: "+racionales);

///////////////////////////////////////////////////////

Punto[] vertices1 = {new Punto(0,0), new Punto(0,1), new Punto(1,1), new Punto(1,0)};
Punto[] vertices2 = {new Punto(0,0), new Punto(0,3), new Punto(4,0)};
Punto[] vertices3 = {new Punto(1,1), new Punto(1,4), new Punto(5,4), new Punto(6,1)};

Poligono pol1 = new Poligono(vertices1);


Poligono pol2 = new Poligono(vertices2);
Poligono pol3 = new Poligono(vertices3);
ArrayList<Poligono> listaq;
listaq = new ArrayList<Poligono>();
listaq.add(pol1);
listaq.add(pol2);
listaq.add(pol3);

ComparadorPoligonos comparador = new ComparadorPoligonos();


// llamada al metodo 9.17
Poligono mayor = Irlydont.mayor(listaq, comparador);
System.out.println("-->(implementacion del metodo 9.17)\nEl mayor poligono es:\n" + mayor);
// llamda al metodo 9.14
System.out.println("-->(implemetacion del metodo 9.14)\nSuma de perimetros: " +
Irlydont.sumaPerimetros(listaq));

}
}

También podría gustarte