|
|
|
 |
|  |
 |
gabry_deejay |
RAGA......... altri tre programmi da fare!!!!!!! e ... |
21-11-2003 01:14 |
|
 |
gabry_deejay |
.grande:maestro.

Registered: Oct 2003
Posts: 2284 (0.29 al dì)
Location: Cernusco sul Naviglio!
Corso: Digital Communication!
Anno: Secondo+Primo arretrato!
Time Online: 9 Days, 0:40:50 [...]
Status: Offline
Edit | Report | IP: Logged |
RAGA......... altri tre programmi da fare!!!!!!! e che programmi :
1-Scrivere la classe ConcatenaStringhe che lette due stringhe ne crea una terza contenente la loro concatenazione, il tutto usando solo i metodi charAt e setCharAt() della classe StringBuffer. Costruita la terza stringa stamparla a video.
Suggerimenti: costruire la stringa risultato come una istanza della classe StringBuffer di dimensione la somma delle lunghezze delle due stringhe passate in input. Usare quindi charAt() e setCharAt() per copiare le stringhe nella stringa risultato.
Esempio di esecuzione:
Stringa 1: Corso di Laurea in
Stringa 2: Comunicazione Digitale.
Stringa Concatenata: Corso di Laurea in Comunicazione Digitale.
------------------------------------------------------------------
2-Scrivere la classe Bizarre che letta una stringa in input ne converta in loco (cioè senza creare un'altra stringa e senza stamapre direttamente il risultato) il case (cioè cambi ogni carattere maiuscolo in minuscolo e ogni carattere minuscolo in maiuscolo). Stampare alla fine, cioè dopo la conversione, la stringa convertita.
Suggerimento: usare variabili di tipo StringBuffer.
Esempio di esecuzione:
Stringa da Convertire: TRentaTRE TRENTINI entrarono in TRento tutti e TRENTATRE TROTTERELLANDO.
Stringa Convertita: trENTAtre trentini ENTRARONO IN trENTO TUTTI E trentatre trotterellando.
------------------------------------------------------------------
3-Scrivere la classe StatisticaFrequenze che preso un testo in input stili un rapporto sulle frequenze con cui si presentano le varie parole all'interno del testo. Assumere che il testo contenga al più 2000 parole distinte (Nota questo non vuol dire che il testo contiene al più 2000 parole). La punteggiatura ammessa nel testo e che ovviamente non contribuisce al computo delle parole sono esclusivamente il punto e la virgola. Parole uguali ma con case diverso sono da considerarsi uguali, es. Casa e casa sono la stessa parola.
Suggerimenti:
usare due array uno per le stringhe (chiamato dizionario) e l'altro per le frequenze delle stesse, scansire per parole il testo, verificare la presenza della parola nel dizionario, se presente incrementare la corrispondente frequenza altrimenti aggiungere la parola nel dizionario e porre a uno la corrispondente frequenza.
la scansione del testo (contenuto in una stringa) alla ricerca di parole va fatta carattere per carattere considerando come terminatori delle parole lo spazio, la virgola ed il punto. Chi vuole ampliare le proprie conoscenze può vedere la classe StringTokenizer che è pensata proprio per questo tipo di lavoro.
Esempio di esecuzione:
Introdurre Testo da elaborare: Sopra la panca la capra canta, sotto la Panca la CAPRA crepa.
Frequenze
· sopra: 1
· la: 4
· panca: 2
· capra: 2
· canta: 1
· sotto: 1
· crepa: 1
__________________
"Il semplice colore, non viziato dal significato e non legato ad una forma definita, può parlare all'anima, in un migliaio di modi diversi.....Oscar Wilde " ......GIGI D'AGOSTINO - FORREST GUMP SUITE
|
21-11-2003 01:14 |
|
|
|  |
 |
gabry_deejay |
Opinioni:
... |
21-11-2003 01:16 |
|
 |
gabry_deejay |
.grande:maestro.

Registered: Oct 2003
Posts: 2284 (0.29 al dì)
Location: Cernusco sul Naviglio!
Corso: Digital Communication!
Anno: Secondo+Primo arretrato!
Time Online: 9 Days, 0:40:50 [...]
Status: Offline
Edit | Report | IP: Logged |
Opinioni:
1- Il primo Dovrebbe essere una pagliacciata......
2- Il coeff. di complessità incomincia ad aumetare
3- Pesante....ma non impossibile!!!!!!
__________________
"Il semplice colore, non viziato dal significato e non legato ad una forma definita, può parlare all'anima, in un migliaio di modi diversi.....Oscar Wilde " ......GIGI D'AGOSTINO - FORREST GUMP SUITE
|
21-11-2003 01:16 |
|
|
|  |
 |
citrus |
[QUOTE][i]Originally posted by gabry_deejay [/i]
... |
23-11-2003 11:02 |
|
 |
citrus |
.arcimaestro.

Registered: Oct 2003
Posts: 382 (0.05 al dì)
Location: como
Corso: com. digitale
Anno: 2
Time Online: 2 Days, 14:39:24 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by gabry_deejay
Opinioni:
...
3- Pesante....ma non impossibile!!!!!!
mannaggia!!!!
sono due giorni che ci sclero!!!!
questo è davvero una mazzata!!!!
qualcuno è già riuscito a farlo??????
|
23-11-2003 11:02 |
|
|
|  |
 |
ellegi |
Ma a voi la data dell'ultima sottoposizione cambia ... |
23-11-2003 11:04 |
|
 |
ellegi |
.powerbook.

Registered: Sep 2003
Posts: 185 (0.02 al dì)
Location: Milano
Corso: Comunicazione Digitale
Anno: Terzo (1° turno)
Time Online: 1 Day, 21:10:36 [...]
Status: Offline
Edit | Report | IP: Logged |
Ma a voi la data dell'ultima sottoposizione cambia ??
La mia nonostante sottoponga non cambia, rimane il giorno 11 novembre ??? 
__________________
"L'ossessione è la fonte perpetua del genio e della follia"
|
23-11-2003 11:04 |
|
|
|  |
 |
foolish |
[QUOTE][i]Originally posted by citrus [/i]
... |
23-11-2003 14:25 |
|
 |
foolish |
bleak

Registered: Oct 2003
Posts: 3585 (0.45 al dì)
Location:
Corso:
Anno:
Time Online: 36 Days, 7:28:56 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by citrus
mannaggia!!!!
sono due giorni che ci sclero!!!!
questo è davvero una mazzata!!!!
qualcuno è già riuscito a farlo??????
crea due array:
uno string per le parole ed uno int per le frequenze. Inizializza a zero quello delle frequenze.
Ora crea un istanza "stringbuffer" in cui ci inserirai come argomento la frase in input.
Da questo oggetto (che conterra' sia virgole che punti) eliminale con un'oppurtuno ciclo di for e degli if.
-- Analizza tutte le lettere della frase
-- Se: sono delle virgole O dei punti
-- Allora: trasformale in spazi.
Ora facciamo puntare un'istanza "stringtokenizer" a questa nostra nuova stringa,ottenuta con il passaggio precedente, avendo cura di inserire lo " " come oggetto di divisione tra i vari tokens.
Chi non si voleva fare lo sbattimento dell'eliminazione dei punti e delle virgole, inserisca come divisori " .,".
Ora che otterete (tramite lo stringtokenizer) le parole presenti nella frase controllate se sono state inserite nell'elenco.
-- Se: Ci sono ancora tokens
-- Allora: Analizzalo e
-- Se: è presente nell'array dedicato alle parole una parola uguale
-- Allora: incrementa la relativa frequenza
-- Altrimenti: inserisci la parola in elenco ed incrementa la freq.
cmd: .equals() NO ==
Ora fate stampare a video l'array delle parole e quello delle frequenze.
OK??!
__________________
The only way to discover the limits of the possible is to go beyond them into the impossible.
Arthur C. Clarke.
|
23-11-2003 14:25 |
|
|
|  |
 |
citrus |
scusa ma l'array dizionario quando lo inizializzi ... |
23-11-2003 15:10 |
|
 |
citrus |
.arcimaestro.

Registered: Oct 2003
Posts: 382 (0.05 al dì)
Location: como
Corso: com. digitale
Anno: 2
Time Online: 2 Days, 14:39:24 [...]
Status: Offline
Edit | Report | IP: Logged |
scusa ma l'array dizionario quando lo inizializzi che dimensione gli dai?
|
23-11-2003 15:10 |
|
|
|  |
 |
EagleSpirit |
[QUOTE][i]Originally posted by citrus [/i]
... |
23-11-2003 16:18 |
|
 |
EagleSpirit |
.consigliere.

Registered: Oct 2003
Posts: 127 (0.02 al dì)
Location: VA
Corso:
Anno:
Time Online: 8 Days, 6:36:07: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by citrus
scusa ma l'array dizionario quando lo inizializzi che dimensione gli dai?
2000
(il limite delle parole che può contenere secondo le istruzioni dell'esercizio)
|
23-11-2003 16:18 |
|
|
|  |
 |
foolish |
[QUOTE][i]Originally posted by citrus [/i]
... |
23-11-2003 17:28 |
|
 |
foolish |
bleak

Registered: Oct 2003
Posts: 3585 (0.45 al dì)
Location:
Corso:
Anno:
Time Online: 36 Days, 7:28:56 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by citrus
scusa ma l'array dizionario quando lo inizializzi che dimensione gli dai?
crea una variabile
final int MAX 2000;
in questo modo potrai cambiare semplicemente questo valore per aumentare la capacità del pgm.
__________________
The only way to discover the limits of the possible is to go beyond them into the impossible.
Arthur C. Clarke.
|
23-11-2003 17:28 |
|
|
|  |
 |
citrus |
azz.... è vero! non ci avevo fatto caso!!!
... |
23-11-2003 17:31 |
|
 |
citrus |
.arcimaestro.

Registered: Oct 2003
Posts: 382 (0.05 al dì)
Location: como
Corso: com. digitale
Anno: 2
Time Online: 2 Days, 14:39:24 [...]
Status: Offline
Edit | Report | IP: Logged |
azz.... è vero! non ci avevo fatto caso!!!
però ho ancora molti problemi prima di arrivare alla soluzione....
per esempio come si fa ad associare l'array frequenze all'array dizionario?
ex:
se io trovo la parola "ciao" alla posizione 3 dell'array dizionario come faccio a sapere quale posizione dell'array frequenze devo incrementare?
un altra cosa:
nell'esercizio 1 come faccio ad instanziare la stringa risultato (StringBuffer) se non ho ancora niente da metterci dentro?
in teoria bisogna partire dalla prima e modificarla aggiungendogli la seconda giusto (quindi non serve instanziarne una terza)?
...
il secondo per fortuna è stato una sciocchezza altrimenti mi sarei sparato un colpo.........
ps: sto giro però ci ha dato dentro con gli esercizi eh?

|
23-11-2003 17:31 |
|
|
|  |
 |
EagleSpirit |
[QUOTE][i]Originally posted by citrus [/i]
... |
23-11-2003 17:49 |
|
 |
EagleSpirit |
.consigliere.

Registered: Oct 2003
Posts: 127 (0.02 al dì)
Location: VA
Corso:
Anno:
Time Online: 8 Days, 6:36:07: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by citrus
azz.... è vero! non ci avevo fatto caso!!!
però ho ancora molti problemi prima di arrivare alla soluzione....
per esempio come si fa ad associare l'array frequenze all'array dizionario?
ex:
se io trovo la parola "ciao" alla posizione 3 dell'array dizionario come faccio a sapere quale posizione dell'array frequenze devo incrementare?
un altra cosa:
nell'esercizio 1 come faccio ad instanziare la stringa risultato (StringBuffer) se non ho ancora niente da metterci dentro?
in teoria bisogna partire dalla prima e modificarla aggiungendogli la seconda giusto (quindi non serve instanziarne una terza)?
...
il secondo per fortuna è stato una sciocchezza altrimenti mi sarei sparato un colpo.........
ps: sto giro però ci ha dato dentro con gli esercizi eh?
per curiosità che sistema hai usato per il cambio di Case?
1. io ho inserito le due stringhe, poi ho calcolato le due lunghezze e ho inizializzato StringBuffer con setLength()
dopodichè l'ho riempito con le stringhe
2. i due array li associ usando lo stesso indice i
es. il ciclo trova la posizione i del vettore dizionario[i] occupata dal vocabolo "ciao"
frequenze[i] += 1
|
23-11-2003 17:49 |
|
|
|  |
 |
citrus |
[QUOTE][i]Originally posted by EagleSpirit [/i]
... |
23-11-2003 18:44 |
|
 |
citrus |
.arcimaestro.

Registered: Oct 2003
Posts: 382 (0.05 al dì)
Location: como
Corso: com. digitale
Anno: 2
Time Online: 2 Days, 14:39:24 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by EagleSpirit
per curiosità che sistema hai usato per il cambio di Case?
1. io ho inserito le due stringhe, poi ho calcolato le due lunghezze e ho inizializzato StringBuffer con setLength()
dopodichè l'ho riempito con le stringhe
2. i due array li associ usando lo stesso indice i
es. il ciclo trova la posizione i del vettore dizionario[i] occupata dal vocabolo "ciao"
frequenze[i] += 1
....) Ho utilizzato la classe Characther per verificare il case nel ciclo if e l'ho invertito poi usando StringBuffer......
for (i=0;i<s.length();i++)
{...}
1) ... è quello che sto facendo anch'io ma poi come fai a riempirle?
carattere per carettere con un ciclo for? (a me da un errore "...out of range 0" subito alprimo ciclo...)
2) e quando trovi la parola "ciao" per la seconda volta in un'altra posizione?
come fai a ricordarti in quale posizione dell'array frequenze hai incrementato il valore?
se lo fai allo stesso indice di ogni parola l'array di frequenze si riempirà con tutti 1 e avrà la stesso numero di posizioni dell'array dizionario.....
Last edited by yoruno on 06-12-2005 at 12:44
|
23-11-2003 18:44 |
|
|
|  |
 |
