Iterazioni. L istruzione while. while (condition) istruzione

Documenti analoghi
Eccezioni Precisazioni e approfondimenti

Capitolo 6. Iterazioni

Istruzioni di ripetizione in Java 1

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

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

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

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

Metodi statici. Dichiarazione e chiamata di metodi statici

Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un

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

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

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

Laboratorio di Programmazione Ottobre. Simone Zaccaria

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

Input e Output in Java

/***************************** FILE: Quiz.java *****************************/ public class Quiz { private String text; private int score;

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

Programmazione Orientata agli Oggetti in Linguaggio Java

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Le basi del linguaggio Java

Corso sul linguaggio Java

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

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

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

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

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

Esempio: L EURO-CONVERTITORE (1) Scopo

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)

Programmazione ad Oggetti

Preparazione allo Scritto di Programmazione

Programmazione distribuita in Java. Socket & Client-Server

Istruzioni di Controllo. Emilio Di Giacomo e Walter Didimo

Corso sul linguaggio Java

Flussi, lettori e scrittori

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

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

Programmazione in Java

Impariamo a programmare in. Lezione 6

Introduzione Programmazione Java

RAPPRESENTARE CON UN COMPUTER FENOMENI CASUALI E UTILIZZARLI

Interfacce e polimorfismo

Input/Output. Lettura di una serie di numeri: Un programma che analizza una serie di valori. Inserimento dati e test

Programmazione Orientata agli Oggetti in Linguaggio Java

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

Gestione dei compiti

Esempi di Problemi Iterativi

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

Laboratorio di Programmazione 1 [Java]

Costrutti per il controllo del flusso di esecuzione

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint

Tipi di dati fondamentali

COGNOME NOME MATRICOLA DATA

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali

Input/Output. Redirecting, scomposizione dell input, uso di file. 26/11/2004 Laboratorio di Programmazione - Luca Tesei 1

Input/Output in Java

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

StringTokenizer: esempio. Lettura di matrici da file. Come procedere? Lettura matrice: esempio - I. La classe StringTokenizer

Costrutti iterativi. Utilizzo dei costrutti iterativi

Corso sul linguaggio Java

Esercitazione: Socket Java senza connessione

Esempi di Problemi Iterativi

Fondazione ITS A. Volta linguaggi Flavia Lollis 1

Algoritmi di Ricerca. Esempi di programmi Java

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Corso di Reti di Calcolatori L-A

Capitolo 12 Ricorsione. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

Collezione di oggetti: Array List

Creazione, eliminazione, lettura e scrittura di file di testo

Muoversi all interno di un Vector. Vector e Enumeration. Enumeration. Collezioni di oggetti: Vector. La classe Object. Aggiungere oggetti a un Vector

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Le Stringhe. Usare la classe java.lang.string

Algoritmi di Ricerca. Esempi di programmi Java

Corso sul linguaggio Java

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Gestione delle Eccezioni

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Il linguaggio Java Istruzioni di Controllo

Array mono- e bi-dimensionali Cicli while e do-while

Informatica I. Ingegneria Medica. Prof. Diego Salamon

Laboratorio di Programmazione 1 [Java]

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Preparazione allo Scritto di Programmazione

Esempio su strutture dati dinamiche: ArrayList

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Selezione ed Iterazione. Lezione 5

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

Parcheggio.rtf 1/8 6 gennaio Prova di programmazione: parcheggio a pagamento

INFORMATICA. Strutture iterative

Fondamenti di Programmazione Recupero Primo Parziale 30 Gennaio 2008 Traccia A

Unità B3 Strutture di controllo

ESERCIZIO 1 (FILE DI TESTO)

Transcript:

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 / 100; balance = balance + interest;

Diagramma di flusso per il ciclo while File Investment.java public class Investment public Investment(double abalance, double arate) balance = abalance; rate = arate; years = 0; public double getbalance() return balance; public int getyears() return years; //accumula interessi fino a che il target è raggiunto public void waitforbalance(double targetbalance) while (balance < targetbalance) years++; double interest = balance * rate / 100; balance = balance + interest; private double balance; private double rate; private int years;

