import java.io.*; import java.util.arraylist;

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "import java.io.*; import java.util.arraylist;"

Transcript

1 Dato un insieme di prodotti (dello stesso tipo ma con prezzi diversi) venduti in un supermercato, se ne stampi l elenco a partire da quello con il prezzo più elevato. Risolvere il problema mediante un modulo principale basato su un applicazione console. import java.io.*; import java.util.arraylist; class Articolo { private String codicearticolo; private String nomearticolo; private String nomeaziendaproduttricearticolo; private String categoriaarticolo; private String sottocategoriaarticolo; private String repartoarticolo; private String datainserimentoarticolo; private Double prezzoarticolo; private static int contatore = 0; public Articolo (String nomearticolo, String nomeaziendaproduttricearticolo, String categoriaarticolo, String sottocategoriaarticolo, String repartoarticolo, String datainserimentoarticolo, Double prezzoarticolo) { this.nomearticolo = nomearticolo; this.nomeaziendaproduttricearticolo = nomeaziendaproduttricearticolo; this.categoriaarticolo = categoriaarticolo; this.sottocategoriaarticolo = sottocategoriaarticolo; this.repartoarticolo = repartoarticolo; this.prezzoarticolo = prezzoarticolo; this.datainserimentoarticolo = datainserimentoarticolo; this.codicearticolo = generacodicearticolo(contatore++); public void nomearticolo(string nomearticolo) {this.nomearticolo = nomearticolo; public void nomeaziendaproduttrice(string nomeaziendaproduttricearticolo) {this.nomeaziendaproduttricearticolo = nomeaziendaproduttricearticolo; public void categoria(string categoriaarticolo) {this.categoriaarticolo = categoriaarticolo; public void sottocategoria(string sottocategoriaarticolo) {this.sottocategoriaarticolo = sottocategoriaarticolo; public void reparto(string repartoarticolo) {this.repartoarticolo = repartoarticolo; public void datainserimento(string datainserimentoarticolo) {this.datainserimentoarticolo = datainserimentoarticolo; public void prezzo(double prezzo) {this.prezzoarticolo = (double) Math.round(prezzo*100.0)/100.0; public String codicearticolo() {return this.codicearticolo; public String nomearticolo() {return this.nomearticolo; public String nomeaziendaproduttricearticolo() {return this.nomeaziendaproduttricearticolo; public String categoriaarticolo() {return this.categoriaarticolo; public String sottocategoriaarticolo() {return this.sottocategoriaarticolo; public String repartoarticolo() {return this.repartoarticolo; public String datainserimentoarticolo() {return this.datainserimentoarticolo; public Double prezzoarticolo() {return this.prezzoarticolo; public String generacodicearticolo(int contatore) { String codice = new String(); if ((contatore>=0)&&(contatore<=9)) Pag. 1 di 26

2 codice = "CA-00000" + contatore; else if ((contatore>=10)&&(contatore<=99)) codice = "CA-0000" + contatore; else if ((contatore>=100)&&(contatore<=999)) codice = "CA-000" + contatore; else if ((contatore>=1000)&&(contatore<=9999)) codice = "CA-00" + contatore; else if ((contatore>=10000)&&(contatore<=99999)) codice = "CA-0" + contatore; else codice = Integer.toString(contatore); return codice; public class EU5_15 { public static void main (String args[]) throws IOException { String stringainput = new String(); String nomearticolo = new String(); String nomeaziendaproduttricearticolo = new String(); String categoriaarticolo = new String(); String sottocategoriaarticolo = new String(); String repartoarticolo = new String(); String datainserimentoarticolo = new String(); InputStreamReader lettoreflussoingresso = new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(lettoreFlussoIngresso); ArrayList<Articolo> articoli = new ArrayList<Articolo>(); final int lunghezzacampocodicearticolo = 9; un articolo. final int lunghezzacamponomearticolo = 50; dell'articolo. final int lunghezzacamponomeaziendaproduttricearticolo = 50; dell'azienda produttrice dell'articolo. final int lunghezzacampodatainserimentoarticolo = 10; inserimento dell'articolo, nel formato'gg.mm.aaaa'. final int annomininserimentoarticolo = 2000; final int annomaxinserimentoarticolo = 2019; int interruttoreselezione = 1; final double prezzomaxarticolo = ; double prezzoarticolo = 0.0; // Costante utilizzata per definire la lunghezza massima (in caratteri) del codice di // Costante utilizzata per definire la lunghezza massima (in caratteri) del nome // Costante utilizzata per definire la lunghezza massima (in caratteri) del nome // Costante utilizzata per definire la lunghezza massima (in caratteri) della data di // Costante utilizzata per definire l'anno minimo utile per l'inserimento delle date. // Costante utilizzata per definire l'anno massimo utile per l'inserimento delle date. // Costante utilizzata per definire il prezzo massimo di un articolo. d'ingresso. char sceltautente = '_'; boolean boolean condizioneuscitaprogramma = false; boolean condizioneriavvioprogramma = false; boolean condizioneiterazionemenuprogramma = false; // Variabile utilizzata esclusivamente nei cicli DO... WHILE per la verifica dei dati // Variabile utilizzata per terminare l'esecuzione del programma. // Variabile utilizzata per il riavvio del programma. // Variabile utilizzata per gestire l'iterazione del menu principale del programma. Pag. 2 di 26

3 boolean trovatoelementoricerca = false; programma (realizzato nella RAM del computer). // Variabile utilizzata per verificare l'esito di una ricerca nel database interno del System.out.print("\n\n\n\n"); // Punto di inizio per il riavvio del programma. condizioneriavvioprogramma = false; System.out.print("\n\tESERCIZIO UNITÀ 5, numero 15, pagina 252."); System.out.print("\n\tScrivere \"ESCI\" oppure \"EE\" oppure \"EXIT\" in minuscolo o maiuscolo + INVIO, per uscire dal programma."); System.out.print("\n\tScrivere \"RIAVVIA\" oppure \"RR\" oppure \"RESTART\" in minuscolo o maiuscolo + INVIO, per riavviare il programma."); System.out.print("\n\tQuesto programma permette di gestire gli articoli di un supermercato."); // Inizio del ciclo DO... WHILE per il controllo dell'iterazione del menu principale del programma. condizioneiterazionemenuprogramma = false; condizioneuscitaprogramma = false; interruttoreselezione = 1; if (condizioneuscitaprogramma==false) { // Inizio del ciclo DO... WHILE per il controllo dell'iterazione del menu principale del programma. if (interruttoreselezione==1) { System.out.print("\n\tMENU PRINCIPALE DEL PROGRAMMA:"); System.out.print("\n\tA) Inserisci un nuovo articolo."); System.out.print("\n\tB) Stampa tutti gli articoli presenti nel database."); System.out.print("\n\tC) Cerca un articolo per codice."); System.out.print("\n\tD) Cerca un articolo per nome."); System.out.print("\n\tE) Cerca un articolo per categoria."); System.out.print("\n\tF) Cerca un articolo per sottocategoria."); System.out.print("\n\tG) Cerca un articolo per reparto."); System.out.print("\n\tH) Cerca un articolo per fascia di prezzo."); System.out.print("\n\tI) Calcola la media dei prezzi di tutti gli articoli."); System.out.print("\n\tJ) Trova l'articolo più costoso."); System.out.print("\n\tK) Trova l'articolo meno costoso."); System.out.print("\n\tL) Cerca articolo per data di inserimento alla vendita."); interruttoreselezione = 0; System.out.print("\tScegliere un'operazione da eseguire: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna opzione.\n"); Pag. 3 di 26

4 if (stringainput.length()>1) 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!='e')&&(sceltautente!='f')&&(sceltautente!='g')&&(sceltautente!=' H')&&(sceltaUtente!='I')&&(sceltaUtente!='J')&&(sceltaUtente!='K')&&(sceltaUtente!='L')) System.out.print("\tATTENZIONE: hai scelto un'opzione non in elenco.\n"); else while (condizioneciclodowhile==true); if (condizioneuscitaprogramma==false) { costruttoswitch: // Etichetta per un eventuale gestione del salto del costrutto SWITCH_CASE tramite il comando break. switch (sceltautente) { case 'A': { if (condizioneuscitaprogramma==false) { // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al nome dell'articolo da inserire nel database. System.out.print("\tInserire il nome dell'articolo da inserire nel database: "); 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\" dell'articolo da inserire nel database.\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaCampoNomeArticolo) System.out.print("\tATTENZIONE: la lunghezza massima consentita per il nome di un articolo da inserire nel database è di " + lunghezzacamponomearticolo + " caratteri.\n"); else if (AGG.verificaCampoNome(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati inseriti uno o più caratteri non consentiti: " + AGG.restituisciCaratteriNonConsentitiCampoNome(stringaInput) + "\n"); nomearticolo = AGG.eliminaSpaziInEccesso(stringaInput); while (condizioneciclodowhile==true); Pag. 4 di 26

5 dell'azienda produttrice dell'articolo. if (condizioneuscitaprogramma==false) { // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al nome System.out.print("\tInserire il nome dell'azienda produttrice dell'articolo da inserire nel database: "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpaziInEccesso(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il campo \"nome dell'azienda produttrice\" dell'articolo da inserire nel database.\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaCampoNomeAziendaProduttriceArticolo) System.out.print("\tATTENZIONE: la lunghezza massima consentita per il nome dell'azienda produttrice dell'articolo è di " + lunghezzacamponomeaziendaproduttricearticolo + " caratteri.\n"); else if (AGG.verificaCampoNome(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non consentiti: " + AGG.restituisciCaratteriNonConsentitiCampoNome(stringaInput) + "\n"); nomeaziendaproduttricearticolo = AGG.eliminaSpaziInEccesso(stringaInput); while (condizioneciclodowhile==true); if (condizioneuscitaprogramma==false) { // Inizio del ciclo DO... WHILE per la verifica della voce inserita dall'utente relativa alla categoria dell'articolo da inserire nel database. System.out.print("\tInserire la categoria dell'articolo da inserire nel database:"); System.out.print("\n\tA) Alimentari. B) Casalinghi. "); else if (AGG.riavvia(stringaInput)==true) { Pag. 5 di 26

6 else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna voce del menu.\n"); if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai scelto una voce non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='a')&&(sceltautente!='b')) System.out.print("\tATTENZIONE: hai scelto una voce in elenco.\n"); switch (sceltautente) { case 'A': { categoriaarticolo = "Alimentari"; // Inizio del ciclo DO... WHILE per la verifica della voce inserita dall'utente relativa relativa alla sottocategoria dell'articolo appartenente agli Alimentari. System.out.print("\tInserire la sottocategoria dell'articolo appartenente agli \"Alimentari\": "); System.out.print("\n\tA) Surgelati. B) Frutta C) Panificati e Cereali. D) Latticini e Formaggi. E) Carne e Pesce F) Bibite. "); condizioneciclodowhile =false; System.out.print("\tTERMINE DELL'ESECUZIONE DEL PROGRAMMA.\n"); else if (AGG.riavvia(stringaInput)==true) { System.out.print("\tRIAVVIO DEL PROGRAMMA IN CORSO...\n"); else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito lacuna voce.\n"); if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai inserito una voce non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='a')&&(sceltautente!='b')&&(sceltautente!='c')&&(sceltautente!='d')&&(sceltautente!='e')&&(sceltautente!='f')) System.out.print("\tATTENZIONE: hai scelto una voce non in elenco.\n"); Pag. 6 di 26

7 switch (sceltautente) { case 'A': { sottocategoriaarticolo = "Surgelati"; sottocategoriaarticolo = "Frutta"; sottocategoriaarticolo = "Panificati e Cereali"; sottocategoriaarticolo = "Latticini e Formaggi"; sottocategoriaarticolo = "Carne e Pesce"; sottocategoriaarticolo = "Bibite"; inserita dall'utente relativa alla sottocategoria dell'articolo appartenente ai Casalinghi. dell'articolo appartenente ai \"Casalinghi\": "); C) Giocattoli. D) Detersivi e Profumi. E) CD e DVD. "); Pag. 7 di 26 case 'B': { case 'C': { case 'D': { case 'E': { case 'F': { while (condizioneciclodowhile==true); case 'B': { categoriaarticolo = "Casalinghi"; // Inizio del ciclo DO... WHILE per la verifica della voce System.out.print("\tInserire la sottocategoria System.out.print("\n\tA) Elettrodomestici. B) Cartoleria.

8 PROGRAMMA.\n"); CORSO...\n"); alcuna voce.\n"); una voce non valida.\n"); ((sceltautente!='a')&&(sceltautente!='b')&&(sceltautente!='c')&&(sceltautente!='d')&&(sceltautente!='e')) scelto una voce non in elenco.\n"); sottocategoriaarticolo = "Elettrodomestici"; sottocategoriaarticolo = "Cartoleria"; sottocategoriaarticolo = "Giocattoli"; sottocategoriaarticolo = "Detersivi e Profumi"; System.out.print("\tTERMINE DELL'ESECUZIONE DEL else if (AGG.riavvia(stringaInput)==true) { System.out.print("\tRIAVVIO DEL PROGRAMMA IN else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai scelto stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if System.out.print("\tATTENZIONE: hai switch (sceltautente) { case 'A': { case 'B': { case 'C': { case 'D': { case 'E': { sottocategoriaarticolo = "CD e DVD"; Pag. 8 di 26

9 while (condizioneciclodowhile==true); dell'articolo da inserire nel database. while (condizioneciclodowhile==true); if (condizioneuscitaprogramma==false) { // Inizio del ciclo DO... WHILE per la verifica della voce inserita dall'utente relativa al reparto System.out.print("\tInserire il reparto dell'articolo da inserire nel database:"); System.out.print("\n\tA) Altro. B) Ortofrutta. C) Panetteria. D) Gatronomia. E) Macelleria F) Pescheria. G) Elettronica. "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna voce.\n"); if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai scelto una voce non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='a')&&(sceltautente!='b')&&(sceltautente!='c')&&(sceltautente!='d')&&(sceltautente!='e')&&(sceltautente!='f')&&(sceltautente!='g')) System.out.print("\tATTENZIONE: hai scelto una voce non in elenco.\n"); switch (sceltautente) { case 'A': { repartoarticolo = "Altro"; Pag. 9 di 26

10 cui l'articolo viene inserito nel database. 'GG.MM.AAAA': "); inserimento\" dell'articolo da inserire nel database.\n"); Pag. 10 di 26 case 'B': { repartoarticolo = "Ortofrutta"; case 'C': { repartoarticolo = "Panetteria"; case 'D': { repartoarticolo = "Gastronomia"; case 'E': { repartoarticolo = "Macelleria"; case 'F': { repartoarticolo = "Pescheria"; case 'G': { repartoarticolo = "Elettronica"; while (condizioneciclodowhile==true); if (condizioneuscitaprogramma==false) { // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa alla data in System.out.print("\tInserire la data di inserimento dell'articolo nel database nel formato else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento nel campo \"data di

11 else if (AGG.eliminaSpazi(stringaInput).length()!=10) System.out.print("\tATTENZIONE: la lunghezza consentita per la data di inserimento alla vendita dell'articolo da inserire nel database è di " + lunghezzacampodatainserimentoarticolo + " caratteri.\n"); else if (AGG.verificaCampoData(stringaInput)==false) { if (AGG.restituisciCaratteriNonConsentitiCampoData(stringaInput).equalsIgnoreCase("")) System.out.print("\tATTENZIONE: c'è un errore nella data.\n"); else System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non consentiti: " + AGG.restituisciCaratteriNonConsentitiCampoData(stringaInput) + "\n"); else if (Integer.parseInt(AGG.eliminaSpazi(stringaInput).substring(6, 10))<annoMinInserimentoArticolo) System.out.print("\tATTENZIONE: il programma non accetta in ingresso date antecedenti l'anno " + annomininserimentoarticolo + ".\n"); else if (Integer.parseInt(AGG.eliminaSpazi(stringaInput).substring(6, 10))>annoMaxInserimentoArticolo) System.out.print("\tATTENZIONE: il programma non accetta in ingresso date successive l'anno " + annomaxinserimentoarticolo + ".\n"); datainserimentoarticolo = AGG.eliminaSpazi(stringaInput); dell'articolo da inserire nel database. "); inserire un numero INTERO o DECIMALE).\n"); while (condizioneciclodowhile==true); if (condizioneuscitaprogramma==false) { // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al prezzo System.out.print("\tInserire il prezzo di vendita dell'articolo da inserire nel database (in ): 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 try { prezzoarticolo = Double.parseDouble(stringaInput); if (prezzoarticolo==0.0) Pag. 11 di 26

12 System.out.print("\tATTENZIONE: hai inserito un valore pari a 0.\n"); else if (prezzoarticolo<0.0) System.out.print("\tATTENZIONE: hai inserito un valore minore di 0.\n"); else catch (NumberFormatException eccezzione1) { System.out.print("\tATTENZIONE: il numero inserito (in modulo) è troppo grande.\n"); while (condizioneciclodowhile==true); { // Inizio del blocco di elaborazione per la creazione dell'oggetto della classe Articolo che verrà poi aggiunto all'array dinamico articoli (di ArrayLinst). Articolo articolo = new Articolo(nomeArticolo, nomeaziendaproduttricearticolo, categoriaarticolo, sottocategoriaarticolo, repartoarticolo, datainserimentoarticolo, prezzoarticolo); articoli.add(articolo); case 'B': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun articolo nel database.\n"); trovatoelementoricerca = false; System.out.print("\n\tSTAMPA DI TUTTI GLI ARTICOLI PRESENTI NEL DATABASE:"); for (int i = 0; i<articoli.size(); i++) { trovatoelementoricerca = true; System.out.print("\n\tCodice articolo:\t\t" + articoli.get(i).codicearticolo()); System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + articoli.get(i).nomeaziendaproduttricearticolo()); System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" + articoli.get(i).datainserimentoarticolo()); System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " "); case 'C': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun artiolo nel database.\n"); // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al codice di un articolo da cercare nel database interno del programma (reallizzato nella RAM del computer). System.out.print("\tInserire il codice dell'articolo da cercare nel database: "); Pag. 12 di 26

13 da cercare nel database.\n"); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento per il codice dell'articolo else if (AGG.eliminaSpazi(stringaInput).length()!=lunghezzaCampoCodiceArticolo) System.out.print("\tATTENZIONE: il codice di un articolo deve essere formato da " + lunghezzacampocodicearticolo + " caratteri.\n"); else if (AGG.verificaCampoCodiceAlfanumerico(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non consentiti: " + AGG.restituisciCaratteriNonConsentitiCampoCodiceAlfanumerico(stringaInput) + "\n"); trovatoelementoricerca = false; System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) { if (stringainput.equalsignorecase(articoli.get(i).codicearticolo())) { trovatoelementoricerca = true; System.out.print("\n\tCodice articolo:\t\t" + articoli.get(i).codicearticolo()); System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + articoli.get(i).nomeaziendaproduttricearticolo()); System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" + articoli.get(i).datainserimentoarticolo()); System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " "); if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun articolo con il codice inserito.\n"); while (condizioneciclodowhile==true); case 'D': { Pag. 13 di 26

14 if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun articolo nel database.\n"); // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al nome dell'articolo da cercare nel database interno del programma (realizzato nella RAM del computer). System.out.print("\tInserire il nome dell'articolo da cercare nel database: "); 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\" dell'articolo da cercare nel database.\n"); else if (AGG.eliminaSpaziInEccesso(stringaInput).length()>lunghezzaCampoNomeArticolo) System.out.print("\tATTENZIONE: la lunghezza del nome di un articolo non può superare i " + lunghezzacamponomearticolo + " caratteri.\n"); else if (AGG.verificaCampoNome(stringaInput)==false) System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non consentiti.\n"); trovatoelementoricerca = false; stringainput = AGG.eliminaSpaziInEccesso(stringaInput); System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) for (int j = 0; j<(articoli.get(i).nomearticolo().length()-(stringainput.length()- 1)); j++) if (stringainput.equalsignorecase(articoli.get(i).nomearticolo().substring(j, j+stringainput.length()))) { trovatoelementoricerca = true; System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + articoli.get(i).nomeaziendaproduttricearticolo()); System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" + articoli.get(i).datainserimentoarticolo()); System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " "); Pag. 14 di 26

15 inserito.\n"); if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun articolo con il paramentro while (condizioneciclodowhile==true); case 'E': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun articolo nel database.\n"); // Inizio del ciclo DO... WHILE per la verifica della voce scelta dall'utente relativa alla categoria dell'articolo da cercare nel database interno del programma (realizzato nella RAM del computer). System.out.print("\tInserire la categoria dell'articolo da cercare nel database:"); System.out.print("\n\tA) Alimentari. B) Casalinghi. "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna voce.\n"); if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai scelto una voce non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='a')&&(sceltautente!='b')) System.out.print("\tATTENZIONE: hai scelto una voce non in elenco.\n"); else if (sceltautente=='a') { trovatoelementoricerca = false; stringainput = "Alimentari"; System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) if (stringainput.equalsignorecase(articoli.get(i).categoriaarticolo())) { trovatoelementoricerca = true; Pag. 15 di 26

16 articoli.get(i).nomearticolo()); articoli.get(i).nomeaziendaproduttricearticolo()); articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); articoli.get(i).repartoarticolo()); articoli.get(i).datainserimentoarticolo()); articoli.get(i).prezzoarticolo() + " "); parametro inserito.\n"); { articoli.get(i).nomearticolo()); articoli.get(i).nomeaziendaproduttricearticolo()); articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); articoli.get(i).repartoarticolo()); articoli.get(i).datainserimentoarticolo()); articoli.get(i).prezzoarticolo() + " "); parametro inserito.\n"); Pag. 16 di 26 System.out.print("\n\tNome articolo:\t\t\t" + System.out.print("\n\tAzienda prodttrice:\t\t" + System.out.print("\n\tCategoria:\t\t\t" + System.out.print("\n\tReparto:\t\t\t" + System.out.print("\n\tData disponibilità:\t\t" + System.out.print("\n\tPrezzo:\t\t\t\t" + if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun articolo con il trovatoelementoricerca = false; stringainput = "Casalinghi"; System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) if (stringainput.equalsignorecase(articoli.get(i).categoriaarticolo())) while (condizioneciclodowhile==true); trovatoelementoricerca = true; System.out.print("\n\tNome articolo:\t\t\t" + System.out.print("\n\tAzienda produttrice:\t\t" + System.out.print("\n\tCategoria:\t\t\t" + System.out.print("\n\tReparto:\t\t\t" + System.out.print("\n\tData disponibilità:\t\t" + System.out.print("\n\tPrezzo:\t\t\t\t" + if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun articolo con il

17 case 'F': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun articolo nel database.\n"); // Inizio del ciclo DO... WHILE per la verifica della voce scelta dall'utente relativa alla sottocategoria dell'articolo da cercare nel database interno del programma (realizzato nella RAM del computer). System.out.print("\tInserire la sottocategoria dell'articolo da cercare nel database:"); System.out.print("\n\tA) Surgelati. B) Frutta C) Panificati e Cereali. D) Latticini e Formaggi. E) Carne e Pesce F) Bibite. "); System.out.print("\n\tG) Elettrodomestici. H) Cartoleria. I) Giocattoli. J) Detersivi e Profumi. K) CD e DVD. "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna voce.\n"); if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai scelto una voce non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='a')&&(sceltautente!='b')&&(sceltautente!='c')&&(sceltautente!='d')&&(sceltautente!='e')&&(sceltautente!='f')&&(sceltautente!='g')&&(sceltautente!=' H')&&(sceltaUtente!='I')&&(sceltaUtente!='J')&&(sceltaUtente!='K')) System.out.print("\tATTENZIONE: hai scelto una voce non in elenco.\n"); switch (sceltautente) { case 'A': { stringainput = "Surgelati"; case 'B': { stringainput = "Frutta"; case 'C': { stringainput = "Panificati e Cereali"; Pag. 17 di 26

18 articoli.get(i).nomeaziendaproduttricearticolo()); + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); articoli.get(i).datainserimentoarticolo()); case 'D': { stringainput = "Latticini e Formaggi"; case 'E': { stringainput = "Carne e Pesce"; case 'F': { stringainput = "Bibite"; case 'G': { stringainput = "Elettrodomestici"; case 'H': { stringainput = "Cartoleria"; case 'I': { stringainput = "Giocattoli"; case 'J': { stringainput = "Detersivi e Profumi"; case 'K': { stringainput = "CD e DVD"; if (condizioneuscitaprogramma==false) { trovatoelementoricerca = false; System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) if (stringainput.equalsignorecase(articoli.get(i).sottocategoriaarticolo())) { trovatoelementoricerca = true; System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + Pag. 18 di 26 System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" +

19 "); inseriti.\n"); Pag. 19 di 26 System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun articolo con i parametri while (condizioneciclodowhile==true); case 'G': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato inserito ancora alcun articolo.\n"); // Inizio del ciclo DO... WHILE per la verifica dell'opzione scelta dall'utente relativa al reparto dell'articolo da cercare nel database interno del programma (realizzato nella RAM del coputer). System.out.print("\tInserire il reparto dell'articolo da cercare nel database:"); System.out.print("\n\tA) Altro. B) Ortofrutta. C) Panetteria. D) Gatronomia. E) Macelleria F) Pescheria. G) Elettronica. "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai scelto alcuna voce.\n"); if (stringainput.length()>1) System.out.print("\tATTENZIONE: hai scelto una voce non valida.\n"); stringainput = stringainput.touppercase(); sceltautente = stringainput.charat(0); if ((sceltautente!='a')&&(sceltautente!='b')&&(sceltautente!='c')&&(sceltautente!='d')&&(sceltautente!='e')&&(sceltautente!='f')&&(sceltautente!='g')) System.out.print("\tATTENZIONE: hai scelto una voce non in elenco.\n"); switch (sceltautente) { case 'A': { stringainput = "Altro";

20 articoli.get(i).nomeaziendaproduttricearticolo()); + articoli.get(i).sottocategoriaarticolo() + ")"); articoli.get(i).datainserimentoarticolo()); inserito.\n"); case 'B': { stringainput = "Ortofrutta"; case 'C': { stringainput = "Panetteria"; case 'D': { stringainput = "Gastronomia"; case 'E': { stringainput = "Macelleria"; case 'F': { stringainput = "Pescheria"; case 'G': { stringainput = "Elettronica"; while (condizioneciclodowhile==true); if (condizioneuscitaprogramma==false) { trovatoelementoricerca = false; System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) if (stringainput.equalsignorecase(articoli.get(i).repartoarticolo())) { trovatoelementoricerca = true; System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() + " (" System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" + System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " "); if (trovatoelementoricerca==false) System.out.print("\n\tATTENZIONE: non è stato trovato alcun elemento con il parametro Pag. 20 di 26

21 case 'H': { double prezzomin = 0.0; double prezzomax = 0.0; if (articoli.size()!=0) { prezzomin = articoli.get(0).prezzoarticolo(); prezzomax = articoli.get(0).prezzoarticolo(); // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al prezzo minimo dell'articolo da cercare nel database interno del programma (realizzato nella RAM del computer). System.out.print("\tInserire il prezzo minimo dell'articolo da cercare nel database: "); break costruttoswitch; else if (AGG.riavvia(stringaInput)==true) { break costruttoswitch; else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun valore nel campo \"prezzo minimo\" dell'articolo da cercare nel database.\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"); try { prezzomin = Double.parseDouble(stringaInput); if (prezzomin==0.0) System.out.print("\tATTENZIONE: hai inserito un valore pari a 0.\n"); else if (prezzomin<0.0) System.out.print("\tATTENZIONE: hai inserito un valore minore di 0.\n"); else catch (NumberFormatException eccezzione1) { System.out.print("\tATTENZIONE: il numero inserito (in modulo) è troppo grande.\n"); while (condizioneciclodowhile==true); // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa al prezzo massimo dell'articolo da cercare nel database interno del programma (realizzato nella RAM del computer). Pag. 21 di 26

22 dell'articolo da cercare nel database.\n"); inserire un numero INTERO o DECIMALE).\n"); database non può essere inferiore al prezzo minimo.\n"); non può essere superiore a " + prezzomaxarticolo + ".\n"); articoli.get(i).nomeaziendaproduttricearticolo()); System.out.print("\tInserire il prezzo massimo dell'articolo da cercare nel database: "); break costruttoswitch; else if (AGG.riavvia(stringaInput)==true) { break costruttoswitch; else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun valore nel campo \"prezzo massimo\" else if (AGG.trovaNumeroDecimale(stringaInput)==false) System.out.print("\tATTENZIONE: non hai inserito un numero in un formato valido (devi try { prezzomax = Double.parseDouble(stringaInput); if (prezzomax==0.0) System.out.print("\tATTENZIONE: hai inserito un valore pari a 0.\n"); else if (prezzomax<0.0) System.out.print("\tATTENZIONE: hai inserito un valore minore di 0.\n"); else if (prezzomax<prezzomin) System.out.print("\tATTENZIONE: il prezzo massimo dell'articolo da cercare nel else if (prezzomax>prezzomaxarticolo) System.out.print("\tATTENZIONE: il prezzo massimo consentito per un articolo else catch (NumberFormatException eccezzione1) { System.out.print("\tATTENZIONE: il numero inserito (in modulo) è troppo grande.\n"); while (condizioneciclodowhile==true); trovatoelementoricerca = false; System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) if ((prezzomin<=articoli.get(i).prezzoarticolo())&&(prezzomax>=articoli.get(i).prezzoarticolo())) { trovatoelementoricerca = true; System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + Pag. 22 di 26

23 System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" + articoli.get(i).datainserimentoarticolo()); System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " "); if (trovatoelementoricerca==false) System.out.print("\n\tATTENZIONE: non è stato trovato alcun articolo con i parametri inseriti.\n"); else System.out.print("\n\tATTENZIONE: non è stato ancora inserito ancora alcun articolo nel database.\n\n"); case 'I': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun articolo.\n"); double sommaprezzi = 0.0; for (int i = 0; i<articoli.size(); i++) sommaprezzi += articoli.get(i).prezzoarticolo(); System.out.print("\n\tLa media dei prezzi di tutti gli articoli presenti nel database è " + ((double) Math.round(sommaPrezzi/articoli.size()*100.0)/100.0) + ".\n\n"); case 'J': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun articolo.\n"); double prezzopiùaltoarticolo = articoli.get(0).prezzoarticolo(); System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) if (articoli.get(i).prezzoarticolo()>prezzopiùaltoarticolo) { prezzopiùaltoarticolo = articoli.get(i).prezzoarticolo(); for (int i = 0; i<articoli.size(); i++) if (prezzopiùaltoarticolo==articoli.get(i).prezzoarticolo()) { System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + articoli.get(i).nomeaziendaproduttricearticolo()); System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" + articoli.get(i).datainserimentoarticolo()); System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " "); Pag. 23 di 26

24 case 'K': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun articolo.\n"); double prezzopiùbassoarticolo = articoli.get(0).prezzoarticolo(); System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) if (articoli.get(i).prezzoarticolo()<prezzopiùbassoarticolo) { prezzopiùbassoarticolo = articoli.get(i).prezzoarticolo(); for (int i = 0; i<articoli.size(); i++) if (prezzopiùbassoarticolo==articoli.get(i).prezzoarticolo()) { System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + articoli.get(i).nomeaziendaproduttricearticolo()); System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" + articoli.get(i).datainserimentoarticolo()); System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " "); case 'L': { if (articoli.size()==0) System.out.print("\tATTENZIONE: non è stato ancora inserito alcun articolo nel database.\n"); // Inizio del ciclo DO... WHILE per la verifica della stringa inserita dall'utente relativa alla data di inserimento alla vendita dell'articolo da cercare nel database interno del programma (realizzato nella RAM del computer). System.out.print("\tInserire la data di inserimento alla vendita dell'articolo da cercare nel database, nel formato 'GG.MM.AAAA': "); else if (AGG.riavvia(stringaInput)==true) { else if (AGG.eliminaSpazi(stringaInput).length()==0) System.out.print("\tATTENZIONE: non hai inserito alcun elemento nel campo \"data di inserimento\" dell'articolo da cercare nel database.\n"); else if (AGG.eliminaSpazi(stringaInput).length()!=lunghezzaCampoDataInserimentoArticolo) Pag. 24 di 26

25 System.out.print("\tATTENIONE: la lunghezza consentita per la data di inserimento alla vendita dell'articolo da cercare nel database è di " + lunghezzacampodatainserimentoarticolo + " caratteri.\n"); else if (AGG.verificaCampoData(stringaInput)==false) { if (AGG.restituisciCaratteriNonConsentitiCampoData(stringaInput).equalsIgnoreCase("")) System.out.print("\tATTENZIONE: c'è un errore nella data.\n"); else System.out.print("\tATTENZIONE: sono stati trovati uno o più caratteri non consentiti: " + AGG.restituisciCaratteriNonConsentitiCampoData(stringaInput) + "\n"); if (Integer.parseInt(AGG.eliminaSpazi(stringaInput).substring(6, 10))<annoMinInserimentoArticolo) System.out.print("\tATTENZIONE: il programma non accetta in ingresso date antecedenti l'anno " + annomininserimentoarticolo + ".\n"); else if (Integer.parseInt(AGG.eliminaSpazi(stringaInput).substring(6, 10))>annoMaxInserimentoArticolo) System.out.print("\tATTENIONE: il programma non accetta in ingresso date successive all'anno " + annomaxinserimentoarticolo + ".\n"); trovatoelementoricerca = false; System.out.print("\n\tSTAMPA DEI RISULTATI:"); for (int i = 0; i<articoli.size(); i++) if (stringainput.equalsignorecase(articoli.get(i).datainserimentoarticolo())) { trovatoelementoricerca = true; System.out.print("\n\tNome articolo:\t\t\t" + articoli.get(i).nomearticolo()); System.out.print("\n\tAzienda produttrice:\t\t" + articoli.get(i).nomeaziendaproduttricearticolo()); System.out.print("\n\tCategoria:\t\t\t" + articoli.get(i).categoriaarticolo() + " (" + articoli.get(i).sottocategoriaarticolo() + ")"); System.out.print("\n\tReparto:\t\t\t" + articoli.get(i).repartoarticolo()); System.out.print("\n\tData disponibilità:\t\t" + articoli.get(i).datainserimentoarticolo()); System.out.print("\n\tPrezzo:\t\t\t\t" + articoli.get(i).prezzoarticolo() + " "); if (trovatoelementoricerca==false) System.out.print("\n\tNon è stato trovato alcun articolo con il parametro inserito.\n"); while (condizioneciclodowhile==true); Pag. 25 di 26

26 if (condizioneuscitaprogramma==false) { // Inizio del ciclo DO... WHILE per la verifica dell'opzione scelta dall'utente relativa alla richiesta di scegliere una nuova opzione nel menu principale del programma. System.out.print("\tVuoi svolgere un'altra operazione (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"); 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"); else if (sceltautente=='s') { condizioneiterazionemenuprogramma = true; else while (condizioneciclodowhile==true); while (condizioneiterazionemenuprogramma==true); while (condizioneriavvioprogramma==true); System.out.print("\n\n\n\n"); Pag. 26 di 26

Pag. 1 di 22. import java.io.*; import java.util.arraylist;

Pag. 1 di 22. import java.io.*; import java.util.arraylist; Una famiglia di 3 persone ha trascorso 10 giorni in vacanza in un agriturismo (al prezzo di X euro al giorno per persona) e 15 giorni in un campeggio (al prezzo di Y euro per giornata di soggiorno + Z

Dettagli

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

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

import java.io.*; Pag. 1 di 15 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

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.*; Pag. 1 di 9

import java.io.*; Pag. 1 di 9 Di 5 regioni italiane si conoscono i metri quadrati relativi alla pianura, alla collina e alla montagna. Determinare l ampiezza complessiva in metri quadrati della pianura, della collina e della montagna

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

// 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 java.io.*; class Vettore { // Dichiarazione della variabile reference del vettore d'istanza.

import java.io.*; class Vettore { // Dichiarazione della variabile reference del vettore d'istanza. import java.io.*; class Vettore { private double vettore[]; // Dichiarazione della variabile reference del vettore d'istanza. public Vettore(int numeroelementi) { if ((numeroelementi>0)&&(numeroelementi

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

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

// Variabile utilizzata esclusivamente nei cicli DO... WHILE per la verifica dei dati

// Variabile utilizzata esclusivamente nei cicli DO... WHILE per la verifica dei dati import java.io.*; public class Punto { private double x, y; public Punto (double valore_x, double valore_y) { this.x = valore_x; this.y = valore_y; public static void main(string args[]) throws IOException

Dettagli

// Variabile utilizzata esclusivamente nei cicli DO... WHILE per la verifica dei dati

// Variabile utilizzata esclusivamente nei cicli DO... WHILE per la verifica dei dati import java.io.*; public class MainSolidi { public static void main(string args[]) throws IOException { String stringainput = new String(); InputStreamReader lettoreflussoingresso = new InputStreamReader(System.in);

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

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

// 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

// 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

// 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

// 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

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 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

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

import java.io.*; public class EU4_11 { private double larghezza; private double lunghezza; private double superficie;

import java.io.*; public class EU4_11 { private double larghezza; private double lunghezza; private double superficie; Un terreno rettangolare ha una superficie complessiva di metri quadrati 15.498 e una base di metri 126. Determina l altezza impiegando un applet. SUGGERIMENTO: progettare e realizzare una classe Rettangolo

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

import java.io.*; public class EU4_09 { private int giornilocazionea; private int giornilocazioneb; private double speselocazioneappartamento;

import java.io.*; public class EU4_09 { private int giornilocazionea; private int giornilocazioneb; private double speselocazioneappartamento; Due persone A e B hanno affittato un appartamento per 1 anno e in totale hanno sostenuto spese per 3100 euro. Dato che il Sig. A non ha utilizzato l alloggio per 80 giorni e che le spese sono ripartite

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

RicercaSequenziale import public class public static void throws new new new int int int char boolean true true false false out true out out else

RicercaSequenziale import public class public static void throws new new new int int int char boolean true true false false out true out out else Algoritmo di ricerca sequenziale o lineare, in una Tabella con LunghezzaTabella righe. L algoritmo restituisce il valore TRUE in Trovato se la chiave di ricerca C esiste nel campo Chiave (numerico) della

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

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 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.*; System.out.print("\tInserire la velocità (in km/h) dell\'automobile: ");

import java.io.*; System.out.print(\tInserire la velocità (in km/h) dell\'automobile: ); Un automobile di massa m (in kilogrammi) viaggia a una velocità v, in km/h. Realizzare un applicazione console che permetta di calcolare l energia cinetica E dell automobile espressa in joule. SUGGERIMENTO:

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

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

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

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

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

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

Note ed esercizi aggiuntivi

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

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

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

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

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

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni 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 Corso

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

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

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

Introduzione a Java e all'ambiente di sviluppo

Introduzione a Java e all'ambiente di sviluppo Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota: per esclusivo uso interno al corso, riferimenti bibliografici forniti a lezione Schema minimo di un applicazione public

Dettagli

Capitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2

Capitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2 Capitolo 13 Gestione delle eccezioni 1 Figura 1 La gerarchia delle classi di eccezioni 2 Figura 2 Eccezioni controllate e non controllate 3 File PurseTest.java import javax.swing.joptionpane; import java.io.ioexception;

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Richiamo di una Proprietà Se la proprietà è privata, è visibile solo dai metodi della classe, se pubblica invece anche dai metodi al di fuori

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

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

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

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

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

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

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

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

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

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

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA3 3B1 Record e tabelle 1 Prerequisiti Programmazione elementare in Java Vettore e matrici Concetto di record Concetto di tabella 2 1 Introduzione In questa Unità vediamo

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

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

! Riassunto. ! for. ! Cicli annidati. ! Esempi, esercizi, errori tipici. ! Programmazione strutturata. ! break e continue I1; I2; I3;

! Riassunto. ! for. ! Cicli annidati. ! Esempi, esercizi, errori tipici. ! Programmazione strutturata. ! break e continue I1; I2; I3; La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 6 Oggi Stefano Mizzaro

Dettagli

Oggi. La programmazione strutturata - III. Sequenza e selezione. Dove siamo. Iterazione: while e do/while. Raffinamenti successivi.

Oggi. La programmazione strutturata - III. Sequenza e selezione. Dove siamo. Iterazione: while e do/while. Raffinamenti successivi. La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 6 Oggi Stefano

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

Il linguaggio Java Istruzioni di Controllo

Il linguaggio Java Istruzioni di Controllo Il linguaggio Java Istruzioni di Controllo Istruzioni per il controllo di flusso Istruzioni di selezione if switch Istruzioni di iterazione while do-while for Istruzioni di salto break continue return

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

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

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

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

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/ Giugno 2017

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/ Giugno 2017 Cognome Matricola Nome Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/2017 12 Giugno 2017 Testo Il database del sistema di gestione delle prenotazioni dei voli

Dettagli

if else Fondamenti di Informatica (Modulo B) !""#$ % ( #if else ) " *+ #switch if (Condizione) Istruzione

if else Fondamenti di Informatica (Modulo B) !#$ % ( #if else )  *+ #switch if (Condizione) Istruzione #$ % '' # ( #if else ) *+ #switch 50 if else * if * # if (Condizione) Istruzione Condizione bool Istruzione ( Condizione true + Istruzione ( Condizione false + Istruzione +, -+.// x.//# if (x == 100) if

Dettagli

Esercizi di preparazione Prima Parte

Esercizi di preparazione Prima Parte Esercizi di preparazione Prima Parte DEFINIZIONE VARIABILI Quali delle seguenti dichiarazioni di variabili sono errate e perché a. int am,1h; b. boolean false; c. long x=7; d. shorte y,e-; i. : String

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Esercizi di preparazione Prima Parte

Esercizi di preparazione Prima Parte Esercizi di preparazione Prima Parte DEFINIZIONE VARIABILI Quali delle seguenti dichiarazioni di variabili sono errate e perché a. int am,1h; b. boolean false; c. long x=7; d. shorte y,e-; i. : String

Dettagli

Le command line di Java. Esercitazioni di Sistemi Operativi III Lezione n. 2

Le command line di Java. Esercitazioni di Sistemi Operativi III Lezione n. 2 Le command line di Java Esercitazioni di Sistemi Operativi III Lezione n. 2 Esempio 1 - Punti e Segmenti Punto 2 0..n Segmento PuntoColorato Le tre classi appartengono al package geometrie. I file sorgenti

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

Esercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java:

Esercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Esercitazione n 4 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Gestione di input/output da console e da file (package java.io) Utilizzo di

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

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

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

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

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

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr. Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XII, parte I ) Gestione dell input Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

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

Gestire le situazioni di errore

Gestire le situazioni di errore Gestire le situazioni di errore #include using namespace std; Classe VettoreDiInteri const int MAX = 10; class VettoreInteri { int v[max]; public: ; Gestire le situazioni di errore Ottenere

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

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

LETTURA DI DATI DA INPUT

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

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

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

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

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

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

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array 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 Corso di Laurea

Dettagli

LE ECCEZIONI. Dott. Riccardo Zese.

LE ECCEZIONI. Dott. Riccardo Zese. LE ECCEZIONI Dott. Riccardo Zese riccardo.zese@unife.it Che cosa sono le eccezioni In un programma si possono generare situazioni critiche che provocano errori. Non è però accettabile, soprattutto in applicazioni

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