import java.io.*; Pag. 1 di 15

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "import java.io.*; Pag. 1 di 15"

Transcript

1 8 studenti di 5 classi quinte hanno partecipato alle olimpiadi della matematica. Stampare l elenco degli studenti in ordine decrescente di punteggio ottenuto e la rispettiva classe di appartenenza. Realizzare un applicazione console per la gestione dei dati degli studenti. import java.io.*; class Alunno { private String nomeistitutoscolastico = new String(); private String codicealunno = new String(); private String cognomealunno = new String(); private String nomealunno = new String(); private String classealunno = new String(); private double votoolimpiade; private static int contatore = 0; public Alunno(String nomeistitutoscolastico, String cognomealunno, String nomealunno, String classealunno, double votoolimpiade) { this.nomeistitutoscolastico = nomeistitutoscolastico; this.cognomealunno = cognomealunno; this.nomealunno = nomealunno; this.classealunno = classealunno; this.votoolimpiade = votoolimpiade; this.codicealunno = generacodice(contatore); contatore++; public void nomeistitutoscolastico(string nomeistitutoscolastico) {this.nomeistitutoscolastico = nomeistitutoscolastico; public void cognomealunno(string cognomealunno) {this.cognomealunno = cognomealunno; public void nomealunno(string nomealunno) {this.nomealunno = nomealunno; public void classealunno(string classealunno) {this.classealunno = classealunno; public void votoolimpiade(int votoolimpiade) {this.votoolimpiade = votoolimpiade; public String nomeistitutoscolastico () {return this.nomeistitutoscolastico; public String codicealunno () {return this.codicealunno; public String cognomealunno () {return this.cognomealunno; public String nomealunno() {return this.nomealunno; public String classealunno() {return this.classealunno; public double votoolimpiade() {return this.votoolimpiade; private static String generacodice(int contatore) { String codice = new String(); if ((contatore>=0)&&(contatore<=9)) codice = "COD-00" + contatore; else if ((contatore>=10)&&(contatore<=99)) codice = "COD-0" + contatore; else codice = "COD-" + contatore; return codice; Pag. 1 di 15

2 public class EU5_10 { public static void main(string args[]) throws IOException { String stringainput = new String(); String nomeistitutoscolastico = new String(); String cognomealunno = new String(); String nomealunno = new String(); String classealunno = new String(); InputStreamReader lettoreflussoingresso = new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(lettoreFlussoIngresso); Alunno alunni[] = new Alunno[0]; oggetti della classe "Alunno". final int lunghezzamassimanomeistitutoscolastico = 40; dell'istituto scolastico. final int lunghezzamassimacognomealunno = 40; un alunno dell'istituto scolastico. final int lunghezzamassimanomealunno = 40; alunno dell'istituto scolastico. final int lunghezzamassimaclassealunno = 6; di un alunno dell'istituto scolastico. int numeroalunni = 0; // Dichiarazione e prima inizializzazione (a zero) dell'array che dovrà contenere gli // Costante utilizzata per definire la lunghezza massima (in caratteri) del nome // Costante utilizzata per definire la lunghezza massima (in caratteri) del cognome di // Costante utilizzata per definire la lunghezza massima (in caratteri) del nome di un // Costante utilizzata per definire la lunghezza massima (in caratteri) della classe double votoalunno = 0.0; char sceltautente = '_'; boolean d'ingresso. boolean condizionenuovaelaborazioneprogramma = false; riavviarlo. boolean condizioneuscitaprogramma = false; boolean condizioneriavvioprogramma = false; boolean condizionesceltaopzione = false; un\'opzione nel menu generale del programma. // Variabile utilizzata esclusivamente nei cicli DO... WHILE per la verifica dei dati // Variabile utilizzata per l'esecuzione di una nuova elaborazione del programma senza // Variabile utilizzata per terminare l'esecuzione del programma. // Variabile utilizzata per il riavvio del programma. // Variabile utilizzata per il controllo del ciclo iterativo relativo alla scelta di System.out.print("\n\n\n\n"); // Punto di inizio per il riavvio del programma. condizioneriavvioprogramma = false; System.out.print("\n\tESERCIZIO UNITÀ DIDATTICA 5, n.10, pag.252."); System.out.print("\n\tScrivere \"ESCI\" oppure \"E\" oppure \"EXIT\" in minuscolo o maiuscolo per uscire dal programma."); System.out.print("\n\tScrivere \"RIAVVIA\" oppure \"R\" oppure \"RESTART\" in minuscolo o maiuscolo per riavviare il programma."); System.out.print("\n\tQuesto programma gestisce i dati di un gruppo di studenti di un istituto scolastico che hanno partecipato alle olimpiadi della matematica.\n"); // Punto di inizio per il riavvio del programma. condizionenuovaelaborazioneprogramma = false; condizioneuscitaprogramma = false; // Inizio del ciclo DO... WHILE per la verifica del valore inserito dall'utente relativo al nome dell'istituto scolastico. Pag. 2 di 15

3 System.out.print("\tInserire il nome dell'istituto scolastico: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento.\n"); else if (AGG.verificaCampoNome(stringaInput)==false) System.out.print("\tATTENZIONE: hai inserito uno o più caratteri non validi: " + AGG.restituisciCaratteriNonConsentitiCampoNome(stringaInput) + "\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaMassimaNomeIstitutoScolastico) System.out.print("\tATTENZIONE: la lunghezza massima consentita per il nome dell\'istituto scolastico è di " + lunghezzamassimanomeistitutoscolastico + " caratteri.\n"); stringainput = AGG.eliminaSpaziInEccesso(stringaInput); nomeistitutoscolastico = stringainput; while (condizioneciclodowhile==true); // Inizio del ciclo DO... WHILE per la verifica del valore inserito dall'utente relativo al numero degli alunni dell'istituto che hanno partecipato alle olimpiadi della matematica. System.out.print("\tInserire il numero degli alunni dell'istituto \"" + nomeistitutoscolastico + "\" che hanno partecipato alle olimpiadi della matematica: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun valore.\n"); else if (AGG.trovaNumeroIntero(stringaInput)==false) System.out.print("\tATTENZIONE: non hai inserito un numero in un formato valido (devi inserire un numero INTERO POSITIVO).\n"); Pag. 3 di 15

4 stringainput = AGG.eliminaSpazi(stringaInput); numeroalunni = Integer.parseInt(stringaInput); if (numeroalunni==0) System.out.print("\tATTENZIONE: hai inserito un valore pari a 0.\n"); else if (numeroalunni<0) System.out.print("\tATTENZIONE: hai inserito un valore minore di 0.\n"); alunni = new Alunno[numeroAlunni]; while (condizioneciclodowhile==true); { // Inizio del blocco di elaborazione per l'inserimento di tutti i dati degli alunni che hanno partecipato alle olimpiadi della matematica. for (int i = 0; i<numeroalunni; i++) { // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al cognome di un alunno dell'istituto scolastico che ha partecipato alle OdM. System.out.print("\tInserire il cognome del " + (i+1) + " alunno dell'istituto \"" + nomeistitutoscolastico + "\" che ha partecipato alle olimpiadi della matematica: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il campo \"cognome\".\n"); else if (AGG.verificaCampoNome(stringaInput)==false) System.out.print("\tATTENZIONE: sono stai trovati uno o più caratteri non validi: " + AGG.restituisciCaratteriNonConsentitiCampoNome(stringaInput) + "\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaMassimaCognomeAlunno) System.out.print("\tATTENZIONE: la lunghezza massima consentita per il cognome di un alunno dell\'istituto scolastico è di " + lunghezzamassimacognomealunno + " caratteri.\n"); stringainput = AGG.eliminaSpaziInEccesso(stringaInput); cognomealunno = stringainput; while (condizioneciclodowhile==true); Pag. 4 di 15

5 // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al nome di un alunno dell'istituto scolastico che ha partecipato alle OdM. System.out.print("\tInserire il nome del " + (i+1) + " alunno dell'istituto \"" + nomeistitutoscolastico + "\" che ha partecipato alle olimpiadi della matematica: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il campo \"nome\".\n"); else if (AGG.verificaCampoNome(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non validi: " + AGG.restituisciCaratteriNonConsentitiCampoNome(stringaInput) + "\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaMassimaNomeAlunno) System.out.print("\tATTENZIONE: la lunghezza massima consentita per il nome di un alunno dell\'istituto scolastico è di " + lunghezzamassimanomealunno + " caratteri.\n"); stringainput = AGG.eliminaSpaziInEccesso(stringaInput); nomealunno = stringainput; while (condizioneciclodowhile==true); // Inizio del ciclo DO... WHILe per la verifica della stringa inserita dall'utente relativa alla classe di un alunno dell'istituto scolastico che ha partecipato alle OdM. System.out.print("\tInserire la classe del " + (i+1) + " alunno dell'istituto \"" + nomeistitutoscolastico + "\" che ha partecipato alle olimpiadi della matematica: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il campo \"classe\".\n"); Pag. 5 di 15

6 else if (AGG.verificaCampoClasseScuola(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non consentiti: " + AGG.restituisciCaratteriNonConsentitiCampoClasseScuola(stringaInput) + "\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaMassimaClasseAlunno) System.out.print("\tATTENZIONE: la lunghezza massima consentita per la classe di un alunno dell'istituto scolastico è di " + lunghezzamassimaclassealunno + " caratteri.\n"); stringainput = AGG.eliminaSpaziInEccesso(stringaInput); classealunno = stringainput; while (condizioneciclodowhile==true); // Inizio del ciclo DO... WHILE per la verifica del valore inserito dall'utente relativo al voto ottenuto da un alunno dell'istituto scolastico alle olimpiadi della matematica. System.out.print("\tInserire il voto ottenuto dal " + (i+1) + " alunno dell'istituto \"" + nomeistitutoscolastico + "\" alle olimpiadi della matematica (in centesimi): "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun valore.\n"); else if (AGG.trovaNumeroDecimale(stringaInput)==false) System.out.print("\tATTENZIONE: non hai inserito un numero in un formato valido (devi inserire un numero INTERO o DECIMALE).\n"); stringainput = AGG.eliminaSpazi(stringaInput); votoalunno = Double.parseDouble(stringaInput); votoalunno = (double) Math.round(votoAlunno*100.0)/100.0; if (votoalunno<0.0) System.out.print("\tATTENZIONE: hai inserito un valore minore di 0.\n"); else if (votoalunno>100.0) System.out.print("\tATTENZIONE: il voto ottenuto da un alunno alle olimpiadi della matematica non può superare \n"); else while (condizioneciclodowhile==true); // Inizio del blocco di elaborazione per la costruzione degli ggetti nell'array "alunni" con assegnazione dei valori alle variabili di istanza. Pag. 6 di 15

7 matematica, dell'opzione scelta dall'utente. partecipato alle OdM."); alunni dell'istituto che hanno partecipato alle OdM."); OdM."); OdM.\n"); alunni[i] = new Alunno(nomeIstitutoScolastico, cognomealunno, nomealunno, classealunno, votoalunno); { // Inizio del blocco di elaborazione per: // la stampa a video, in ordine di punteggio decrescente, degli studenti che hanno partecipato alle olimpiadi della // la ricerca per "cognome" di un alunno che ha partecipato alle olimpiadi della matematica, // la ricerca per "nome" di un alunno che ha partecipato alle olimpiadi della matematica, // la ricerca per "classe" di un alunno che ha partecipato alle olimpiadi della matematica. int interruttoreselezione = 1; // Punto di inizio per l'elaborazione relativa alla scelta di un'opzione nel menu. condizionesceltaopzione = false; // Inizio del ciclo DO... WHILE per la stampa a video del menu principale del programma e la verifica if (interruttoreselezione==1) { System.out.print("\n\tQuale operazione vuoi eseguire? "); System.out.print("\n\tA) Stampa a video di tutti gli alunni dell'istituto che hanno System.out.print("\n\tB) Stampa a video (in ordine di punteggio decrescente) di tutti gli System.out.print("\n\tC) Ricerca per \"codice\" di un alunno che ha partecipato alle OdM."); System.out.print("\n\tD) Ricerca per \"cognome\" di un alunno che ha partecipato alle System.out.print("\n\tF) Ricerca par \"nome\" di un alunno che ha partecipato alle OdM."); System.out.print("\n\tG) Ricerca per \"classe\" di un alunno che ha partecipato alle interruttoreselezione = 0; System.out.print("\tScegli un\'opzione: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna opzione.\n"); stringainput = AGG.eliminaSpazi(stringaInput); if (stringainput.length()>1) Pag. 7 di 15

8 System.out.print("\tATTENZIONE: hai scelto un\'opzione non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='a')&&(sceltautente!='b')&&(sceltautente!='c')&&(sceltautente!='d')&&(sceltautente!='f')&&(sceltautente!='g')) System.out.print("\tATTENZIONE: hai scelto un\'opzione non in elenco.\n"); else while (condizioneciclodowhile==true); switch (sceltautente) { case 'A': { System.out.print("\n\tSTAMPA DI TUTTI GLI ALUNNI DELL'ISTITUTO \"" + nomeistitutoscolastico.touppercase() + "\" CHE HANNO PARTECIPATO ALLE OLIMPIADI DELLA MATEMATICA:"); for (int i = 0; i<alunni.length; i++) { System.out.print("\n\tCodice alunno:\t\t\t" + alunni[i].codicealunno()); System.out.print("\n\tCognome e nome:\t\t\t" + alunni[i].cognomealunno() + ", " + alunni[i].nomealunno()); System.out.print("\n\tClasse alunno:\t\t\t" + alunni[i].classealunno()); System.out.print("\n\tVoto alunno:\t\t\t" + alunni[i].votoolimpiade() + "\n"); System.out.print("\n"); break; case 'B': { String datialunno[][] = new String[numeroAlunni][4]; boolean effettuatoscambio = false; for (int i = 0; i<numeroalunni; i++) { datialunno[i][0] = alunni[i].codicealunno(); datialunno[i][1] = alunni[i].cognomealunno() + ", " + alunni[i].nomealunno(); datialunno[i][2] = alunni[i].classealunno(); datialunno[i][3] = Double.toString(alunni[i].votoOlimpiade()); effettuatoscambio = false; for (int i = 0; i<numeroalunni-1; i++) if ((Double.parseDouble(datiAlunno[i][3]))<(Double.parseDouble(datiAlunno[i+1][3]))) { stringainput = datialunno[i][0]; datialunno[i][0] = datialunno[i+1][0]; datialunno[i+1][0] = stringainput; stringainput = datialunno[i][1]; datialunno[i][1] = datialunno[i+1][1]; datialunno[i+1][1] = stringainput; stringainput = datialunno[i][2]; datialunno[i][2] = datialunno[i+1][2]; datialunno[i+1][2] = stringainput; Pag. 8 di 15

9 stringainput = datialunno[i][3]; datialunno[i][3] = datialunno[i+1][3]; datialunno[i+1][3] = stringainput; effettuatoscambio = true; while (effettuatoscambio==true); System.out.print("\n\tSTAMPA DI TUTTI GLI ALUNNI DELL'ISTITUTO \"" + nomeistitutoscolastico.touppercase() + "\" CHE HANNO PARTECIPATO ALLE OLIMPIADI DELLA MATEMATICA, IN ORDINE DECRESCENTE DI PUNTEGGIO:"); for (int i = 0; i<alunni.length; i++) { System.out.print("\n\tCodice alunno:\t\t\t" + datialunno[i][0]); System.out.print("\n\tCognome e nome:\t\t\t" + datialunno[i][1]); System.out.print("\n\tClasse alunno:\t\t\t" + datialunno[i][2]); System.out.print("\n\tVoto alunno:\t\t\t" + datialunno[i][3] + "\n"); System.out.print("\n"); break; case 'C': { boolean trovatoelementoricerca = false; // Inizio del ciclo DO.. WHILE per la verifica del valore inserito dall'utente relativo al codice di un alunno dell'istituto scolastico che ha partecipato alle OdM, per la fase di ricerca nel database. System.out.print("\tInserire il codice dell\'alunno dell\'istituto \"" + nomeistitutoscolastico + "\" che ha partecipato alle olimpiadi della matematica: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il campo \"codice alunno\".\n"); else if(agg.verificacampocodicealfanumerico(stringainput)==false) consentiti: System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non " + AGG.restituisciCaratteriNonConsentitiCampoCodiceAlfanumerico(stringaInput) + "\n"); else if (AGG.eliminaSpazi(stringaInput).length()!=7) System.out.print("\tATTENZIONE: la lunghezza del codice di un alunno dell\'istituto scolastico deve essere di 7 caratteri, nel formato \"COD-XXX\" e con X uguale a una cifra numerica.\n"); stringainput = AGG.eliminaSpazi(stringaInput); System.out.print("\n\tESITO DELLA RICERCA:"); for (int i = 0; i<alunni.length; i++) if (stringainput.equalsignorecase(alunni[i].codicealunno())) { trovatoelementoricerca = true; Pag. 9 di 15

10 System.out.print("\n\tCodice alunno:\t\t\t" + alunni[i].codicealunno()); System.out.print("\n\tCognome e nome:\t\t\t" + alunni[i].cognomealunno() + ", " + alunni[i].nomealunno()); System.out.print("\n\tClasse alunno:\t\t\t" + alunni[i].classealunno()); System.out.print("\n\tVoto alunno:\t\t\t" + alunni[i].votoolimpiade() + "\n"); if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun partecipante dell\'istituto \"" + nomeistitutoscolastico + "\" alle olimpiadi della matematica con questo dato.\n\n"); else System.out.print("\n"); while (condizioneciclodowhile==true); break; case 'D': { boolean trovatoelementoricerca = false; // Inizio del ciclo DO... WHILE per la verifica del valore inserito dall'utente relativo al cognome di un alunno dell'istituto scolastico che ha partecipato alle OdM, per la fase di ricerca nel database. System.out.print("\n\tInserire il cognome dell\'alunno dell\'istituto \"" + nomeistitutoscolastico + "\"che ha partecipato alle olimpiadi della matematica: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il campo \"cognome\".\n"); else if (AGG.verificaCampoNome(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non validi: " + AGG.restituisciCaratteriNonConsentitiCampoNome(stringaInput) + "\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaMassimaCognomeAlunno) System.out.print("\tATTENZIONE: la lunghezza massima consentita per il cognome di un alunno dell'istituto scolastico è di " + lunghezzamassimacognomealunno + " caratteri.\n"); stringainput = AGG.eliminaSpaziInEccesso(stringaInput); System.out.print("\n\tESITO DELLA RICERCA:"); for (int i = 0; i<alunni.length; i++) Pag. 10 di 15

11 for (int j = 0; j<(alunni[i].cognomealunno().length()- stringainput.length()+1); j++) if (stringainput.equalsignorecase(alunni[i].cognomealunno().substring(j, j+stringainput.length()))==true) { trovatoelementoricerca = true; System.out.print("\n\tCodice alunno:\t\t\t" + alunni[i].codicealunno()); System.out.print("\n\tCognome e nome:\t\t\t" + alunni[i].cognomealunno() + ", " + alunni[i].nomealunno()); System.out.print("\n\tClasse alunno:\t\t\t" + alunni[i].classealunno()); System.out.print("\n\tVoto alunno:\t\t\t" + alunni[i].votoolimpiade() + "\n"); if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun partecipante dell\'istituto scolastico \"" + nomeistitutoscolastico + "\" alle olimpiadi della matematica con questo dato.\n\n"); else System.out.print("\n"); while (condizioneciclodowhile==true); break; case 'F': { boolean trovatoelementoricerca = false; // Inizio del ciclo DO... WHILE per la verifica del valore inserito dall'utente relativo al nome di un alunno dell'istituto scolastico che ha partecipato alle OdM, per la fase di ricerca nel database. System.out.print("\tInserire il nome dell\'alunno dell\'istituto \"" + nomeistitutoscolastico + "\" che ha partecipato alle olimpiadi della matematica: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il campo \"nome\".\n"); else if (AGG.verificaCampoNome(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non validi: " + AGG.restituisciCaratteriNonConsentitiCampoNome(stringaInput) + "\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaMassimaNomeAlunno) System.out.print("\tATTENZIONE: la lunghezza massima consentita per il cognome di un alunno dell\'istituto scolastico è di " + lunghezzamassimanomealunno + " caratteri.\n"); Pag. 11 di 15

12 stringainput = AGG.eliminaSpaziInEccesso(stringaInput); System.out.print("\n\tESITO DELLA RICERCA:"); for (int i = 0; i<alunni.length; i++) for (int j = 0; j<(alunni[i].nomealunno().length()- stringainput.length()+1); j++) if (stringainput.equalsignorecase(alunni[i].nomealunno().substring(j, j+stringainput.length()))) { trovatoelementoricerca = true; System.out.print("\n\tCodice alunno:\t\t\t" + alunni[i].codicealunno()); System.out.print("\n\tCognome e nome:\t\t\t" + alunni[i].cognomealunno() + ", " + alunni[i].nomealunno()); System.out.print("\n\tClasse alunno:\t\t\t" + alunni[i].classealunno()); System.out.print("\n\tVoto alunno:\t\t\t" + alunni[i].votoolimpiade() + "\n"); if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun partecipante dell\'istituto scolastico \"" + nomeistitutoscolastico + "\" alle olimpiadi della matematica con questo dato.\n\n"); else System.out.print("\n"); while (condizioneciclodowhile==true); break; case 'G': { boolean trovatoelementoricerca = false; // Inizio del ciclo DO... WHILe per la verifica del valore inserito dall'utente relativo al nome di un alunno dell'istituto scolastico che ha partecipato alle olimpiadi della matematica, per la fase di ricerca nel database. System.out.print("\tInserire la classe dell\'alunno dell\'istituto \"" + nomeistitutoscolastico + "\" che ha partecipato alle olimpiadi della matematica: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il campo \"classe\".\n"); else if (AGG.verificaCampoClasseScuola(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non validi: " + AGG.restituisciCaratteriNonConsentitiCampoClasseScuola(stringaInput) + "\n"); Pag. 12 di 15

13 else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaMassimaClasseAlunno) System.out.print("\tATTENZIONE: la lunghezza massima consentita per la classe di un alunno dell\'istituto scolastico è di " + lunghezzamassimaclassealunno + " caratteri.\n"); stringainput = AGG.eliminaSpaziInEccesso(stringaInput); System.out.print("\n\tESITO DELLA RICERCA:"); for (int i = 0; i<alunni.length; i++) for (int j = 0; j<(alunni[i].classealunno().length()- stringainput.length()+1); j++) if (stringainput.equalsignorecase(alunni[i].classealunno().substring(j, j+stringainput.length()))) { trovatoelementoricerca = true; System.out.print("\n\tCodice alunno:\t\t\t" + alunni[i].codicealunno()); System.out.print("\n\tCognome e nome:\t\t\t" + alunni[i].cognomealunno() + ", " + alunni[i].nomealunno()); System.out.print("\n\tClasse alunno:\t\t\t" + alunni[i].classealunno()); System.out.print("\n\tVoto alunno:\t\t\t" + alunni[i].votoolimpiade() + "\n"); if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun partecipante dell\'istituto scolastico \"" + nomeistitutoscolastico + "\" alle olimpiadi della matematica con questo dato.\n\n"); else System.out.print("\n"); while (condizioneciclodowhile==true); break; // Inizio del ciclo DO... WHILE per la verifica dell'opzione scelta dall'utente relativa alla richiesta del programma di scegliere un'altra opzione. System.out.print("\tVuoi scegliere un'altra opzione (S) o (N)? "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna opzione.\n"); Pag. 13 di 15

14 elenco.\n"); stringainput = AGG.eliminaSpazi(stringaInput); if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai scelto un\'opzione non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='s')&&(sceltautente!='n')) System.out.print("\tATTENZIONE: hai scelto un\'opzione non in else if (sceltautente=='s') { condizionesceltaopzione = true; interruttoreselezione = 1; else while (condizioneciclodowhile==true); while(condizionesceltaopzione==true); // Inizio del ciclo DO... WHILE per la verifica dell'opzione scelta dall'utente relativa alla richiesta del programma di eseguire una nuova elaborazione. System.out.print("\tVuoi scegliere nuovamente il programma (S) o (N)? "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna opzione.\n"); stringainput = AGG.eliminaSpazi(stringaInput); if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai scelto un\'opzione non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='s')&&(sceltautente!='n')) System.out.print("\tATTENZIONE: hai scelto un\'opzione non in elenco.\n"); Pag. 14 di 15

15 else if (sceltautente=='s') { condizionenuovaelaborazioneprogramma = true; System.out.print("\n"); else while (condizioneciclodowhile==true); while (condizionenuovaelaborazioneprogramma==true); while (condizioneriavvioprogramma==true); System.out.print("\n\n\n\n"); Pag. 15 di 15

import java.io.*; class Box { private int prezzovenditabox;

import java.io.*; class Box { private int prezzovenditabox; Un agenzia immobiliare intende valutare un immobile composto da 2 appartamenti, rispettivamente di 80 e 90 metri quadrati, diversi tra loro per posizione e caratteristiche. Al primo appartamento viene

Dettagli

Pag. 1 di 7. import java.io.*;

Pag. 1 di 7. import java.io.*; Un azienda di CAD 2D deve realizzare un software per elaborare rettangoli, quadrati e triangoli. Delle tre figure geometriche si deve calcolare il perimetro e l area. Realizzare un software, il cui modulo

Dettagli

import java.io.*; class Quadrato implements FigureGeometrichePiane { private double lato;

import java.io.*; class Quadrato implements FigureGeometrichePiane { private double lato; Un giardino condominiale è formato da un quadrato di lato 30 metri inscritto in un cerchio. Si vogliono inserire nel quadrato delle piastrelle, anch esse quadrate, di lato 10 centimetri e dal costo di

Dettagli

// Dichiarare le variabili d'istanza e i metodi di lettura e scrittura delle stesse utilizzando il reference predefinito THIS. //... //... //... //...

// Dichiarare le variabili d'istanza e i metodi di lettura e scrittura delle stesse utilizzando il reference predefinito THIS. //... //... //... //... import java.io.*; public class This_EquazioneSecondoGra // Dichiarare le variabili d'istanza e i metodi di lettura e scrittura delle stesse utilizzando il reference predefinito THIS. //... //... //...

Dettagli

import java.io.*; public class EU4_24 { private int stimaoreesecuzionelavori;

import java.io.*; public class EU4_24 { private int stimaoreesecuzionelavori; In un giardino quadrato di lato 56 metri deve essere sostituita la recinzione. Il preventivo presentato da un azienda di manutenzione prevede una spesa di 35 euro al metro di materiale e, inoltre, un costo

Dettagli

import java.io.*; public class EU4_25 { private String prodottoalimentare = new String();

import java.io.*; public class EU4_25 { private String prodottoalimentare = new String(); Di 3 prodotti si conosce la quantità di grassi e proteine contenuti (in grammi) e anche le calorie (per 100 grammi di prodotto). Determinare: il prodotto meno grasso, il prodotto che ha una percentuale

Dettagli

// Variabile utilizzata esclusivamente nei cicli DO... WHILE per la verifica dei dati. Pag. 1 di 12

// Variabile utilizzata esclusivamente nei cicli DO... WHILE per la verifica dei dati. Pag. 1 di 12 import java.io.*; public class PosizionePunto { private double x; private double y; public void x(double valore_x) { this.x = valore_x; public void y(double valore_y) { this.y = valore_y; public double

Dettagli

import java.io.*; public class EU4_23 { private double prezzoacquisto; private double percentualeguadagno;

import java.io.*; public class EU4_23 { private double prezzoacquisto; private double percentualeguadagno; Un dettagliante acquista un prodotto a 200 euro. Considerando che, per avere un sufficiente guadagno e recuperare le proprie spese, deve aumentare il costo del 70%, determinare il prezzo a cui dovrebbe

Dettagli

// Variabile utilizzata per eseguire una nuova elaborazione del programma senza riavviarlo.

// Variabile utilizzata per eseguire una nuova elaborazione del programma senza riavviarlo. Un azienda vende 3 prodotti a 56 euro ciascuno e i successivi 8 prodotti a 66 euro. Determinare il prezzo medio di un singolo prodotto. Basare la soluzione del problema su un applet. import java.io.*;

Dettagli

import java.io.*; private double pagaoraria; private double pagacomplessivamensile;

import java.io.*; private double pagaoraria; private double pagacomplessivamensile; Un lavoratore dipendente lavora 7 ore al giorno per 5 giorni la settimana, data la retribuzione complessiva mensile di 1227 euro, determinare la retribuzione oraria nell ipotesi che abbia lavorato complessivamente

Dettagli

// Variabile utilizzata per eseguire una nuova elaborazione del programma senza riavviarlo.

// Variabile utilizzata per eseguire una nuova elaborazione del programma senza riavviarlo. Un appartamento viene valutato 176.000 euro e dispone di 72 metri quadrati. Determinare il prezzo a metro quadrato impiegando un applicazione console. import java.io.*; public class EU4_16 { private int

Dettagli

Realizzare un applicazione console che stampi la somma dei primi n numeri dispari oppure pari (a scelta dell operatore). import java.io.

Realizzare un applicazione console che stampi la somma dei primi n numeri dispari oppure pari (a scelta dell operatore). import java.io. Realizzare un applicazione console che stampi la somma dei primi n numeri dispari oppure pari (a scelta dell operatore). import java.io.*; public class M1_13 { public static void main(string args[]) throws

Dettagli

// Costante utilizzata per ddefinire la lunghezza massima (in caratteri) di un nome.

// Costante utilizzata per ddefinire la lunghezza massima (in caratteri) di un nome. import java.io.*; import java.util.arraylist; * * Questo programma rappresenta un tentativo di implementare un algoritmo per l'ordinamento alfabetico di una serie di stringhe (ad esempio i cognomi di un

Dettagli

Pag. 1 di 67. class Telefono implements Serializable { private String telefono = new String(""); private String descrizionetelefono = new String("");

Pag. 1 di 67. class Telefono implements Serializable { private String telefono = new String(); private String descrizionetelefono = new String(); import java.io.*; import java.text.dateformat; import java.util.arraylist; import java.util.calendar; import java.util.date; import java.util.locale; import java.util.timezone; /** * Programma per la gestione

Dettagli

import java.io.*; char sceltautente = '_'; boolean condizionesn = true; boolean condizionedowhile = true; boolean condizioneprogramma = true;

import java.io.*; char sceltautente = '_'; boolean condizionesn = true; boolean condizionedowhile = true; boolean condizioneprogramma = true; Un imposta sul reddito viene applicata in base alle seguenti fasce: fino a 35.000 euro 23% e oltre 35.000 euro 33%. Progettare un software, basato su un applicazione console, che, dato un certo reddito,

Dettagli

// Costante utilizzata per definire il numero massimo di serie che il programma può generare.

// Costante utilizzata per definire il numero massimo di serie che il programma può generare. import java.io.*; import java.util.random; import java.util.arraylist; /** * Applicazione per la creazione di serie di numeri casuali e di serie di numeri basate sul calcolo dei ritardatari per il gioco

Dettagli

import import import import import import import class implements private int public return this class implements private new private new public

import import import import import import import class implements private int public return this class implements private new private new public Un immobile è formato da un appartamento e un magazzino. L amministratore chiede un anticipo ai proprietari per le spese di riscaldamento che viene deciso, considerate le perticolari caratteristiche dei

Dettagli

System.out.print("\tATTENZIONE: hi inserito un valore non valido!\n");

System.out.print(\tATTENZIONE: hi inserito un valore non valido!\n); Creare un applicazione console che dato l indice della borsa di Milano nel giorno precedente, calcola la variazione percentuale rispetto al valore dell indice del giorno corrente. import java.io.*; public

Dettagli

import java.io.*; System.out.print("\tInserire il valore (in OHM) della resistenza \"R1\": ");

import java.io.*; System.out.print(\tInserire il valore (in OHM) della resistenza \R1\: ); Un circuito elettrico è formato da una batteria, di tensione E, che alimenta due resistori R 1 e R 2 in serie. Calcolare la corrente I erogata dalla batteria. Risolvere il problema mediante un applicazione

Dettagli

import java.io.*; System.out.print("\tInserire l\'altezza (in CM) delle piastrelle: "); stringainput = tastiera.readline();

import java.io.*; System.out.print(\tInserire l\'altezza (in CM) delle piastrelle: ); stringainput = tastiera.readline(); Si vogliono inserire, su un terreno all interno di un giardino, delle mattonelle che è possibile ritagliare in varie dimensioni. Le mattonelle devono essere rettangolari, con la condizione che ogni mattonella,

Dettagli

import java.io.*; double massa = 0.0; double velocità = 0.0; double coefficienteattrito = 0.0; int numeroveicoli = 0;

import java.io.*; double massa = 0.0; double velocità = 0.0; double coefficienteattrito = 0.0; int numeroveicoli = 0; import java.io.*; public class Veicolo { private String nomeveicolo = ""; private final double g = 9.8; private double massa; private double velocità; private double coefficienteattrito; public static

Dettagli

import java.io.*; System.out.print("\tInserire il tasso di spesa: ");

import java.io.*; System.out.print(\tInserire il tasso di spesa: ); Una famiglia, alla fine di ogni mese, percepisce un reddito di X euro. Nell ipotesi che ogni mese spenda un importo pari a T% del reddito totale (compresi i risparmi dei mesi precedenti) e che per tutto

Dettagli

import java.io.*; boolean condizioneciclo = true;

import java.io.*; boolean condizioneciclo = true; Un azienda agricola produce un tipo di frutta che vende a un grossista a 3 diversi prezzi al kilogrammo (X, Y e Z), che dipendono dalla pezzatura in grammi del frutto stesso (piccolo, medio e super). Dati

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzione condizionale switch Istruzioni di salto break e continue Uso di variabili di tipo boolean Variabili di tipo array (monodimensionali)

Dettagli

import public static boolean int boolean false boolean false boolean false boolean false true false

import  public static boolean int boolean false boolean false boolean false boolean false true false import java.util.arraylist; * Classe pubblica con metodi statici di utilità generale per: * la ricerca delle parole "EXIT" o "ESCI" o delle lettere "EE", scritte in maiuscolo o minuscolo, in una stringa

Dettagli

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false; Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i

Dettagli

Pag. 1 di 5. private Color C0 = new Color(255, 0, 0);

Pag. 1 di 5. private Color C0 = new Color(255, 0, 0); Un manuale è formato da 250 pagine, In 210 di essi sono presenti 40 righe di testo, mentre nelle restanti solo 36. Determinare il numero complessivo di righe di testo del manuale. Risolvere il problema

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Anno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata

Anno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata Iterazioni Anno Accademico 2003/04 Docente modulo 1: Lo statement while while (condition) statement; Ripete l esecuzione di statement fino a che la condizione e` verificata while (balance < targetbalance)

Dettagli

E17 Esercizi sugli Array in Java

E17 Esercizi sugli Array in Java E17 Esercizi sugli Array in Java Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Insieme.java. Printed by Paolo. Feb 24, 04 16:44 Page 1/1 class Insieme { private int[] elementi; Tuesday February 24, /10

Insieme.java. Printed by Paolo. Feb 24, 04 16:44 Page 1/1 class Insieme { private int[] elementi; Tuesday February 24, /10 Feb 24, 04 16:44 Page 1/1 class Insieme { private int[] elementi; public Insieme() { elementi = new int[0]; public static boolean vuoto(insieme i) { return i.elementi.length == 0; Insieme.java public static

Dettagli

Iterazioni. L istruzione while. while (condition) istruzione

Iterazioni. L istruzione while. while (condition) istruzione Iterazioni L istruzione while while (condition) istruzione Ripete l esecuzione di istruzione fino a che la condizione resta vera while (balance < targetbalance) year++; double interest = balance * rate

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare

Dettagli

E9 Esercizi sul Capitolo 9 Array

E9 Esercizi sul Capitolo 9 Array E9 Esercizi sul Capitolo 9 Array Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

Costrutti iterativi. Utilizzo dei costrutti iterativi

Costrutti iterativi. Utilizzo dei costrutti iterativi Costrutti iterativi Utilizzo dei costrutti iterativi Costrutti iterativi (1/3) I costrutti iterativi permettono di eseguire ripetutamente del codice Il linguaggio Java mette a disposizione tre costrutti

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzioni di controllo Iterative Condizionali Algoritmi e Diagrammi di flusso Esercizi 28/03/2011 2 Istruzioni iterative while do

Dettagli

Tecniche iterative. Walter Didimo

Tecniche iterative. Walter Didimo Tecniche iterative Walter Didimo Tecniche iterative In questa lezione svolgeremo alcuni esercizi di definizione di classi con metodi che usano istruzioni condizionali istruzioni iterative Gli esercizi

Dettagli

Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome

Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011 Gruppo Cognome Riontino Nome Raffaele Cognome Nome TRACCIA 2 ARGOMENTO: LISTE TEMPO: 4h 1. Utilizzando Typedef definire un nuovo tipo di dato

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 Alcune Soluzioni ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int[][] a = new int[n][n]; for (int i

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso; Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Prova Intermedia Marzo 2011 http://www.dia.uniroma3.it/~java/fondinf/ Prova Intermedia 1 Modalità della Prova Intermedia La Prova Intermedia

Dettagli

Java SE 7. Strutture di programmazione (2)

Java SE 7. Strutture di programmazione (2) Java SE 7 Strutture di programmazione (2) diegozabot@yahoo.it ursula.castaldo@gmail.com Casting (1) E' l'operazione che realizza la conversione di tipo tra oggetti e tra tipi primitivi. E' un'operazione

Dettagli

Impariamo a programmare in. Lezione 6

Impariamo a programmare in. Lezione 6 Impariamo a programmare in Decisioni Gestire un conto corrente double balance = 10000; // saldo iniziale System.out.println("Quanto vuoi prelevare? ); double amount = console.nextdouble(); balance = balance

Dettagli

Laboratorio di Programmazione Ottobre. Simone Zaccaria

Laboratorio di Programmazione Ottobre. Simone Zaccaria Laboratorio di Programmazione 27 31 Ottobre Simone Zaccaria Esercizio di Ripasso Scrivere un programma che: 1. dichiari 2 variabili a e b; 2. inizializzi le 2 variabili con valori numerici a scelta; 3.

Dettagli

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012 Programmazione a oggetti e JAVA Prof. B.Buttarazzi A.A. 2011/2012 Il tipo di dato boolean Il tipo di dato enum Sommario Istruzioni condizionali (o di selezione) if switch Istruzioni di salto break continue

Dettagli

Programmazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2008

Programmazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2008 Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 24 novembre 2008 Negli esercizi fate riferimento alle

Dettagli

LETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream

LETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Sfortunatamente, una tale classe non esiste

Dettagli

Metodi statici. Dichiarazione e chiamata di metodi statici

Metodi statici. Dichiarazione e chiamata di metodi statici Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un

Dettagli

L istruzione while. while (condition) istruzione

L istruzione while. while (condition) istruzione Iterazioni L istruzione while while (condition) istruzione Ripete l esecuzione di istruzione fino a che la condizione resta vera while (balance < targetbalance) { year++; double interest = balance * rate

Dettagli

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma

Dettagli

Metodi statci. Dichiarazione e chiamata di metodi statci

Metodi statci. Dichiarazione e chiamata di metodi statci Metodi statci Dichiarazione e chiamata di metodi statci Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un

Dettagli

Costrutto switch. Come utilizzare il costrutto switch

Costrutto switch. Come utilizzare il costrutto switch Costrutto switch Come utilizzare il costrutto switch Costrutto switch (1/4) Il costrutto if-else permette di selezionare le istruzioni da eseguire tra due alternative, a seconda del valore di una condizione

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando

Dettagli

Linguaggi di Programmazione I Lezione 8

Linguaggi di Programmazione I Lezione 8 Linguaggi di Programmazione I Lezione 8 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 29 aprile 2008 Identificatori e parole chiavi 3 Commenti.............................................................

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini Note ed esercizi aggiuntivi Gli esercizi proposti sono utili per rivedere gli esempi riportati, che sono stati sviluppati e discussi

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2014/2015 Ambiente di test Cercare PHP online per avere un interprete PHP Assegnamento

Dettagli

Lezione 4 Casting, stringhe e caratteri, operatori relazionali, espressioni e variabili booleane

Lezione 4 Casting, stringhe e caratteri, operatori relazionali, espressioni e variabili booleane Lezione 4 Casting, stringhe e caratteri, operatori relazionali, espressioni e variabili booleane Barbara Rita Barricelli Corso di Laboratorio di Programmazione -Turno B (Cognomi M-Z) CdL in Informatica

Dettagli

COGNOME NOME MATRICOLA DATA

COGNOME NOME MATRICOLA DATA COGNOME NOME MATRICOLA DATA 1. Scrivere la classe Automobile che ha i seguenti attributi colore: una stringa indicante il colore dell automobile, velocità: un numero con la virgola indicante la velocità

Dettagli

Esercizio 1: media di numeri reali (uso funzioni e struct)

Esercizio 1: media di numeri reali (uso funzioni e struct) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 5 Esercitazione: 2 novembre 2005 Esercizi sulle funzioni Esercizio 1: media di numeri reali (uso funzioni e struct) Le

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Metodi statici Parametri attuali e formali Passaggio dei parametri Effetti collaterali Metodi statici per Array Esercizi 16/01/2013

Dettagli

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while) Laboratorio Due 1) Switch 2) Costrutti Iterazione (For, While, do while) GLI ARGOMENTI DI OGGI Istruzione switch I costrutti di iterazione (For, while, do while) Le funzioni (e ricorsione) Terza Esercitazione

Dettagli

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma

Dettagli

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0} 16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento

Dettagli

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato

Dettagli

La gestione delle eccezioni

La gestione delle eccezioni La gestione delle eccezioni La gestione delle eccezioni Le eccezioni sono eventi che accadono in fase di esecuzione di un programma al verificarsi di una situazione anomala, come la divisione per 0, l'uso

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Metodi statici e array Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2017/2018 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 14 METODI STATICI: Definizione Un metodo

Dettagli

Introduzione Programmazione Java

Introduzione Programmazione Java Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea

Dettagli

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array

Dettagli

Somma di due numeri interi

Somma di due numeri interi Somma di due numeri interi class Somma int x=15; int y=15; int s=x+y; System.out.println("Buon giorno ragazzi della IVB Oggi si inizia con Java...\n"); System.out.println(x+"+"+y+"="+s); oppure utilizzando

Dettagli

7. Strutture di controllo

7. Strutture di controllo Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 7. Ing. Michele Ruta 1 di 17 Indice Istruzioni di selezione Mappate dal costrutto switch Istruzioni cicliche (di iterazione)

Dettagli

Fondamenti di Informatica T-1. Selezione

Fondamenti di Informatica T-1. Selezione Selezione 2 Selezione Permette di differenziare il flusso di controllo a seconda che sia verificata o meno una condizione. Il flusso di controllo si ramifica in due (o più) sequenze di istruzioni alternative.

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class

Dettagli

Ingredienti sintattici di Java

Ingredienti sintattici di Java Ingredienti sintattici di Java Eugenio G. Omodeo Dip. Matematica e Geoscienze DMI Trieste, 23/09/2015 Eugenio G. Omodeo Ingredienti sintattici di Java 1/7 Specificare ( Dizionario online tratto da: Grande

Dettagli

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA Anno scolastico Lab informatica AULA n 35 Data inizio svolgimento Progr. relazione primo trimestre secondo pentamestre Cognome e Nome DATI DELLO STUDENTE

Dettagli

Fondamenti di Informatica T-1. Variabili, costanti e operazioni Selezione

Fondamenti di Informatica T-1. Variabili, costanti e operazioni Selezione Variabili, costanti e operazioni Selezione 2 Variabili Dichiarazione di una variabile: ; Esempio: variabile numerica intera numauto: int numauto; Assegnare alla variabile

Dettagli

Basi della programmazione in Java

Basi della programmazione in Java Basi della programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Dettagli

J A V A. Selezione ed Iterazione

J A V A. Selezione ed Iterazione J A V A Selezione ed Iterazione Programmazione Strutturata Programmazione Strutturata: sfrutta un piccolo insieme di strutture di controllo predefinite. Sequenza.. Le istruzioni di un programma sono eseguite

Dettagli

Fondamenti di Informatica T-1. Classi e array

Fondamenti di Informatica T-1. Classi e array Classi e array 2 Classi e metodi statici Una classe è un costrutto linguistico che permette di modellare un'entità di un sistema, definendone le caratteristiche (variabili interne) e le azioni (metodi).

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze

Dettagli

Eccezioni Precisazioni e approfondimenti

Eccezioni Precisazioni e approfondimenti Eccezioni Precisazioni e approfondimenti Costruttore: il parametro String definisce il messaggio di errore associato all eccezione Metodi particolarmente significativi getmessage(): ritorna l istanza di

Dettagli

Oggi. La programmazione strutturata - II. Riassunto (1/2) Riassunto (2/2) Sequenza e selezione. if e while. Stefano Mizzaro 1

Oggi. La programmazione strutturata - II. Riassunto (1/2) Riassunto (2/2) Sequenza e selezione. if e while. Stefano Mizzaro 1 La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 5 Oggi Video: http://code.org/

Dettagli

Prova Scritta del 20/09/10

Prova Scritta del 20/09/10 Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da solo da un lato se si vogliono avere le fotocopie del compito. In testa a ciascun

Dettagli

Alberi Binario in Java

Alberi Binario in Java Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 8 luglio 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli