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

    [java]tipo di valore restituito da un metodo

    Ancora una volta problemi con java:

    Ho realizzato un metodo con il quale dovrei restituire una cosa del genere:

    return float+" "+float;

    Il che significa che il metodo non può essere4 dichiarato come se restituisse un dato float.

    Ho pensato di convertire in stringa i 2 dati int,per poterli associare allo spazio che ho inserito nel return.

    Ma il fatto è che in java,se ho capito bene,non esiste il tipo di dato String,il quale è solo una classe con vari metodi implementati.

    Come bisogna fare?

  2. #2

    Re: [java]tipo di valore restituito da un metodo

    Originariamente inviato da matrics21
    Ancora una volta problemi con java:

    Ho realizzato un metodo con il quale dovrei restituire una cosa del genere:

    return float+" "+float;

    Il che significa che il metodo non può essere4 dichiarato come se restituisse un dato float.

    Ho pensato di convertire in stringa i 2 dati int,per poterli associare allo spazio che ho inserito nel return.

    Ma il fatto è che in java,se ho capito bene,non esiste il tipo di dato String,il quale è solo una classe con vari metodi implementati.

    Come bisogna fare?
    spiega per benino cosa riceve in input questa funzione e cosa deve fare, che guardo di darti una mano.
    [Homepage] [Contattami]
    Powered by: Ubuntu - Debian - Gentoo
    Developing: Java - C++ - PHP

    [supersaibal]"Perchè tanto Debian è meglio"
    [/supersaibal]

  3. #3
    class calcoli
    {
    public float valuta()
    {
    double passo=0.1;
    double x1=0.1;
    double x2=x1+passo;
    double y1=0;
    double y2=0;
    double segno=1;
    double mediox=0;
    double medioy=0;
    double segno2=1;
    while(segno>0)
    {
    y1=Math.log(x1)+Math.sqrt(x1+1);
    y2=Math.log(x2)+Math.sqrt(x2+1);
    segno=y1*y2;
    x1=x2;
    x2=x2+passo;
    }

    // RITORNA ALL'INTERVALLO DOVE CADE LO ZERO

    x2=x1;
    x1=x1-passo;

    // SECONDA PARTE

    mediox=(x1+x2)/2;
    medioy=Math.log(mediox)+Math.sqrt(mediox+1);
    segno=y1*medioy;
    segno2=medioy*y2;
    while((segno<0)||(segno2<0))
    {
    if(segno<0)
    {
    x2=mediox;
    mediox=(x1+x2)/2;
    y1=Math.log(x1)+Math.sqrt(x1+1);
    y2=Math.log(x2)+Math.sqrt(x2+1);
    medioy=Math.log(mediox)+Math.sqrt(mediox+1);
    segno=y1*medioy;
    segno2=medioy*y2;
    }
    else if(segno2<0)
    {
    x1=mediox;
    mediox=(x1+x2)/2;
    y1=Math.log(x1)+Math.sqrt(x1+1);
    y2=Math.log(x2)+Math.sqrt(x2+1);
    medioy=Math.log(mediox)+Math.sqrt(mediox+1);
    segno=y1*medioy;
    segno2=medioy*y2;
    }
    }
    mediox=(float)Math.round(mediox*1000)/1000;
    return mediox+" - "+medioy;
    }
    }


    in pratica questo metodo prendendo la funzione y=log(x)+rad. q(x+1) deve calcolarsi il punto in cui la funzione vale 0.

    per fare questo si prende un punto qualsiasi purchè appartenente al dominio,e con un passo scelto da me,dopo determinati calcoli,trova qual'è questo punto.

    la funzione non ha nessun dato in input,restituisce solo le cordinate del punto in cui la funzione va a zero.

    E' molto scarno come programma,ma è questo che mi hanno richiesto.

  4. #4
    nulla?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Punto primo: in Java TUTTO (tranne i tipi di dato predefinito, come int, boolean, char, byte) sono degli oggetti. String anche è un oggetto.

    Quindi non vedo la difficoltà di restituire un tipo di dato String.

    codice:
    public String nomeMetodo() {
       ...// codice del metodo
       return "" + float + " " + float;
    }
    In alternativa, visto che mi sembra che tu debba tenere distinti i due valori float, ti consiglio di implementare un metodo che ti restituisce un array di 2 float (visto che non sembra ti piacciano gli oggetti... almeno gli array!):

    codice:
    public float[] nomeMetodo() {
       float [] tmp = new float[2];
       ...// codice del metodo
       tmp[0] = <primofloat>;
       tmp[1] = <secondofloat>;
       return tmp;
    }
    Spero sia tutto chiaro.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    chiarissimo.
    farò nel primo modo.

    grazie

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.