Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Java --- Ricorsione

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    104

    Java --- Ricorsione

    potete farmi un esempio facile di un programma completo che usa ricorsione in java?
    ad esempio un programma che si richiama incrementando una variabile e che esce quando la variabile è 10.


    grazie.

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao: ecco il codice; non l'ho provato ma dovrebbe andare:

    Codice PHP:
    public class TestRicorsione{

       public 
    void incrementaint x ){
          if( 
    10 ){
              
    x++;
              
    incrementa);
          }else{
             
    System.out.println"E' 10 oo maggiore" );
             
    System.exit(1);
          }
       }
       public static 
    void mainString[] arg ){ 
      
             new 
    TestRicorsione().incrementa);
       }

    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Scusa Angelo...
    ma nella ricorsione usi un System.exit, non mi sembra un esempio didattico. Appena riesco a far riprendere il pc... ci provo.
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Lo so Kate (penso caterina ), l'esempio, purtroppo mi è venuto così, a volte mi succede; basta togliere il System.exit. Cmq esso non inficia sulla ricorsione, si arriva a dieci e si esce dall'applicazione.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    104
    import java.io.*;
    import java.util.*;

    public class trova{

    int[] vettore=new int[10];

    public boolean trova( int sinistro ,int destro,int []vettore){
    int num=vettore[0];
    boolean trovato=false;
    int[] app=vettore;
    int a,b;
    b=destro;
    a=sinistro;
    if (vettore[((b-a)/2)]==num){
    trovato=true;
    }
    else{
    if (vettore[((b-a)/2)]<num){
    trova(((b-a)/2),b, app);
    }
    else
    {trova(a,((b-a)/2),app);
    }
    }

    return(trovato);

    }





    public static void main(String[]args){
    BufferedReader C = new BufferedReader (new InputStreamReader(System.in));
    String numeri="";

    try{
    System.out.println("Scrivi una serie di 10 numeri intervallati da uno "-", il primo numero è quello da ricercare all'interno della serie .I numeri successivi al primo devono esser scritti in ordine crescente") ;
    numeri=C.readLine();
    }catch (Exception e){System.out.println("errore");}
    StringTokenizer tokenizer = new StringTokenizer(numeri,"-");
    int[] vett=new int[10];
    for(int i=0;i<10;i++){
    vett[i]=Integer.parseInt(tokenizer.nextToken());
    }
    for(int i=0;i<10;i++){
    System.out.println(vett[i]);
    }

    boolean cerca=false;
    cerca=trova(1,9,vett);



    }


    }

    ho creato questo programma, con ricorsione
    il concetto era chiaro, grazie delle risposte.. il mio dubbio risiedeva altrove e fortunatamente ho risolto.


    Questo programma mi da un errore durante la fase di compilazione ed esattamente:

    C:\Programmi\Java\jdk1.5.0\bin\trova.java:53: non-static method trova(int,int,int[]) cannot be referenced from a static context
    cerca=trova(1,9,vett);


    sapreste scovarmi l'errore, perchè leggendo non riesco a capire dove metter le mani.

    Grazie ancora!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    104
    [scusate la mancata indentazione, ma sul copia incolla da jedit è saltata ]

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    rendi static il metodo trova:

    public static boolean trova( int sinistro ,int destro,int []vettore){ ....

    perche lo chiami d un metodo static (il main) e i metodi static possono solo acccedere a membri static.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    104
    scusa l'ignoranza e come dovrei correggerlo?

  9. #9
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Te l'hoscritto nel messaggio di prima...

    public static boolean trova( int sinistro ,int destro,int []vettore){ ....

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    104
    hai ragione

    scusa e 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 © 2024 vBulletin Solutions, Inc. All rights reserved.