- Elaborar un programa que calcule el área y perímetro de tres rectángulos y tres triángulos.
Nota: Dividiremos el programa en tres clases: triángulo, rectángulo y solución.
1ra. Clase: Triangulo.
Esta primera clase la construiremos para que haga el cálculo de el área y perímetro de los triángulos, misma clase que después será llamada desde la clase Solución.
- Diagrama UML:
El diagrama UML es uno de los elementos principales para la solución de problemas en la estructura de datos orientada a objetos, este diagrama facilita el entendimiento del problema, ya que divide en tres partes el mismo, la primera parte es quien lleva el nombre que identifica a la clase; la segunda parte contiene los atributos que tendrá el objeto identificado de nuestra clase, esto acompañado del tipo de dato que tendrá; y por último la tercera parte contiene el nombre de los procedimientos o más bien métodos que se realizarán.
Para facilitar la construcción del diagrama, recomiendo usar ArgoUML, lo pueden descargar desde este link http://argouml.tigris.org/, aquí podemos apoyarnos para aprender a usarlo http://www.youtube.com/watch?v=mHfw4Q5xubU.
Y el diagrama queda así:
Nuestro objeto es el tríangulo, tiene una base, una altura, y porsteriormente serán calculadas su área y su perímetro, para llegar a esto primero capturaremos los datos, después se calcula área, siguiendo con perímetro y se imprimiran los resultados.
- Programa:
Nota: para construir el programa estoy usando NetBeans, es gratuito y muy recomendable, si no lo tienes puedes descargarlo desde aquí https://netbeans.org/downloads/.
package Areas_Perímetros; // identificamos el paquete en el que se encuentra nuestra clase
import javax.swing.JOptionPane; // Aqui mandamos a llamar la libreria que vamos a usar
public class Triangulo // el nombre de nuestra clase
{ //inicia la clase
private int base; // se declaran las variables a usar
//(atributos que fueron mostrados en el diagrama UML)
private int altura;
private int área;
private int perimetro;
/*vamos a encapsular nuestras variables con get y set se utiliza get para que
lea o guarde el valor de la variable y set para que se pueda cambiar el valor
de la variable. Esto se puede realizar de manera directa simplemente dando click
derecho en Refactor/Encapsulate Fields, seleccionas todas las fichas de get y set
y despues en Refactor, y creara los métodos con set y get.
*/
public int getBase() {
return base; // manda la variable
}
public void setBase(int base) { //recibe la variable
this.base = base;
}
public int getAltura() {
return altura;
}
public void setAltura(int altura) {
this.altura = altura;
}
public int getÁrea() {
return área;
}
public void setÁrea(int área) {
this.área = área;
}
public int getPerimetro() {
return perimetro;
}
public void setPerimetro(int perimetro) {
this.perimetro = perimetro;
}
public void Captura(){ // se piden los valores de base y altura de el triangulo
base=Integer.parseInt(JOptionPane.showInputDialog("BASE:"));
altura=Integer.parseInt(JOptionPane.showInputDialog("ALTURA:"));
}
public void CalcularArea() {
área=(base*altura)/2;
}
public void CalcularPerimetro(){
perimetro=(base*3);//suponiendo que es un triángulo equilátero
}
public void Imprimir(){
JOptionPane.showMessageDialog(null,"EL ÁREA ES: "+área+"\nEL PERÍMETRO ES: "+perimetro);
}
}// termina la clase
2da. Clase: Rectangulo
De la misma forma que con la clase triangulo, construiremos la clase Rectángulo:
- Diagrama UML
- Programa
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Rectángulo
{
private int base;
private int altura;
private int área;
private int perimetro;
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 getÁrea() {
return área;
}
public void setÁrea(int área) {
this.área = área;
}
public int getPerimetro() {
return perimetro;
}
public void setPerimetro(int perimetro) {
this.perimetro = perimetro;
}
public void Captura(){
base=Integer.parseInt(JOptionPane.showInputDialog("BASE:"));
altura=Integer.parseInt(JOptionPane.showInputDialog("ALTURA:"));
}
public void CalcularArea() {
área=(base*altura);
}
public void CalcularPerimetro(){
perimetro=base+base+altura+altura;
}
public void Imprimir(){
JOptionPane.showMessageDialog(null,"EL ÁREA ES: "+área+"\n EL PERÍMETRO ES: "+perimetro);
}
}
3ra. Clase: Solucion
En esta clase se dará uso a las clases anteriores, se le asignan los métodos a los objetos correspondiente a su clase. Para ello deberán declararse y crearse los objetos.
- Diagrama UML:
- Programa:
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Solución {
public static void main (String arr[]){
//se declaran objetos
Rectángulo rect1, rect2, rect3;
// se crean los objetos
rect1=new Rectángulo();
rect2=new Rectángulo();
rect3=new Rectángulo();
JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS RECTANGULOS");
JOptionPane.showMessageDialog(null,"RECTANGULO #1");
rect1.Captura(); //el objeto mando a llamar al método que va a usar
rect1.CalcularArea();
rect1.CalcularPerimetro();
rect1.Imprimir();
JOptionPane.showMessageDialog(null,"RECTANGULO #2");
rect2.Captura();
rect2.CalcularArea();
rect2.CalcularPerimetro();
rect2.Imprimir();
JOptionPane.showMessageDialog(null,"RECTANGULO #3");
rect3.Captura();
rect3.CalcularArea();
rect3.CalcularPerimetro();
rect3.Imprimir();
Triangulo tri1, tri2, tri3;
tri1=new Triangulo();
tri2=new Triangulo();
tri3=new Triangulo();
JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS TRIANGULOS");
JOptionPane.showMessageDialog(null,"TRIANGULO #1");
tri1.Captura();
tri1.CalcularArea();
tri1.CalcularPerimetro();
tri1.Imprimir();
JOptionPane.showMessageDialog(null,"TRIANGULO #2");
tri2.Captura();
tri2.CalcularArea();
tri2.CalcularPerimetro();
tri2.Imprimir();
JOptionPane.showMessageDialog(null,"TRIANGULO #3");
tri3.Captura();
tri3.CalcularArea();
tri3.CalcularPerimetro();
tri3.Imprimir();
}
}
package Areas_Perímetros; // identificamos el paquete en el que se encuentra nuestra clase
import javax.swing.JOptionPane; // Aqui mandamos a llamar la libreria que vamos a usar
public class Triangulo // el nombre de nuestra clase
{ //inicia la clase
private int base; // se declaran las variables a usar
//(atributos que fueron mostrados en el diagrama UML)
private int altura;
private int área;
private int perimetro;
/*vamos a encapsular nuestras variables con get y set se utiliza get para que
lea o guarde el valor de la variable y set para que se pueda cambiar el valor
de la variable. Esto se puede realizar de manera directa simplemente dando click
derecho en Refactor/Encapsulate Fields, seleccionas todas las fichas de get y set
y despues en Refactor, y creara los métodos con set y get.
*/
public int getBase() {
return base; // manda la variable
}
public void setBase(int base) { //recibe la variable
this.base = base;
}
public int getAltura() {
return altura;
}
public void setAltura(int altura) {
this.altura = altura;
}
public int getÁrea() {
return área;
}
public void setÁrea(int área) {
this.área = área;
}
public int getPerimetro() {
return perimetro;
}
public void setPerimetro(int perimetro) {
this.perimetro = perimetro;
}
public void Captura(){ // se piden los valores de base y altura de el triangulo
base=Integer.parseInt(JOptionPane.showInputDialog("BASE:"));
altura=Integer.parseInt(JOptionPane.showInputDialog("ALTURA:"));
}
public void CalcularArea() {
área=(base*altura)/2;
}
public void CalcularPerimetro(){
perimetro=(base*3);//suponiendo que es un triángulo equilátero
}
public void Imprimir(){
JOptionPane.showMessageDialog(null,"EL ÁREA ES: "+área+"\nEL PERÍMETRO ES: "+perimetro);
}
}// termina la clase
2da. Clase: Rectangulo
2da. Clase: Rectangulo
De la misma forma que con la clase triangulo, construiremos la clase Rectángulo:
- Diagrama UML
- Programa
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Rectángulo
{
private int base;
private int altura;
private int área;
private int perimetro;
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 getÁrea() {
return área;
}
public void setÁrea(int área) {
this.área = área;
}
public int getPerimetro() {
return perimetro;
}
public void setPerimetro(int perimetro) {
this.perimetro = perimetro;
}
public void Captura(){
base=Integer.parseInt(JOptionPane.showInputDialog("BASE:"));
altura=Integer.parseInt(JOptionPane.showInputDialog("ALTURA:"));
}
public void CalcularArea() {
área=(base*altura);
}
public void CalcularPerimetro(){
perimetro=base+base+altura+altura;
}
public void Imprimir(){
JOptionPane.showMessageDialog(null,"EL ÁREA ES: "+área+"\n EL PERÍMETRO ES: "+perimetro);
}
}
3ra. Clase: Solucion
En esta clase se dará uso a las clases anteriores, se le asignan los métodos a los objetos correspondiente a su clase. Para ello deberán declararse y crearse los objetos.
- Diagrama UML:
- Programa:
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Solución {
public static void main (String arr[]){
//se declaran objetos
Rectángulo rect1, rect2, rect3;
// se crean los objetos
rect1=new Rectángulo();
rect2=new Rectángulo();
rect3=new Rectángulo();
JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS RECTANGULOS");
JOptionPane.showMessageDialog(null,"RECTANGULO #1");
rect1.Captura(); //el objeto mando a llamar al método que va a usar
rect1.CalcularArea();
rect1.CalcularPerimetro();
rect1.Imprimir();
JOptionPane.showMessageDialog(null,"RECTANGULO #2");
rect2.Captura();
rect2.CalcularArea();
rect2.CalcularPerimetro();
rect2.Imprimir();
JOptionPane.showMessageDialog(null,"RECTANGULO #3");
rect3.Captura();
rect3.CalcularArea();
rect3.CalcularPerimetro();
rect3.Imprimir();
Triangulo tri1, tri2, tri3;
tri1=new Triangulo();
tri2=new Triangulo();
tri3=new Triangulo();
JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS TRIANGULOS");
JOptionPane.showMessageDialog(null,"TRIANGULO #1");
tri1.Captura();
tri1.CalcularArea();
tri1.CalcularPerimetro();
tri1.Imprimir();
JOptionPane.showMessageDialog(null,"TRIANGULO #2");
tri2.Captura();
tri2.CalcularArea();
tri2.CalcularPerimetro();
tri2.Imprimir();
JOptionPane.showMessageDialog(null,"TRIANGULO #3");
tri3.Captura();
tri3.CalcularArea();
tri3.CalcularPerimetro();
tri3.Imprimir();
}
}
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Rectángulo
{
private int base;
private int altura;
private int área;
private int perimetro;
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 getÁrea() {
return área;
}
public void setÁrea(int área) {
this.área = área;
}
public int getPerimetro() {
return perimetro;
}
public void setPerimetro(int perimetro) {
this.perimetro = perimetro;
}
public void Captura(){
base=Integer.parseInt(JOptionPane.showInputDialog("BASE:"));
altura=Integer.parseInt(JOptionPane.showInputDialog("ALTURA:"));
}
public void CalcularArea() {
área=(base*altura);
}
public void CalcularPerimetro(){
perimetro=base+base+altura+altura;
}
public void Imprimir(){
JOptionPane.showMessageDialog(null,"EL ÁREA ES: "+área+"\n EL PERÍMETRO ES: "+perimetro);
}
}
3ra. Clase: Solucion
- Diagrama UML:
- Programa:
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Solución {
public static void main (String arr[]){
//se declaran objetos
Rectángulo rect1, rect2, rect3;
// se crean los objetos
rect1=new Rectángulo();
rect2=new Rectángulo();
rect3=new Rectángulo();
JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS RECTANGULOS");
JOptionPane.showMessageDialog(null,"RECTANGULO #1");
rect1.Captura(); //el objeto mando a llamar al método que va a usar
rect1.CalcularArea();
rect1.CalcularPerimetro();
rect1.Imprimir();
JOptionPane.showMessageDialog(null,"RECTANGULO #2");
rect2.Captura();
rect2.CalcularArea();
rect2.CalcularPerimetro();
rect2.Imprimir();
JOptionPane.showMessageDialog(null,"RECTANGULO #3");
rect3.Captura();
rect3.CalcularArea();
rect3.CalcularPerimetro();
rect3.Imprimir();
Triangulo tri1, tri2, tri3;
tri1=new Triangulo();
tri2=new Triangulo();
tri3=new Triangulo();
JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS TRIANGULOS");
JOptionPane.showMessageDialog(null,"TRIANGULO #1");
tri1.Captura();
tri1.CalcularArea();
tri1.CalcularPerimetro();
tri1.Imprimir();
JOptionPane.showMessageDialog(null,"TRIANGULO #2");
tri2.Captura();
tri2.CalcularArea();
tri2.CalcularPerimetro();
tri2.Imprimir();
JOptionPane.showMessageDialog(null,"TRIANGULO #3");
tri3.Captura();
tri3.CalcularArea();
tri3.CalcularPerimetro();
tri3.Imprimir();
}
}
- Programa:
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Solución {
public static void main (String arr[]){
//se declaran objetos
Rectángulo rect1, rect2, rect3;
// se crean los objetos
rect1=new Rectángulo();
rect2=new Rectángulo();
rect3=new Rectángulo();
JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS RECTANGULOS");
JOptionPane.showMessageDialog(null,"RECTANGULO #1");
rect1.Captura(); //el objeto mando a llamar al método que va a usar
rect1.CalcularArea();
rect1.CalcularPerimetro();
rect1.Imprimir();
JOptionPane.showMessageDialog(null,"RECTANGULO #2");
rect2.Captura();
rect2.CalcularArea();
rect2.CalcularPerimetro();
rect2.Imprimir();
JOptionPane.showMessageDialog(null,"RECTANGULO #3");
rect3.Captura();
rect3.CalcularArea();
rect3.CalcularPerimetro();
rect3.Imprimir();
Triangulo tri1, tri2, tri3;
tri1=new Triangulo();
tri2=new Triangulo();
tri3=new Triangulo();
JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS TRIANGULOS");
JOptionPane.showMessageDialog(null,"TRIANGULO #1");
tri1.Captura();
tri1.CalcularArea();
tri1.CalcularPerimetro();
tri1.Imprimir();
JOptionPane.showMessageDialog(null,"TRIANGULO #2");
tri2.Captura();
tri2.CalcularArea();
tri2.CalcularPerimetro();
tri2.Imprimir();
JOptionPane.showMessageDialog(null,"TRIANGULO #3");
tri3.Captura();
tri3.CalcularArea();
tri3.CalcularPerimetro();
tri3.Imprimir();
}
}
Ejecutar el programa
Al ejecutarse el programa aparecerá la primera ventana que indica que se realizará el calculo de las áreas y perímetros de los rectángulos...
...después indicará a que número de rectángulo se le realizará el calculo. Recordando que el problema pedía el calculo para tres triángulos y tres rectángulos...... enseguida se realizará la captura de la base de el rectangulo.....
.... lo mismo con la altura...
.... y por último mostrará los resultados...
.... lo mismo será para los triángulos.
Conclusión:
Una manera mas ordenada, sencilla y entendible de realizar un programa , es dividiéndolo en métodos y clases, recordando siempre que un problema puede dividirse en clases, cada clase tiene un objeto, a su vez, cada objeto tiene atributos o propiedades, unos serán capturados, otros, serán calculados en la clase, para realizar esto basta con crear métodos que hagan las actividades o procedimientos que se necesitan para resolver el problema.
Conclusión:
Una manera mas ordenada, sencilla y entendible de realizar un programa , es dividiéndolo en métodos y clases, recordando siempre que un problema puede dividirse en clases, cada clase tiene un objeto, a su vez, cada objeto tiene atributos o propiedades, unos serán capturados, otros, serán calculados en la clase, para realizar esto basta con crear métodos que hagan las actividades o procedimientos que se necesitan para resolver el problema.
Buenos días,
ResponderEliminarPuedes enlazar http://triancal.esy.es, mi calculadora de triángulos online en vuestra página.
Optimizada para el navegador Google Chrome.
Un saludo.
muy buen aporte
ResponderEliminar