Duda Ciclo-for

Iniciado por miguel_12, 28 Mayo 2013, 20:04 PM

0 Miembros y 1 Visitante están viendo este tema.

miguel_12

Hola a todos soy nuevo en el foro.
Estaba realizando unos ejercicios propuestos de un curso de java que estoy tomando el problema a resolver es el siguiente
"Confeccionar un programa que lea n pares de datos, cada par de datos corresponde a la medida de la base
y la altura de un triángulo. El programa deberá informar:
a) De cada triángulo la medida de su base, su altura y su superficie.
b) La cantidad de triángulos cuya superficie es mayor a 12. "

Hasta ahora lo que he echo es calcular la superficie y mostrarla, tambien mostrar los triangulos con superficies mayores a 12, el problema llega cuando tengo que mostrar la base y la altura de cada triangulo.Como lo podria hacer????


Muchas gracias a todos por su precioso tiempo  ;D ;D.
Aclaro que apena estoy empezando en esto de la programacion.
El codigo que llevo hasta ahora es el siguiente:
Código (java) [Seleccionar]

import javax.swing.*;
public class Problemas1 {

public static void main(String[] args) {

float base_n = 0;
float altura_n = 1;
float superficie_n = 0;
int c= 0;
int dato_n = 1;
String dato = JOptionPane.showInputDialog("A cuantos triangulo le desea averiguar la superficie???");
dato_n=Integer.parseInt(dato);
int cantidad = 0;
for (c=1;c<=dato_n;c ++){

String base = JOptionPane.showInputDialog("Digite la base del triangulo"+" Triangulo=>"+c);
String altura = JOptionPane.showInputDialog("Digite la altura del triangulo"+"Triangulo=>"+c);

base_n = Float.parseFloat(base);
altura_n =Float.parseFloat(altura);

superficie_n = altura_n*base_n/2;

JOptionPane.showMessageDialog(null,"la superficie es: "+superficie_n);

if (superficie_n>12){

cantidad = cantidad + 1;
}

}

JOptionPane.showMessageDialog(null," Los triangulos con superficies mayores a 12 son: "+cantidad);

}

}


YairMon

Por favor explicate mejor, no puedo entenderte

¿Quieres mostrar la base y altura de cada uno?

en que momento?
podrias agregar una linea de codigo joptionpane:



Código (java) [Seleccionar]


String mensaje = "Triangulo de " + base_n + " de base";
mensaje += "\nY de " + altura_n + " de altura";
JOptionPane.showMessageDialog(null, mensaje + "\nSu superficie es: " +superficie_n);
// '\n' es un salto de linea (Por si no lo sabes)

miguel_12

quiero mostrar la base y la altura de todos los triangulos ingresados anteriormente espero me entiendas

miguel_12

Muchas graciass por tu ayuda :D :D :D

YairMon

#4
Hmm

YairMon

#5
Todo depende de cuantos triangulos agregues:

Osea puedes hacer un Vector de 'floats' (o varios) que almacene todos los datos que ingresaron

entonces:


Código (java) [Seleccionar]

import javax.swing.*;

public class Problemas1 {

public static void main(String[] args) {

float base_n = 0;
float altura_n = 1;
float superficie_n = 0;
int c = 0;
int dato_n = 1;
String dato = JOptionPane
.showInputDialog("A cuantos triangulo le desea averiguar la superficie???");
dato_n = Integer.parseInt(dato);
// Creo dos vectores de 'float' de tamaño del numero de triangulos
// Que almacenen todas las bases y las alturas
float[] bases = new float[dato_n];
float[] alturas = new float[dato_n];

int cantidad = 0;
for (c = 1; c <= dato_n; c++) {

String base = JOptionPane.showInputDialog("Digite la base del triangulo Triangulo=>" + c);
String altura = JOptionPane.showInputDialog("Digite la altura del triangulo Triangulo=>" + c);

base_n = Float.parseFloat(base);
altura_n = Float.parseFloat(altura);

// Por cada iteracion del for se van agregando las alturas
// y las bases ( pos c-1 ya que el arreglo empieza en 0 )
bases[c-1] = base_n;
alturas[c-1] = altura_n;

superficie_n = altura_n * base_n / 2;

JOptionPane.showMessageDialog(null, "\nSu superficie es: " +superficie_n);

if (superficie_n > 12) {

cantidad = cantidad + 1;
}

}// <- cierre del for

// Creo un string donde se va a guardar un largo mensaje
// Con todas las alturas y bases de todos los triangulos ingresados
String mensaje = "";
// Abro otro 'for' para mostrar todas las alturas
// Desde 'i' igual a 0 hasta el tamanio de las bases (tambien puede ser de las alturas)
for(int i = 0; i < bases.length; i++){
// A mensaje le sumo el numero del triangulo (i+1) porque empieza en 0
mensaje += "Triangulo " + (i+1);
// Le sumo la base y la altura
mensaje += " - base: " + bases[i] + " - altura: " + alturas[i];


// Y un salto de linea
mensaje += "\n";
}

// Muestro al final un mesaje con el string 'mensaje'
JOptionPane.showMessageDialog(null, mensaje);



JOptionPane.showMessageDialog(null, " Los triangulos con superficies mayores a 12 son: "
+ cantidad);

}

}



PD: Tambien puedes agregar otro arreglo de floats con los datos de la superficie, y lo llenas de igual manera que las bases y alturas , y simplemente en el otro 'for' añades una linea.

Algo como: mensaje += "- Superficie: " + superficies ;

Si entiendes el codigo será facil añadirlo

(Presioné 'Quote' en vez de 'Modify' y postee dos veces, lo siento  :(  )

miguel_12

Genial muchas gracias te lo agradezco mucho  :D ;D ;-) ;-)

resolviste mi problema pero yo aun no manejo ventores apenas estoy empezando en esto

muchas gracias