1.
Crear una clase llamada Triangle que modele triángulos por medio de tres puntos (los
vértices) para las x y tres puntos para las y. Los vértices serán de tipo double. Dispondrá
de dos constructores: uno por defecto y otro que cree un triángulo partiendo de sus tres
vértices .La clase también incluirá un método para calcular el área y otro que calcule el
perímetro del triangulo. Los atributos son de tipo public. Escribe aquí el diagrama de clase
y el código de la clase en Java.
package com.mycompany.menu_medalist; Triangle
public double x1, y1;
public class Triangle { public double x2, y2;
public double x3, y3;
public double x1, y1;
public double x2, y2;
public double x3, y3; Triangle();
Triangle( double x1, double y1, double
x2, double y2, double x3, double y3);
public Triangle() {
this.x1 = 0.0;
public double calculatePerimeter();
this.y1 = 0.0; public double calculateArea();
this.x2 = 0.0;
this.y2 = 0.0;
this.x3 = 0.0;
this.y3 = 0.0;
}
public Triangle(double x1, double y1, double x2, double y2, double x3, double y3) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.x3 = x3;
this.y3 = y3;
}
public double calculatePerimeter() {
double a,b,c;
a =Math.sqrt( Math.pow(x2-x1,2)+Math.pow(y2-y1,2));
b = Math.sqrt( Math.pow(x3-x2,2)+Math.pow(y3-y2,2));
c = Math.sqrt( Math.pow(x3-x1,2)+Math.pow(y3-y1,2));
return a + b + c;
}
public double calculateArea() {
double a,b,c,s;
s = calculatePerimeter()/ 2;
a =Math.sqrt( Math.pow(x2-x1,2)+Math.pow(y2-y1,2));
b = Math.sqrt( Math.pow(x3-x2,2)+Math.pow(y3-y2,2));
c = Math.sqrt( Math.pow(x3-x1,2)+Math.pow(y3-y1,2));
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
}
2.-Modificar la clase Triangle del ejercicio 1. Se llamará Triangle2. Los atributos son de tipo private,
por lo tanto, incluir los métodos getter y setter. Escribe aquí el código de la clase en Java.
package com.mycompany.menu_medalist;
/**
*
* @author DELL
*/
public class Tringle2 {
private double x1, y1;
private double x2, y2;
private double x3, y3;
public Tringle2() {
this.x1 = 0.0;
this.y1 = 0.0;
this.x2 = 0.0;
this.y2 = 0.0;
this.x3 = 0.0;
this.y3 = 0.0;
}
public Tringle2(double x1, double y1, double x2, double y2, double x3, double y3) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.x3 = x3;
this.y3 = y3;
}
public void setVertices(double x1, double y1, double x2, double y2, double x3, double y3) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.x3 = x3;
this.y3 = y3;
}
public double calculatePerimeter() {
double a,b,c;
a =Math.sqrt( Math.pow(x2-x1,2)+Math.pow(y2-y1,2));
b = Math.sqrt( Math.pow(x3-x2,2)+Math.pow(y3-y2,2));
c = Math.sqrt( Math.pow(x3-x1,2)+Math.pow(y3-y1,2));
return a + b + c;
}
public double calculateArea() {
double a,b,c,s;
s = calculatePerimeter() / 2;
a =Math.sqrt( Math.pow(x2-x1,2)+Math.pow(y2-y1,2));
b = Math.sqrt( Math.pow(x3-x2,2)+Math.pow(y3-y2,2));
c = Math.sqrt( Math.pow(x3-x1,2)+Math.pow(y3-y1,2));
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
}
3.-Modificar la clase Triangle del ejercicio 1. Se llamará Triangle3. Los vértices serán de tipo arreglo
unidimensional de tamaño 6 donde cada posición del arreglo representa cada uno de los puntos
de las coordenadas. Modificar todo lo que sea necesario. Escribe aquí el código de la clase en Java.
public class Triangule3 {
double[] vertice;
public Triangule3(){
vertice = new double[6];
for(int i=0;i<5;i++){
this.vertice[i]=0;
}
public Triangule3(double[] vertice) {
if (vertice.length == 6) {
this.vertice = vertice;
} else {
throw new IllegalArgumentException("El arreglo debe tener 6 datos");
}
}
public double calculatePerimeter() {
double a,b,c;
a = distance(vertice[0], vertice[1], vertice[2], vertice[3]);
b = distance(vertice[2], vertice[3], vertice[4], vertice[5]);
c = distance(vertice[4], vertice[5], vertice[0], vertice[1]);
return a + b + c;
}
public double calculateArea() {
double a,b,c,s;
s = calculatePerimeter() / 2;
a = distance(vertice[0], vertice[1], vertice[2], vertice[3]);
b = distance(vertice[2], vertice[3], vertice[4], vertice[5]);
c = distance(vertice[4], vertice[5], vertice[0], vertice[1]);
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
public double distance(double x1, double y1, double x2, double y2) {
return Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2));
}
}
4.-Crear una clase llamada coordinate que modela las coordenadas de un punto en un plano
cartesiano, es decir x, y. La clase incluye dos constructores: uno por defecto y uno con parámetros,
además incluir el método show y el método capture. Los atributos son públicos. Escribe aquí el
código de la clase en Java.
package com.mycompany.menu_medalist;
import java.util.Scanner;
public class coordinate {
public double x;
public double y;
public coordinate() {
this.x = 0.0;
this.y = 0.0;
}
public coordinate(double x, double y) {
this.x = x;
this.y = y;
}
public void show() {
System.out.println("Coordenadas: (" + x + ", " + y + ")");
}
public void capture() {
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese la coordenada x: ");
this.x = scanner.nextDouble();
System.out.print("Ingrese la coordenada y: ");
this.y = scanner.nextDouble();
}
}
5.-Modificar la clase Triangle del ejercicio 1. Se llamará Triangle4. Cada uno de los tres vértices
serán de tipo coordinate, definida previamente. Modificar todo lo que sea necesario. Escribe
aquí el código de la clase en Java. Escribir el diagrama de clases donde relaciones ambas clases.
coordinate Triangle4
Public double x Public Coordinate vertex1
Public double y Public Coordinate vertex2
Coordinate() Public Coordinate vertex3
Coordinate(x, y) Triangle4()
Void show() Triangle4(v1: Coordinate, v2: Coordinate, v3: Coordinate)
Void capture(): void double calculateArea()
Double calculatePerimeter()
public class Triangle4 {
public coordinate vertex1;
public coordinate vertex2;
public coordinate vertex3;
public Triangle4() {
this.vertex1 = new coordinate(0.0, 0.0);
this.vertex2 = new coordinate(0.0, 0.0);
this.vertex3 = new coordinate(0.0, 0.0);
}
public Triangle4(coordinate v1, coordinate v2, coordinate v3) {
this.vertex1 = v1;
this.vertex2 = v2;
this.vertex3 = v3;
}
public double calculateArea() {
double a,b,c,s;
s = calculatePerimeter() / 2;
a = distance(vertex1.x, vertex1.y, vertex2.x, vertex2.y);
b = distance(vertex2.x, vertex2.y, vertex3.x, vertex3.y);
c = distance(vertex3.x, vertex3.y, vertex1.x, vertex1.y);
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
public double calculatePerimeter() {
double a,b,c;
a = distance(vertex1.x, vertex1.y, vertex2.x, vertex2.y);
b = distance(vertex2.x, vertex2.y, vertex3.x, vertex3.y);
c = distance(vertex3.x, vertex3.y, vertex1.x, vertex1.y);
return a + b + c;
}
public double distance(double x1, double y1, double x2, double y2) {
return Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2));
}
}
6.-Modificar la clase Triangle del ejercicio 1. Se llamará Triangle5. Los vértices serán de tipo arreglo
unidimensional de tipo coordinate de tamaño 3 donde cada posición del arreglo representa cada
uno de los puntos de las coordenadas. Modificar todo lo que sea necesario. Escribe aquí el código
de la clase en Java.
package com.mycompany.menu_medalist;
public class Triangle5 {
public coordinate [] vertice;
public Triangle5(){
vertice = new coordinate[3];
for(int i=0;i<3;i++){
this.vertice[i]=new coordinate(0.0,0.0);
}
}
public Triangle5(coordinate[] vertice){
if(vertice.length==3){
this.vertice=vertice;
}
else{
throw new IllegalArgumentException("El arreglo debe tener 3 datos");
}
}
public double calculateArea() {
double s = calculatePerimeter() / 2;
double a = distance(vertice[0].x, vertice[0].y, vertice[1].x, vertice[1].y);
double b = distance(vertice[1].x, vertice[1].y, vertice[2].x, vertice[2].y);
double c = distance(vertice[2].x, vertice[2].y, vertice[0].x, vertice[0].y);
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
public double calculatePerimeter() {
double a = distance(vertice[0].x, vertice[0].y, vertice[1].x, vertice[1].y);
double b = distance(vertice[1].x, vertice[1].y, vertice[2].x, vertice[2].y);
double c = distance(vertice[2].x, vertice[2].y, vertice[0].x, vertice[0].y);
return a + b + c;
}
private double distance(double x1, double y1, double x2, double y2) {
return Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2));
}
}
7.-En el programa principal, crear dos objetos de cada una de las clases Triangle, Triangle3,
Triangle4 y Triangle5. De los dos objetos creados crear uno con cada uno de los constructores.
Para cada uno de ellos mostrar su área y su perímetro.
8.-Crear un arreglo de 3 triángulos de la clase Triangle2, usar el constructor por defecto para crear
los objetos. Pedir al usuario los valores de cada una de las coordenadas. Mostrar el área y
perímetro de cada uno de ellos.
9.-En este espacio, escribe el código de tu programa principal
/*
Bautista Ugalde Manuel Isaac
*/
package com.mycompany.menu_medalist;
import java.util.Scanner;
public class Menu_medalist {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double x1, y1, x2, y2, x3, y3;
Triangle a1= new Triangle();
Triangle a2= new Triangle(0, 0, 4, 0, 0, 3);
System.out.println("Area: "+a1.calculateArea()+"\nperimeter: "+a1.calculatePerimeter());
System.out.println("Area: "+a2.calculateArea()+"\nperimeter: "+a2.calculatePerimeter());
Triangule3 a3= new Triangule3();
Triangule3 a4= new Triangule3(new double[]{0.0, 0.0, 4.0, 0.0, 0.0, 3.0});
System.out.println("Area: "+a3.calculateArea()+"\nperimeter: "+a3.calculatePerimeter());
System.out.println("Area: "+a4.calculateArea()+"\nperimeter: "+a4.calculatePerimeter());
Triangle4 a5= new Triangle4();
Triangle4 a6= new Triangle4(new coordinate(1.0, 1.0), new coordinate(4.0, 1.0), new coordinate(1.0, 5.0));
System.out.println("Area: "+a5.calculateArea()+"\nperimeter: "+a5.calculatePerimeter());
System.out.println("Area: "+a6.calculateArea()+"\nperimeter: "+a6.calculatePerimeter());
Triangle5 a7=new Triangle5();
Triangle5 a8 = new Triangle5(new coordinate[]{new coordinate(1.0, 1.0), new coordinate(4.0, 1.0), new
coordinate(1.0, 5.0)});
System.out.println("Area: "+a7.calculateArea()+"\nperimeter: "+a7.calculatePerimeter());
System.out.println("Area: "+a8.calculateArea()+"\nperimeter: "+a8.calculatePerimeter());
Tringle2[] triangles = new Tringle2[3];
for (int i = 0; i < triangles.length; i++) {
triangles[i] = new Tringle2(); // Usar el constructor por defecto
System.out.println("Ingrese las coordenadas para el triángulo " + (i + 1) + ":");
System.out.print("x1: ");
x1 = scanner.nextDouble();
System.out.print("y1: ");
y1 = scanner.nextDouble();
System.out.print("x2: ");
x2 = scanner.nextDouble();
System.out.print("y2: ");
y2 = scanner.nextDouble();
System.out.print("x3: ");
x3 = scanner.nextDouble();
System.out.print("y3: ");
y3 = scanner.nextDouble();
triangles[i].setVertices(x1, y1, x2, y2, x3, y3);
}
for (int i = 0; i < triangles.length; i++) {
double area = triangles[i].calculateArea();
double perimeter = triangles[i].calculatePerimeter();
System.out.println("Triangle " + (i + 1) + " - Área: " + area + ", Perímetro: " + perimeter);
}
}
}