Laboratorio di Programmazione

Esercizi su File e Eccezioni


Esercizio 1: File dal nome casuale.

Costruire la classe TemporaryFile che implementi

Suggerimento 1: generate una serie di nomi di file tramite una regola e di volta in volta provate ad aprire i file in lettura. Utilizzate al contrario l'eccezione FileNotFoundException: quando questa viene lanciata, il nome generato è corretto.

Suggerimento 2: per generare la serie di nomi basta una semplice regola. Ad esempio basta aggiungere ogni volta un determinato carattere al prefisso di partenza: se questo vale "ciao", basterà verificare se esiste un file di nome "ciao"; se questo non esiste il metodo ritornerà "ciao", altrimenti verificherà se esiste un file di nome "ciao1", eventualmente continuando a considerare "ciao11", "ciao111" e così via.

Suggerimento 3: i più intraprendenti possono confrontarsi con una variante di questo esercizio in cui i nomi dei file vengono generati aggiungendo simboli di un alfabeto prefissato. Ad esempio, se il prefisso è pari a "ciao" e l'alfabeto è pari a "aeiou", i nomi da generare saranno "ciao", "ciaoa", "ciaoe", "ciaoi", "ciaou", "ciaoaa", "ciaoae" e così via.

Esercizio 2: Equazioni di Secondo Grado con Eccezioni.

A lezione abbiamo visto la classe SecondoGrado che, letti in input tre valori a, b e c che descrivono un'equazione di secondo grado espressa nella forma a·x²+b·x+c=0, calcola e stampa le relative radici, nel caso queste siano reali.

Modificare la classe SecondoGrado in modo che quando le radici dell'equazione sono complesse emetta un'eccezione della classe ArithmeticException, che viene gestita in modo da calcolare e stampare le radici complesse.

Esercizio 3: Corpi Celesti.

Realizzare la classe CorpoCeleste, contenente:

Realizzare poi la classe CentroControllo, contenente

Attenzione: non è richiesto di gestire in modo particolare la terminazione della sequenza di input. Teoricamente il programma può continuare indefinitamente la sua esecuzione.

Walter Cazzola

Didactics

Publications

Funded Projects

Research Projects

Related Events








Valid XHTML 1.0 Transitional