Fondamenti di Informatica 1
Corso di Laurea in Ingegneria Informatica
Canale G-O, A.A. 2002/03


Esercitazione 6

Classi che usano istruzioni iterative


Esercizio 6A

Scrivere un metodo statico Java che legga da tastiera (mediante il metodo JOptionPane.showInputDialog) una vocale e una stringa e stampi la stringa ottenuta sostituendo nella stringa in ingresso ad ogni vocale la vocale letta in ingresso.

Ad esempio, data la stringa "pippo" e la vocale 'e', deve stampare "peppe".

Soluzione


Esercizio 6B

Scrivere un metodo statico Java che legga da tastiera (mediante il metodo JOptionPane.showInputDialog) una stringa, ne calcoli la stringa invertita, concateni le due stringhe e le stampi.

Ad esempio, data la stringa "pippo", deve stampare "pippooppip".

Soluzione


Esercizio 6C - Parte I

Una funzione campionata è una funzione y=f(x) i cui valori y sono definiti solamente per determinati valori di x (detti punti di campionamento) opportunamente intervallati. In particolare, una funzione campionata è caratterizzata da:

e l'i-esimo valore campionato (i = 0,..,n-1) corrisponde al valore della funzione yi = f(xi) dove xi è l'i-esimo punto di campionamento ed è pari a xi=x0+i*dx.


Progettare e realizzare una classe FunzioneCampionata che rappresenti una funzione campionata. In particolare, la funzione di cui interessano i campioni è y = 2*x + 3, mentre il punto di campionamento iniziale, l'intervallo di campionamento e il numero di campioni variano da istanza a istanza.

Equipaggiare la classe con i seguenti metodi pubblici:

Soluzione


Esercizio 6C - Parte II

Realizzare due classi: RadiceQuadrataCampionata e SenoCampionato, derivate dalla classe FunzioneCampionata, che ridefiniscano il metodo valoreCampionato, in modo che ritorni, rispettivamente, il valore delle funzioni y = sqrt(x) e y = sen(x), calcolate nel punto di campionamento corrispondente al valore del parametro.

Soluzione: RadiceQuadrataCampionata e SenoCampionato


Esercizio 6C - Parte III

Realizzare una classe FunzionalitaFunzioniCampionate, che includa un metodo statico integrale, che prende come argomento una funzione campionata e ne calcola una approssimazione dell'integrale nell'intervallo tra x0 e xn-1, sommando il valore di tutti i campioni, tra 0 e n-1, moltiplicati per l'intervallo di campionamento, secondo la formula seguente:

L'area racchiusa tra i rettangoli evidenziati nella figura seguente rappresenta l'integrale di una funzione campionata:

Soluzione


Esercizio 6C - Parte IV

Realizzare una classe cliente delle classi precedenti avente un metodo main che legga da tastiera il punto di campionamento iniziale, l'intervallo di campionamento e un numero fissato di campioni e crei un oggetto di tipo FunzioneCampionata, uno di tipo RadiceQuadrataCampionata e uno di tipo SenoCampionato, stampi i tre oggetti e calcoli e stampi l'integrale di ciascuno di essi.

Soluzione