Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9

    Dichiarazione lati triangolo

    Salve. Io ho un problema nel dichiarare i lati di un triangolo, nel senso che io ho inserito il codice che legge da tastiera le coordinate dei 3 punti e poi ho:

    p1=(x1,y1);
    p2=(x2,y2)
    p3=(x3,y3)


    fin qui tutto ok; il mio problema nasce quando devo definire un metodo boolean per i tre punti in quanto devo verificare se il triangolo è isoscele.

    Io vorrei una cosa simile:

    public static boolean Isoscele(triangolo t1) { ...


    dove triangolo t1= p1,p2,p3; (per evitare di inserire tutti i punti nelle parentesi)

    solo che ho provato a farlo così ma mi da errore...come posso mettere i tre punti in modo che l applicazione capisca che fanno parte di un triangolo?
    Non so se mi sono spiegato XD

  2. #2
    Devi definire una classe Triangolo:
    codice:
    import java.awt.Point;
    public class Triangolo{
        private Point p1;
        private Point p2;
        private Point p3;
    
        ....costruttori
    
        ....metodi
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9
    Mi spiego meglio.
    L applicazione è questa:





    import fiji.io.*;

    /*Applicazione che verifica se un triangolo è isoscele.*/

    class Triangolo
    {
    /* Coordinata x dei punti. */

    double x;

    /* Coordinate y dei punti. */

    double y;

    /* Crea un nuovo Punto di coordinate (xx,yy). */

    public Triangolo(double xx, double yy) {
    this.x = xx;
    this.y = yy;
    }
    }


    class TriangoloIsoscele
    {

    /*Dichiarazione di un metodo di classe boolean*/

    public static boolean Isoscele(Triangolo t1) {

    /*Dichiarazione delle variabili*/

    double qd12,qd13,qd23; /*Quadrati delle distanze*/
    double d12,d13,d23; /*Distanze fra i punti*/
    boolean cond;


    cond=false;

    /* calcola il quadrato delle distanze fra i punti */

    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);

    /* calcola le distanze fra i punti*/

    d12 = Math.sqrt(qd12);
    d13 = Math.sqrt(qd13);
    d23 = Math.sqrt(qd23);


    if (d12==d13 && d12!=d23 || d12==d23 && d12!=d13 || d13==d23 && d13!=d12)
    cond=true;

    return cond;

    }
    public static void main(String[] args){

    double a,b;
    Triangolo p1,p2,p3;


    System.out.println("Inserire la coordinata x del primo punto ");
    a= Lettore.in.leggiDouble();

    System.out.println("Inserire la coordinata y del primo punto ");
    b= Lettore.in.leggiDouble();


    System.out.println("Inserire la coordinata x del secondo punto ");
    a= Lettore.in.leggiDouble();

    System.out.println("Inserire la coordinata y del secondo punto ");
    b= Lettore.in.leggiDouble();


    System.out.println("Inserire la coordinata x del terzo punto ");
    a= Lettore.in.leggiDouble();

    System.out.println("Inserire la coordinata y del terzo punto ");
    b= Lettore.in.leggiDouble();


    p1= new Triangolo(a,b);
    p2= new Triangolo(a,b);
    p3= new Triangolo(a,b);

    Triangolo t1= p1,p2,p3;




    /*Esecuzione del metodo*/

    Triangolo t1(p1,p2,p3);
    if(Triangolo t1(p1,p2,p3)==true)
    System.out.println("Iltriangolo è isoscele.");
    else
    System.out.println("Il triangolo non e' isoscele.")

    }

    }





    E' chiaro che il problema sta nel metodo di classe boolean perchè triangolo t1 non riesce a identificarlo in quanto:
    triangolo t1=p1,p2,p3;
    è sbagliato...perchè giustamente non posso assegnare ad una variabile 3 variabili...
    come posso fare?
    Ho provato con un altro metodo di classe ma non ci sono riuscito.
    Altra cosa ma p1,p2,p3 li ho dichiarati già come "Triangolo" giusto? Quindi non devo ulteriormente dichiararli..
    Grazie!

  4. #4


    Perchè non provi a spiegare a parole ciò che devi fare? Anche se prevedo duri studi per la comprensione della OOP.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    La classe Triangolo dovrebbe chiamarsi Punto/Point (come preferisci insomma) in quanto non rappresenta un triangolo, ma punti nel piano cartesiano...

    Ma come già ti ho detto ti basta una sola classe per fare il tutto!

    codice:
    import java.awt.Point;
    public class Triangolo{
        private Point p1;
        private Point p2;
        private Point p3;
    
        public Triangolo(Point p1, Point p2, Point p3){
            this.p1 = p1;
            this.p2 = p2;
            this.p3 = p3;
        }
    
        public boolean isIsoscele(){
               //qui fai tutti i calcoli necessari
        }
    
        ...altri metodi
    }
    Oppure se proprio ci tieni alla tua classe Triangolo (che però devi assolutamente rinominare) senza apportare modifiche sostanziali alla struttura del tuo codice dovresti fare:
    codice:
    class Punto2D
    {
      public double x;
      public double y;
    
      public Punto2D(double xx, double yy) {
         this.x = xx;
         this.y = yy;
      }
    }
    
    public class MainClass
    {
    
       public static boolean isoscele(Punto2D points[]) {
           //tutti i calcoli necessari
       }
    
       public static void main(String[] args){
         double a,b;
         Punto2D points[] = new Punto2D[3];
    
         System.out.println("Inserire la coordinata x del primo punto ");
         a= Lettore.in.leggiDouble();
    
         System.out.println("Inserire la coordinata y del primo punto ");
         b= Lettore.in.leggiDouble();
    
         points[0] = new Punto2D(a, b);
         
         //...e così via per altre due volte (incrementando l'indice)
    
         /*Esecuzione del metodo*/
    
         if( MainClass.Isoscele(points) )
            System.out.println("Iltriangolo è isoscele.");
         else
            System.out.println("Il triangolo non e' isoscele.")
       }
    }
    Ma è strettamente consigliata la logica precedente.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9
    Ok però andando a controllare mi da tanti errori...tutti gli stessi, cioè:


    cannot find symbol
    symbol : variable p1

    cannot find symbol
    symbol : variable p2

    cannot find symbol
    symbol : variable p3





    Come se io non le avessi dichiarate, invece io dopo aver chiamato la classe punto "Punto" le ho dichiarate in questo modo:


    Punto p1,p2,p3;


    e poi li ho codificati tali da mettere da input il loro valore:



    p1= new Punto(a,b);
    p2= new Punto(a,b);
    p3= new Punto(a,b);

  7. #7
    Perchè non posti lo stacktrace dell'eccezione completo?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9
    Eccolo...come detto prima, il problema è che non mi vede i 3 punti nella classe boolean
    Io penso che sia sbagliato quelle che dopo public static boolean ho scritto fra ().





    import fiji.io.*;
    import java.awt.Point;

    /*Applicazione che verifica se un triangolo è isoscele.*/

    class Punto
    {
    /* Coordinata x dei punti. */

    double x;

    /* Coordinate y dei punti. */

    double y;

    /* Crea un nuovo Punto di coordinate (xx,yy). */

    public Punto(double xx, double yy) {
    this.x = xx;
    this.y = yy;
    }
    }


    class TriangoloIsoscele
    {

    /*Dichiarazione di un metodo di classe boolean*/

    public static boolean Isoscele(Punto points) {

    /*Dichiarazione delle variabili*/

    double qd12,qd13,qd23; /*Quadrati delle distanze*/
    double d12,d13,d23; /*Distanze fra i punti*/
    boolean cond;


    cond=false;

    /* calcola il quadrato delle distanze fra i punti */

    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);

    /* calcola le distanze fra i punti*/

    d12 = Math.sqrt(qd12);
    d13 = Math.sqrt(qd13);
    d23 = Math.sqrt(qd23);


    if (d12==d13 && d12!=d23 || d12==d23 && d12!=d13 || d13==d23 && d13!=d12)
    cond=true;

    return cond;

    }
    public static void main(String[] args){

    double a,b;
    Punto points[] = new Punto[3];
    Punto p1,p2,p3;


    System.out.println("Inserire la coordinata x del primo punto ");
    a= Lettore.in.leggiDouble();

    System.out.println("Inserire la coordinata y del primo punto ");
    b= Lettore.in.leggiDouble();


    System.out.println("Inserire la coordinata x del secondo punto ");
    a= Lettore.in.leggiDouble();

    System.out.println("Inserire la coordinata y del secondo punto ");
    b= Lettore.in.leggiDouble();


    System.out.println("Inserire la coordinata x del terzo punto ");
    a= Lettore.in.leggiDouble();

    System.out.println("Inserire la coordinata y del terzo punto ");
    b= Lettore.in.leggiDouble();


    p1= new Punto(a,b);
    p2= new Punto(a,b);
    p3= new Punto(a,b);



    /*Esecuzione del metodo*/

    if(Isoscele(points)==true)
    System.out.println("Iltriangolo e' isoscele.");
    else
    System.out.println("Il triangolo non e' isoscele.");

    }

    }




  9. #9
    Non ho chiesto il codice sorgente, ma lo stacktrace dell'eccezione. Praticamente quello che ti vien fuori a video quando esegui l'applicazione e ti va in errore.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9
    Sono tanti errori ma tutti gli stessi:


    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 3: cannot find symbol
    symbol : variable p1
    location: class TriangoloIsoscele
    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 3: cannot find symbol
    symbol : variable p2
    location: class TriangoloIsoscele
    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 3: cannot find symbol
    symbol : variable p1
    location: class TriangoloIsoscele
    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 3: cannot find symbol
    symbol : variable p2
    location: class TriangoloIsoscele
    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 3: cannot find symbol
    symbol : variable p1
    location: class TriangoloIsoscele
    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 3: cannot find symbol
    symbol : variable p2
    location: class TriangoloIsoscele
    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 3: cannot find symbol
    symbol : variable p1
    location: class TriangoloIsoscele
    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 3: cannot find symbol
    symbol : variable p2
    location: class TriangoloIsoscele
    qd12 = (p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 4: cannot find symbol
    symbol : variable p1
    location: class TriangoloIsoscele
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 4: cannot find symbol
    symbol : variable p3
    location: class TriangoloIsoscele
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 4: cannot find symbol
    symbol : variable p1
    location: class TriangoloIsoscele
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 4: cannot find symbol
    symbol : variable p3
    location: class TriangoloIsoscele
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 4: cannot find symbol
    symbol : variable p1
    location: class TriangoloIsoscele
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 4: cannot find symbol
    symbol : variable p3
    location: class TriangoloIsoscele
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 4: cannot find symbol
    symbol : variable p1
    location: class TriangoloIsoscele
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 4: cannot find symbol
    symbol : variable p3
    location: class TriangoloIsoscele
    qd13 = (p1.x - p3.x)*(p1.x - p3.x) + (p1.y - p3.y)*(p1.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 5: cannot find symbol
    symbol : variable p2
    location: class TriangoloIsoscele
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 5: cannot find symbol
    symbol : variable p3
    location: class TriangoloIsoscele
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 5: cannot find symbol
    symbol : variable p2
    location: class TriangoloIsoscele
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 5: cannot find symbol
    symbol : variable p3
    location: class TriangoloIsoscele
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 5: cannot find symbol
    symbol : variable p2
    location: class TriangoloIsoscele
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 5: cannot find symbol
    symbol : variable p3
    location: class TriangoloIsoscele
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 5: cannot find symbol
    symbol : variable p2
    location: class TriangoloIsoscele
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:4 5: cannot find symbol
    symbol : variable p3
    location: class TriangoloIsoscele
    qd23 = (p2.x - p3.x)*(p2.x - p3.x) + (p2.y - p3.y)*(p2.y - p3.y);
    ^
    C:\Users\Giuseppe\Desktop\TriangoloIsoscele.java:9 6: Isoscele(Punto) in TriangoloIsoscele cannot be applied to (Punto[])
    if(Isoscele(points)==true)
    ^
    25 errors

    Procedura completata con codice di uscita 1

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.