Rocco.Li |
Citrus,
... |
24-11-2003 08:15 |
|
 |
Rocco.Li |
38 Primavere, Dottore !

Registered: Sep 2003
Posts: 609 (0.08 al dì)
Location: BARLASSINA (MI)
Corso: COMUNICAZIONE DIGITALE
Anno: Finitooooo !!!!
Time Online: 8 Days, 2:31:26 [...]
Status: Offline
Edit | Report | IP: Logged |
Citrus,
Per l'esercizio di conversione case usando lo stringbuffer, creare la sola istanza dell'oggetto non e' sufficiente:
StringBuffer miaStringa = new StringBuffer(int lunghezza = 100);
perche' creera una stringa con capacita massima di 100 caratteri ma lunghezza 0. Quindi devi anche impostare la nuova lunghezza:
miaStringa.setLength(lunghezza);
Se non lo fai ricevi un errore a runtime.
Ciao
__________________
Alcuni uomini vedono le cose come sono e dicono: << Perche' ? >>
Io sogno le cose come non sono mai state e dico: << Perche' No ? >>
George Barnard Shaw, Commediografo.
"non preoccuparti troppo, comunque vada la vita, non ne uscirai vivo !" - anonimo
|
24-11-2003 08:15 |
|
|
|  |
 |
foolish |
[QUOTE][i]Originally posted by citrus [/i]
... |
24-11-2003 13:33 |
|
 |
foolish |
bleak

Registered: Oct 2003
Posts: 3585 (0.45 al dì)
Location:
Corso:
Anno:
Time Online: 36 Days, 7:28:56 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by citrus
....) 2) e quando trovi la parola "ciao" per la seconda volta in un'altra posizione?
come fai a ricordarti in quale posizione dell'array frequenze hai incrementato il valore?
se lo fai allo stesso indice di ogni parola l'array di frequenze si riempirà con tutti 1 e avrà la stesso numero di posizioni dell'array dizionario.....
infatti se l'array dizionario ha per esempio 156 posizioni prese in considerazione, anche l'array delle frequenze DEVE avere per forza 156 posizioni prese in considerazione.
Se tu associ alla posizione 0 una parola, assocerai alla stessa posizione anche la relativa frequenza.
Se "CIAO" si trova alla posizione 34 le frequenze relative a quella parola si troveranno alla posizione 34.
Per capire se una parola è già stata inserita bisogna necessariamente fare una ricerca sequenziale sull'array. Quindi nel caso sia stata trovata, incrementare l'array delle frequenze proprio con l'indice dell'array dizionario in quel dato istante. Se invece la parola non verrà trovata bisognerà inserire la parola in fondo all'array.
__________________
The only way to discover the limits of the possible is to go beyond them into the impossible.
Arthur C. Clarke.
|
24-11-2003 13:33 |
|
|
|  |
 |
supernova |
Raga, sono un po' in merda. Nel primo esercizio, q ... |
24-11-2003 19:00 |
|
 |
supernova |
Mad For It

Registered: May 2003
Posts: 403 (0.05 al dì)
Location: Milan, London
Corso: Digital Comunication
Anno: I Don't Know, Not Yet.
Time Online: 3 Days, 4:56:55 [...]
Status: Offline
Edit | Report | IP: Logged |
Raga, sono un po' in merda. Nel primo esercizio, quello della concatenazione delle stringhe, dice di usare setCharAt(). Ma che funzione ha?????
Mi sapete poi spiegare brevemente StringBuffer. Ho capito che è una stringa che si può modificare. Ma è giusto??? Grazie a tutti raga. Ciauz!
__________________
" So I Start The Revolution From My Bed ". Noel Gallagher
|
24-11-2003 19:00 |
|
|
|  |
 |
citrus |
[QUOTE][i]Originally posted by foolish [/i]
... |
24-11-2003 19:06 |
|
 |
citrus |
.arcimaestro.

Registered: Oct 2003
Posts: 382 (0.05 al dì)
Location: como
Corso: com. digitale
Anno: 2
Time Online: 2 Days, 14:39:24 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by foolish
infatti se l'array dizionario ha per esempio 156 posizioni prese in considerazione, anche l'array delle frequenze DEVE avere per forza 156 posizioni prese in considerazione.
Se tu associ alla posizione 0 una parola, assocerai alla stessa posizione anche la relativa frequenza.
Se "CIAO" si trova alla posizione 34 le frequenze relative a quella parola si troveranno alla posizione 34.
Per capire se una parola è già stata inserita bisogna necessariamente fare una ricerca sequenziale sull'array. Quindi nel caso sia stata trovata, incrementare l'array delle frequenze proprio con l'indice dell'array dizionario in quel dato istante. Se invece la parola non verrà trovata bisognerà inserire la parola in fondo all'array.
...si ma capisci che così cade lo scopo del programma......
l'array frequenze conterrà 156 posizioni (esattamente tante quante il numero di parole della stringa) tutte valorizzate a 1......
....
non è difficile porca.... però sono bloccato in questo punto sul ragionamento logico........
|
24-11-2003 19:06 |
|
|
|  |
 |
All times are GMT. The time now is 15:00. |
|
|
 |
|
 |
|
|
|  |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|