Problema metodo

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
maghico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 297
Iscrizione: martedì 13 febbraio 2007, 12:02

Problema metodo

Messaggio da maghico »

Ciao a tutti ho un problema con un metodo in java, vi posto quello che devo fare:

Codice: Seleziona tutto

Il metodo parolaPiuFrequente() prende come argomento un array di stringhe,
    conta le occorrenze delle stringhe contenute nell'array (cioe` conta il
    numero di volte in cui una stringa compare nell'array) e restituisce una coppia
    formata dalla stringa che ha il maggior numero di occorrenze *contigue* e dal
    numero di occorrenze della stringa stessa.
    Se tutte le stringhe hanno lo stesso numero di occorrenze il metodo restituisce
    la coppia <"", 0>.
    Ad esempio, dato l'array <"bianco", "blu", "blu", "rosso", "rosso", "rosso", "verde">,
    il metodo restituira' la coppia <"rosso", 3>.
    -Suggerimento-
     Dovete utilizzare quattro variabili, la prime due servono rispettivamente per memorizzare
     la stringa correntemente esaminata e per contare via via le sue occorrenze, le seconde due
     servono rispettivamente per memorizzare la stringa che occorre di piu` fino a quel momento e
     il numero di volte in cui occorre. Alla fine, nelle seconde due avremo il risultato che va
     messo dentro la Coppia risultato.
adesso vi posto il codice che ho fatto io:

Codice: Seleziona tutto

public static Coppia parolaPiuFrequente(String [] r) {
 	String a = "";
 	int b = 0;
 	String c = "";
 	int d = 0;
 	
 	for(int i = 0; i < r.length; i++)
 		if(r[i].equals(r[i+1])){
 			a = r[i];
 			b++;
 			c = a;
 			d = b;
 		}
 		return ;
 }
}
quando compilo mi dice che il return vuole un valore Coppia!
qualche suggerimento?grazie mille.
Avatar utente
Markon
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1536
Iscrizione: mercoledì 17 gennaio 2007, 10:34
Località: Sperone Beach(AV)
Contatti:

Re: Problema metodo

Messaggio da Markon »

Ciao!
Non ho mai approfondito Java, però da quello che vedo :

- il 'return' non ritorna niente, quando invece dovrebbe ritornare un oggetto Coppia, dato che tu nella definizione della funzione gli hai detto:

Codice: Seleziona tutto

public static TipoDaRitornare=Coppia nomeMetodo=parolaPiùFrequente()...
Sto cercando di capire come potresti risolvere, anche se certe cose mi risultano veramente strane...come:

Codice: Seleziona tutto

 			a = r[i];
 			b++;
 			c = a;
 			d = b;
Io avrei prima fatto una funzione che conta quante volte ricorre un elemento (non so se in Java ci sia, ma mi pare di sì..) e poi avrei effettuato un confronto iterando sull'array o lista di elementi.

Codice: Seleziona tutto

public static int conta(array, elemento){
     int x = 0;

     for(i=0; i < array.length; i++){
         if elemento.equals(array[i])
            x++;
    }

    return x;
} 

Codice: Seleziona tutto

public static MAP parolaPiuFrequente(String [] r){
     Map dict = new Map();  // purtroppo non so dichiarare un oggetto map in java :/
     for(i=0; i < r.length; i++){
         dict.put(conta(r, r[i]), r[i]); // inserisce gli elementi in questo modo : 1=rosso, 2=verde ...(o almeno dovrebbe..)
    }
    return dict;
}
Purtroppo non so continuare, ma in sostanza avresti dovuto ritornare il numero più alto dell'oggetto map .... e poi usare un 'get'..
Spero di esserti stato d'aiuto... :/

Ciao
My Guitar Wants to Kill your Mama!

DIVENTA PYTHONEER
Avatar utente
maghico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 297
Iscrizione: martedì 13 febbraio 2007, 12:02

Re: Problema metodo

Messaggio da maghico »

grazie mille adesso provo e se ho qualche problema chiedo ancora aiuto...cmq si ho fatto un po di confusione e infatti adesso lo stavo rivedendo...grazie ancora!
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti