Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: jonatthan23 en 11 de Septiembre 2020, 07:15
-
Hola amigos, ahora estoy haciendo una aplicación web en java y estoy atorado, me debe mostrar el área y el perímetro de un triangulo, no me muestra el perímetro de un triangulo, si me muestra el área pero el perímetro no, dejo el código.
Muchas gracias.
Esta es la clase java
package calculos;
/**
*
* @author Jon
*/
public final class Triangulo {
private int base;
private int altura;
private int area;
private int perimetro;
public Triangulo(String n1, String n2)
{
this.setBase(Integer.parseInt(n1));
this.setAltura(Integer.parseInt(n2));
}
public void sacarArea()
{
int t=this.getBase()*getAltura()/2;
this.setArea(t);
}
public void sacarPerimetro()
{
int p=this.getBase()+getBase()+getBase();
this.setPerimetro(p);
}
public int getBase(){
return base;
}
public void setBase(int base){
this.base = base;
}
public int getAltura(){
return altura;
}
public void setAltura(int altura){
this.altura = altura;
}
public int getArea(){
return area;
}
public void setArea(int area){
this.area = area;
}
public int getPerimetro(){
return perimetro;
}
private void setPerimetro(int perimetro) {
this.perimetro = perimetro;
}
}
Este es el JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="calculos.Triangulo" %>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<h1>Área Triángulo</h1>
<%
String n1=request.getParameter("base");
String n2=request.getParameter("altura");
Triangulo t=new Triangulo(n1,n2);
t.sacarArea();
int area=t.getArea();
Triangulo p=new Triangulo(n1,n2);
t.sacarPerimetro();
int perimetro=p.getPerimetro();
%>
<%=area%>
<h2>Perímetro Triángulo</h2>
<%=perimetro%>
Este es el index:
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div>Área Triángulo
<form action="Areajsp.jsp" method="post">
Base:<br>
<input type="text" name="base" value=""><br>
Altura:<br>
<input type="text" name="altura" value=""><br><br>
<input type="submit" value="Area">
</form>
</div>
</body>
</html>
-
Hola.
No se porque usas dos objetos Triangulo.
Entiendo que con uno ya te sirve para calcular área y perímetro.
Y así además, te habrías evitado este error, que es el motivo de que no obtengas perímetro:
<%
String n1=request.getParameter("base");
String n2=request.getParameter("altura");
Triangulo t=new Triangulo(n1,n2);
t.sacarArea();
int area=t.getArea();
Triangulo p=new Triangulo(n1,n2);
t.sacarPerimetro(); //Calculas el perímetro en el triángulo t
int perimetro=p.getPerimetro(); //Pero luego pides resultado a p, que no ha hecho ningún cálculo
%>
Si vas a usar dos triángulos, ha de pedirle a p que calcule el perímetro.
Pero vamos, que con un único triángulo podrías hacer ambos cálculos.
Un saludo.
-
Hola, muchas gracias, ya quedó funcionando.