Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Gestione di più oggetti

    ciao a tutti ho un problema devo gestire operazioni su piu oggetti, cioè ho tre oggetti con due parametri e devo fare delle operazioni combinate tra di loro

    ad esempio tre oggetti a, b e c e devo fare delle operazioni tra questi oggetti del tipo

    a con b
    a con c
    b con c

    però questi oggetti possono essere anche due o magari piu di tre...come potrei gestire una cosa del genere?
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    cosa intendi precisamente con "a con b"?Cosa intendi fare con questi due elementi?
    fammi un esempio magari...non ti ho capito

  3. #3
    a b c sono tre oggetti (punti di un piano) e a seconda di quanti ne ho devo calcolare la distanza fra due punti ma in uttte le combinazioni

    cioè se ne ho due
    calcolo la distanza tra a e b
    se ne ho tre
    tra a e b, tra a e c e tra b e c
    e cosi via
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  4. #4
    Prova con un array di oggetti. Poi grazie alla varibile tuo_array.length vedi quanti elementi hai in esso e puoi agire ai vari confronti.
    http://jkkl.netsons.org

  5. #5
    un esempio??
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    per prima cosa costruisci un metodo che calcoli la distanza fra due punti.
    Per far ciò scegli tu se usare un metodo d'istanza(cioè applicandolo fai p1.distanza(p2)) oppure tramite metodo statico (ex:NomeClasse.distanza(p1,p2)).
    Una volta costruito il metodo potresti fare qualcosa con un ciclo for tipo:
    hai quattro punti1,p2,p3,p4
    potresti metterli ad esempio in un array di Point
    Point [] punti=new Point[numeroPunti];
    e fare
    considero ora come se i metodi fossero stati creati statici:
    codice:
    for(int i=0;i<punti.length-1;i++){
    for(int j=i+1;j<punti.length;j++){
    distanza(punti[i],punti[j]);
    }
    }
    e ricorda di slavare tutti i risultati restituiti dentro qualche variabile...altrimenti li perdi!

    non l'ho provato quindi non sono sicuro che funzioni...vedi tu!

  7. #7
    codice:
    package geometria;
    
    public class Punto{
    	private double x, y;
    	public Punto(){//costruttore di default
    		this(0,0);
    	}
    	public Punto( double x, double y ){//costruttore normale
    		this.x=x; this.y=y;
    	}
    	public Punto( Punto p ){//costruttore di copia
    		x=p.x; y=p.y;
    	}
    	public double getX(){ 
    		return x;
    	}
    	public double getY(){ 
    		return y; 
    	}
    	public void sposta( double nuovaX, double nuovaY ){
    		x=nuovaX; y=nuovaY;
    	}//sposta
    	public double distanza( Punto p ){
    		return Math.sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)); 
    	}//distanza
    	public String toString(){
    		return "<"+String.format("%1.2f",x)+","+String.format("%1.2f",y)+">";
    	}//toString
    	public static void main( String[] args ){
    		Punto p=new Punto(5,7);
    		System.out.println(p);
    		p.sposta(3.567,-4.6789);
    		System.out.println(p);
    	}
    }//Punto
    Una cosa del genere può aiutare?

    Mancano l'equals() e l'hashCode(), ma è sostanzialmente ciò che accade tra punti in coordinate su un piano cartesiano!

    Precisamente il metodo
    codice:
    	public double distanza( Punto p ){
    		return Math.sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)); 
    	}//distanza
    Ti restituisce la distanza tra due punti.

  8. #8
    una mezza idea me l'hai data ora ti faccio vedere un pò del mio codice


    Case uno = new Case(3,2); //qui il numero 3 indica i punti che ho (a, b , c)
    Point a = new Point(0,0);// questi sono i 3 punti
    Point b = new Point(2,0);
    Point c = new Point(10,0);

    Point [] punti=new Point[punti.length]; // da qui in poi è quello che mi hai dato tu

    for(int i=0;i<punti.length-1;i++){
    for(int j=i+1;j<punti.length;j++){
    double dist = punti[i].calcoloDis(punti[i],punti[j]);

    }
    }


    solo che è un macello oraganizzarlo
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  9. #9
    Il vantaggio di utilizzare un array qual è?

  10. #10
    il vantaggio sta nel fatto che io come input posso avere un numero di punti a caso, quindi questi due cicli mi gestisce bene le varie combinazioni di calcolo
    a b
    a c
    b c
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

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.