Pages: [1]   Go Down
Print
Author Topic: Esercizio ricorsivo, scorretto?  (Read 655 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« on: 14-04-2010, 21:54:09 »

Ho provato a fare l'esercizio in cui bisogna scrivere un metodo che prenda in input un char e un array di caratteri e dica se il carattere è presente nell'array o meno, solo che non so se si può considerare fatto bene, ecco:

Code:
public class Appartenenza
{
public static void main(String [] args)
{
char [] s={'a','b','7','u','f','4','f'};
char c='a';
System.out.println(control(c,s));
}


       static int i=0;

public static boolean control(char a, char [] s)
{

boolean trovato=false;

assert s!=null;
assert i<s.length;

if(a==s[i]) return trovato=true;
else{
i++;
if(i<s.length)
return control(a,s);
      }
     
     
      return trovato;


/*boolean control=false;
for(int i=0; i<s.length; i++)
{
if(s[i]==a)
control=true;
}

return control;*/

}

}


Non so se è lecito creare quella static int i fuori dal metodo, all'interno di control() richiamo il metodo stesso, ma per come l'ho scritto va bene o è iterativo?
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
KingDavid
Forumista
***
Offline Offline

Posts: 788


Alla fine [...] tutta la realtà è binaria.


« Reply #1 on: 14-04-2010, 22:03:56 »

per evitare di crearti la variabile static i esterna la devi inserire come parametro della funzione
Code:
control(char a, char [] s, int i)
Ovviamente in tale caso, nel main dovresti invocare la funzione nella seguente maniera:
Code:
System.out.println(control(c,s, 0));
E la tua funzione è certamente ricorsiva.
« Last Edit: 14-04-2010, 22:06:02 by KingDavid » Logged

Basti pensare che un ipotetico quadrato di specchi, lungo 200 chilometri per ogni lato, potrebbe produrre tutta l'energia necessaria all'intero pianeta.
(Carlo Rubbia)
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #2 on: 14-04-2010, 22:09:03 »

Ah bene, non avevo considerato di inserire la variabili nel metodo perchè il prof non l'aveva specificato, ma pensandoci non è scorretto, d'altronde in qualche modo dovrò pur scorrere l'array 
Grazie mille.
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Pages: [1]   Go Up
Print
Jump to: