![]() |
Pages (7): [1] 2 3 4 5 » ... Last » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- [Laboratorio] Es. x il 28 - 11 (http://www.dsy.it/forum/showthread.php?threadid=7162)
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
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
Originally posted by gabry_deejay
Opinioni:
...
3- Pesante....ma non impossibile!!!!!!
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"
Originally posted by citrus
mannaggia!!!!
sono due giorni che ci sclero!!!!
![]()
![]()
![]()
questo è davvero una mazzata!!!!
qualcuno è già riuscito a farlo??????
__________________
The only way to discover the limits of the possible is to go beyond them into the impossible.
Arthur C. Clarke.
scusa ma l'array dizionario quando lo inizializzi che dimensione gli dai?
Originally posted by citrus
scusa ma l'array dizionario quando lo inizializzi che dimensione gli dai?
Originally posted by citrus
scusa ma l'array dizionario quando lo inizializzi che dimensione gli dai?
__________________
The only way to discover the limits of the possible is to go beyond them into the impossible.
Arthur C. Clarke.
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?
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?
![]()
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
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
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.....
__________________
The only way to discover the limits of the possible is to go beyond them into the impossible.
Arthur C. Clarke.
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
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.
All times are GMT. The time now is 22:05. | Pages (7): [1] 2 3 4 5 » ... Last » Show all 96 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.