Laboratorio di Programmazione

Esercizi sull'Uso di String e Array in Java


Esercizio 1: Calcolo delle Frequenze.

Scrivere la classe StatisticaFrequenze che preso un testo in input stili un rapporto sulle frequenze con cui si presentano le varie parole all'interno di un 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:

  1. usare due array uno per le stringhe (chiamato dizionario) e l'altro per le frequenze delle stesse, scansire il testo, per ogni parola verificarne la presenza nel dizionario, se presente incrementarne la frequenza altrimenti aggiungere la parola nel dizionario e porne a uno la frequenza.
  2. 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
Esercizio 2: Cambiare una Stringa in Loco.

Scrivere la classe Bizarre che letta una stringa in input ne converta in loco (cioè senza creare un'altra stringa e senza stampare 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.
Esercizio 3: Concatenazione Manuale di Stringhe.

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, non usare assolutamente l'operatore +. 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.
Esercizio 4: Prodotto di Matrici (Advanced).

Scrivere la classe ProdottoVettoriale che dato un vettore riga di lunghezza n ed un vettore colonna di lunghezza m (due array di numeri reali) realizzi il prodotto riga per colonna (notate che il risultato sarà una matrice di dimensione n·m). Il valore per n ed m ed il contenuto dei vettori deve essere letto da tastiera. la formula per il prodotto di vettori è:

AxB formula

Calcolato il prodotto stampare la matrice risultato in modo che sia leggibile.

Esempio di esecuzione:

Introduci numero di righe: 3
Introduci A1: 7
Introduci A2: 6
Introduci A3: 5
Introduci numero di colonne: 5
Introduci B1: 1
Introduci B2: 2
Introduci B3: 3
Introduci B4: 4
Introduci B5: 5
Il prodotto di AxB è:
   7 14 21 28 35
   6 12 18 24 30
   5 10 15 20 25

Walter Cazzola

Didactics

Publications

Funded Projects

Research Projects

Related Events








Valid XHTML 1.0 Transitional