Ciao, a tutti; sono abbastanza inesperto in java e attualmente sono in fase esercitazioni. Mi sapreste aiutare con questo piccolo e (credo) molto banale programmino che sto facendo? non è un esercizio preso da un testo, bensì una prova a cui mi sto sottoponendo. ora vi posto il codice, premetto che il programma dovrebbe ricevere in input tramite scanner le coordinate cartesiane di un rettangolo e, in automatico tramite metodi da me definiti, trovare base, altezza, perimetro e area. Il problema è questo: ho definito i metodi vari(qui ce n'è solo uno per fare prima ma so che dovrebbero essere uno per ogni "funzione" che il programma deve avere), ma una volta chiamato il metodo nel main il risultato che mi dà in output anzicchè i valori desiderati sono un gruppo di zeri(uno zero per base, uno per altezza...). tutto il programma funziona, solo il metodo dà problemi, quindi mi chiedevo se fosse un problema del tipo visibilità e passaggio errato dei parametri oppure se il metodo fosse scritto male come logica. ringrazio infinitamente chiunque mi aiuterà e chiedo scusa se violo inavvertitamente qualche regola(non sono pratico nei forum). grazie mille
import java.util.Scanner;
public class Rettangolo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i, j;
double base = 0, altezza = 0, perimetro = 0, area = 0;
double[][] coordinate = new double[4][2];
System.out.println("inserisci le coordinate del rettangolo,"
+ "\nogni coordinata è composta da 2 valori."
+ "\nLe prime 2 coordinate sono i vertici della base"
+ "\nmentre le altre 2 coordinate sono i vertici dell'altezza");
for(i=0; i<4; i++) {
for(j=0; j<2; j++) {
System.out.print("inserisci il valore [" + i + "]["+ j + "]: ");
coordinate[i][j] = scanner.nextDouble();
}
}
System.out.println("le coordinate da te inserite sono: ");
for(i=0; i<4; i++) {
for(j=0; j<2; j++) {
System.out.println( coordinate[i][j]);
}
}
System.out.println("\nbase = x2-x1");
System.out.println("x1=(" + coordinate[0][0] + ";" + coordinate[0][1] + ")");
System.out.println("x2=(" + coordinate[1][0] + ";" + coordinate[1][1] + ")");
System.out.println("altezza = y2-y1");
System.out.println("x2=(" + coordinate[2][0] + ";" + coordinate[2][1] + ")");
System.out.println("x2=(" + coordinate[3][0] + ";" + coordinate[3][1] + ")");
Rettangolo.getDimensioni(area);
}
public static void getDimensioni(double area) {
double[][] punti = new double[4][2];
double perimetro;
double tmp = Math.pow((punti[3][0] - punti[2][0]), 2);
double tmp1 = Math.pow((punti[3][1] - punti[2][1]), 2);
double altezza = Math.sqrt(tmp + tmp1);
double tmp2 = Math.pow((punti[1][0] - punti[0][0]), 2);
double tmp3 = Math.pow((punti[1][1] - punti[0][1]), 2);
double base = Math.sqrt((tmp2 + tmp3));
area = base * altezza;
perimetro = (base * 2) + (altezza * 2);
System.out.println("base= " + base);
System.out.println("altezza= " + altezza);
System.out.println("perimetro= " + perimetro);
System.out.println("area= " + area);
}
}