Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Ricerca Valore Piu' Vicino A Zero

    Buongiorno!
    Esercitandomi per l'esame mi sono imbattutta in questo esercizio da cui non riesco ad uscirne:

    "Un oggetto della classe TabellaDiNumeri rappresenta una tabella (una matrice) di numeri reali (i numeri possono anche essere negativi). la classe ha il seguenta scheletro

    codice:
     class TabellaDiNumeri{
    /*Costruttore: crea un oggetto TabellaDiNumeri che rappresenta la tabella
    tab passata come parametro*/
    public TabellaDiNumeri (double[][] tab){…}
    
    /*Restituisce il numero della tabella il cui valore è più vicino a zero*/
    public double vicinoAZero (){…}
    
    /*Restituisce una descrizione completa della tabella sotto forma di
    oggetto String*/
    public String toString (){…}
    Il mio problema nasce per il metodo vicinoAZero() in cui non so come inizializzare una variabile.

    Supponiamo stabilisca due variabili

    double pos
    double neg

    e per ogni posizione dell'array, a seconda che il valore sia positivo o negativo lo confronto con pos o neg e le aggiorno nel momento in cui trovo un valore più piccolo (o più grande, nel caso in cui si tratti dei negativi) alla fine del ciclo confronto le due variabili e faccio restituire il numero più vicino a zero utilizzando il valore assoluto.
    Ma non so come inizializzarle appunto, non posso definire un numero arbitrario per me sufficientemente grande, per esempio 100, perchè se poi nel mio array ci fossero tutti valori maggiori di 100 non ci sarebbe il ritorno.

    Spero possiate aiutarmi!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Ricerca Valore Piu' Vicino A Zero

    Originariamente inviato da zitellic
    Ma non so come inizializzarle appunto, non posso definire un numero arbitrario per me sufficientemente grande, per esempio 100, perchè se poi nel mio array ci fossero tutti valori maggiori di 100 non ci sarebbe il ritorno.
    Vedi il MAX_VALUE di Double, da usare in positivo e in negativo.
    Altrimenti un'altra soluzione è usare un "flag" (boolean) che dice se hai già usato il pos o neg oppure no (e in tal caso è da inizializzare comunque con il primo valore che trovi).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ti servono davvero le due variabili pos e neg? Che te ne fai in definitiva?
    Strategia:

    codice:
    passo 0: 
    double pivot = tabella_numeri[0][0]; 
    //per ipotesi il tuo valore di ritorno
    
    passo 1:
    ciclo for i:
      ciclo for j:
        se ABS(tabella_numeri[i][j]) < ABS(pivot) => pivot = tabella_numeri[i][j]
    
    passo 2:
    return pivot;
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Grazie andrea1979, alla fin fine con le due variabili pos e neg c'ero riuscita ma era lunghissimo, pesantissimo e non mi convinceva per niente.

    adesso è tutto ok!!!

    è veramente il modo più semplice e chiaro...non riesco a capire come ho fatto a non pensarci!!!

    grazie mille ancora!!!!

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.