Errori comuni: I loop infiniti 1. while (year < 20) balance = balance + balance * rate / 100; 2. while (year > 0) year++; L istruzione do/while Esegue il corpo del ciclo almeno una volta: do istruzione while (condition); Esempio: double value; do String input = console.readline(); value = Integer.parseInt(input); while (input <= 0);

Daigramma di flusso per do Loop L istruzione for for (initialization; condition; update) istruzione Esempio: for (int i = 1; i <= n; i++) double interest = balance * rate / 100; balance = balance + interest; Equivalente a Initializzazione; while (condizione) istruzione; update;

Diagramma di flusso ciclo for Esempio Aggiungiamo alla classe Investment il metodo waityears che accumula gli interessi corrispondenti ad un certo numero di anni public void waityears(int n) for (int i = 1; i <= n; i++) double interest = balance * rate / 100; balance = balance + interest; years = years + n;

Loop innestati Esempio: stampiamo il triangolo [] [][] n righe [][][] [][][][] for (int i = 1; i <= n; i++) // forma una riga del triangolo for (int j = 1; j <= i; j++) r = r + "[]"; r = r + "\n"; Es.: lettura ciclica input (test interno) import java.io.*; public class SommaInput public static void main(string[] args) throws IOException double somma=0; InputStreamReader reader = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(reader); boolean done = false; while (!done) String input = console.readline(); if (input.length() == 0) done = true; else double x = Double.parseDouble(input); somma+=x; System.out.println("la somma e`:"+ somma);

Es.: lettura ciclica input (test inizio) import java.io.*; public class SommaInput public static void main(string[] args) throws IOException double somma=0; String input; InputStreamReader reader = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(reader); while ((input = console.readline()).length()!= 0) double x = Double.parseDouble(input); somma+=x; System.out.println("la somma e`:"+ somma); I token La classe StringTokenizer può scomporre una stringa nei suoi elementi (token) I token sono separati da spaziature (spazi, tab, e caratteri per andare a capo) Esempio: "4.3 7-2" e` scomposta in tre token: "4.3", "7", "-2" StringTokenizer tokenizer = new StringTokenizer(input); Crea uno StringTokenizer per la stringa input E` possibile usare un separatore diverso indicandolo come secondo argomento del costruttore tokenizer.hasmoretokens() Restituisce true se ci sono altri token da estrarre e false altrimenti tokenizer.nexttoken() restituisce il prossimo token

Esempio uso StringTokenizer import java.util.stringtokenizer; import java.io.*; public class TokenTest public static void main(string[] args) throws IOException double somma=0; String input; InputStreamReader reader = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(reader); input= console.readline(); StringTokenizer tokenizer = new StringTokenizer(input); while (tokenizer.hasmoretokens()) String token = tokenizer.nexttoken(); double x = Double.parseDouble(token); somma+=x; System.out.println("la somma e`:"+ somma); Scandire i caratteri di una stringa s.charat(i) è l i-esimo carattere della stringa s for (int i = 0; i < s.length(); i++) char c = s.charat(i);

Esempio: un programma che conta le vocali s.indexof(ch) è l indice della posizione in cui c appare per la prima volta in s, o -1 se c non appare in s int NumVocali = 0; String vocali = "aeiou"; for (int i = 0; i < s.length(); i++) char c = s.charat(i); if (vocali.indexof(c) >= 0) NumVocali++; Problema Vogliamo costruire una classe Dado che modella un dado che quando viene lanciato cade a caso su uno dei suoi lati

Numeri casuali La classe Random modella un generatore di numeri casuali Random generatore = new Random(); crea un generatore di numeri casuali int n = generatore.nextint(a); retituisce un intero n con 0 <= n < a double x = generatore.nextdouble(); restitisce un double x con 0 <= x < 1 Esempio uso di Random import java.util.random; public class Dado //costruttore che costruisce un dado // con s facce public Dado(int s) facce = s; generatore = new Random(); public int lancia() return 1 + generator.nextint(facce); private Random generator; private int facce; // Questo programma simula 10 lanci del dado public class TestaDado public static void main(string[] args) Dado d = new Dado(6); final int LANCI = 10; for (int i = 1; i <= LANCI; i++) int n = d.lancia(); System.out.print(n + " "); System.out.println();