Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
N.B:
sono sufficientemente prossimi. Per è diverso usare l’operatore == in quanto If (middleInitial==null)
poter verificare ciò si controlla se la loro esso va a confrontare direttamente l’oggetto {…}
differenza in modulo è minore o uguale fisico e quindi la sua posizione in memoria
di un valore fissato (1E-14). (non i contenuti al suo interno).
ε
x − y ≤ ε
| | • equalsIgnoreCase: confronta il contenuto
delle stringhe ignorando la presenza di
Scrittura: maiuscolo e minuscole.
final double EPSILON= 1E-14; • compareTo: confronta le stringhe e le ordina
If (Math.abs(x-y)<= EPSILON) s e c o n d o i l c r i t e r i o d i o rd i n a m e n t o
{ ….. } lessicografico (in ordine di importanza vi
sono spazi, numeri, lettere maiuscole, lettere
min ).
Scrittura:
If (String1.compareTo(String2)>0)
Stringa 1 viene dopo la 2
If (String1.compareTo(String2)<0)
Stringa 1 viene prima della 2
If (String1.compareTo(String2)==0)
Stringhe uguali
Alternative multiple TaxReturn.java
Per prendere decisioni articolate si
if.
possono combinare più enunciati public class TaxReturn
{
Scrittura: public static final int SINGLE = 1;
If (condizione1) public static final int MARRIED = 2;
{ if (condizione2) private static final double RATE1 = 0.10;
{argomento1a;} private static final double RATE2 = 0.25;
else
{argomento1b; } private static final double RATE1_SINGLE_LIMIT = 32000;
} private static final double RATE1_MARRIED_LIMIT = 64000;
else
{argoment2;} private double income;
private int status;
public TaxReturn(double anIncome, int aStatus)
{ income = anIncome;
status = aStatus; }
public double getTax()
{ double tax1 = 0;
double tax2 = 0;
if (status == SINGLE)
{ if (income <= RATE1_SINGLE_LIMIT)
{ tax1 = RATE1 * income; }
else
{ tax1 = RATE1 * RATE1_SINGLE_LIMIT;
tax2 = RATE2 * (income - RATE1_SINGLE_LIMIT);}
}
else
{ if (income <= RATE1_MARRIED_LIMIT)
{ tax1 = RATE1 * income;}
else
{ tax1 = RATE1 * RATE1_MARRIED_LIMIT;
tax2 = RATE2 * (income - RATE1_MARRIED_LIMIT);}
}
return tax1 + tax2;
}
}
Variabili booleane e Def. Operatori
Il tipo booleano ha due valori: true Con le variabili di tipo booleano ci troviamo
operatori e false. davanti a un particolare metodo chiamato Java ha tre operatori booleani:
METODO PREDICATO, cioè metodi il cui tipo AND (&&), restituisce il valore true
•
restituito è boolean. quando entrambe le condizioni
sono vere;
Es: public boolean isOverdrawn() OR (||), restituisce true se almeno
•
{ return balance<0; } una delle condizioni è vera;
NOT (!=), usato per invertire una
balance<0 è una condizione che può • condizione(calcola il valore true se
restituire solo true o false la condizione è falsa e viceversa).
Iterazioni (Capitolo 6 )
Ciclo WHILE Un ciclo è una parte di programma che viene ripetuto più volte finché una certa condizione è vera.
Il ciclo while in particolare ripete un certo blocco di codice finché la condizione è vera.
Scrittura: while (condizione)
{enunciati;}
N.B: se la condizione è falsa non vengono eseguite le istruzioni del ciclo ma si esce e si va all’istruzione
successiva.
Es: Calcolare in quanti anni il saldo di 10000 euro raddoppia con interessi annui del 5%
while (balance< 2*initialBalance)
Il <= non va bene poiché se ottenessi esattamente balance= 2*initialBalance eseguirei una volta in più il ciclo.
{ years ++;
double interest= balance *rate/100;
Interest è una variabile locale che scompare una volta concluso il ciclo. Se volessi usarla per tutto il programma dovrei
dichiararla fuori dal ciclo.
balance= balance +interest;
}
Ciclo DO WHILE Al contrari del ciclo while qui il corpo si presenta prima della condizione infatti esso viene seguito almeno una volta
finche la condizione è vera.
Scrittura: do
{enunciati;}
while (condizione) ;
Ciclo FOR Questo ciclo si usa quando una variabile varia da un valore iniziale a un valore finale con un incremento o
decremento costante.
// I cicli while e for sono cicli a
v e r i fi c a a n t i c i p a t a p e r c h é l a Scrittura: for (inizializzazione; condizione; aggiornamento)
condizione è verificata prima di {enunciati;}
entrare nel corpo del ciclo. Es: for(int i=inizio; i<= fine; i++)
{ …}
variabile
La i è visibile solo dentro il ciclo for e vine inizializzata solo una volta all’inizio di tale ciclo;
• condizione
La va controllata tutte le volte prima di eseguire il corpo del ciclo;
• L’incremento costante è un’istruzione di assegnamento che va eseguita alla fine del ciclo.
•
Es: Stampare il saldo dopo un certo numeri di anni.
for(int i=1; i<= numberOfYears; i++)
Il corpo del ciclo verra eseguito anche quando i= numberOfYears
{double interest= balance*rate/100;
balance= balance+ interest;
}
Algoritmi comuni
Somma Scanner in = new Scanner(system.in);
double total = 0; //totale corrente
//hasNextDouble while ( in.hasNextDouble() )
metodo predicato della classe {
Scanner che resta vero finché il double input = in.nextDouble(); //la variable input conterrà il valore double che verrà inserito dall’utente tramite tastiera
numero inserito è double total = total + input; //Assegno alla variabile total la somma tra il valore corrente di total e l'input corrente
}
Media double total = 0; // totale corrente
int count = 0; //variabile contatore che tiene conto del numero dei valori inseriti
while (in.hasNextDouble() )
{ double input = in.nextDouble();
total = total + input; count++; }
double average = 0; //variabile double per memorizzare la media
if (count > 0)
{ average = total / count; }
}
Contare quanti input soddisfano una int shortWords = 0; //variabile contatore
condizione (Matches) while ( in.hasNext() ) //metodo predicato che continua fino a quando trova un carattere
{ String input = in.next();
//codice che trova parole con al if (input.length() <= 3)
massimo tre lettere { shortWords++; } //incremento di shortWords
}
primo Matches
Trovare il e restituirlo boolean found = false; //variabile Booleana che quando diventa vera mi fa uscire dal ciclo
String str = “Hello”;
//codice che restituisce la prima int position = 0;
lettera minuscola che trova nella while ( !found && position < str.length() )
stringa analizzata { char ch = str.charAt(position);
if ( Character.isLowerCase(ch) ) //metodo predicato che dice se il carattere è minuscolo
{ found = true; } // così posso uscire dal ciclo appena trovo il match
else { position++; }
}
Massimo double largest = in.nextDouble(); //massimo corrente che inizialmente è il primo valore dato in input
while ( in.hasNextDouble() )
{ double input = in.nextDouble();
if (input > largest) // input diventa il nuovo massimo corrente
{largest = input; }
}
Minimo double smallest = in.nextDouble(); //minimo corrente che inizialmente è il primo valore dato in input
while ( in.hasNextDouble() )
{ double input = in.nextDouble();
if (input < smallest) // input diventa il nuovo minimo corrente
{smallest = input; }
}
numeri adiacenti
Testare se due sono int input = in.nextInt();
uguali while ( in.hasNextInt() )
{ int previous = input; //definisco una variabile previous che memorizza input appena letto
input = in.nextInt(); //la variabile input contiene il nuovo input
if (previous == input)
{ System.out.println("Duplicate input"); }
}
fino quando non
Eseguire programma boolean valid = false;
viene trovato un match while ( !valid )
{ System.out.print ("Please enter a positive value < 100:");
//inserire valore minore di 100 double input = in.nextDouble();
if ( input > 0 && input < 100 )
{ valid = true; }
else
{ System.out.println("Invalid input."); }
}
Ciclo e mezzo boolean done = false;
while ( !done )
{ String input = in.next();
if (input.equals("Q")) //Q è un valore sentinella che quando viene inserito fa terminare il programma
{ done = true; }
else
{... // Process data.}
}
Cicli innestati Triangle.java
Quando il corpo di un ciclo contiene un altro ciclo i
due cicli si dicono innestati. This class describes triangle objects that can be displayed
as shapes like this:
Es: []
for(int i = 1; i<=3; i++ ) [][]
{ for (int j = 1; j<=4; j++ ) [][][]
{ print “*”}
System.out.println(); public class Triangle
} { private int width; //numero di righe
Se la condizione del for esterno è vera allora eseguo public Triangle(int aWidth)
il suo corpo in cui è presente un altro ciclo for interno { width = aWidth; }
che deve essere eseguito. Dopo si va a capo e si
torna al for esterno ripetendo il tutto finché la //Metodo toString che restituisce ogg ti tipo stringa(il triangolo)
condizione è vera. public String toString()
{ String r = "";
for (int i = 1; i <= width; i++) // Ciclo sulle righe
{ for (int j = 1; j <= i; j++) // Ciclo su cosa stampare
in ogni riga
{ r = r + “[]"; }
r = r + "\n";
}
return r;
}
}
Numeri Random Die.java
Si può introdurre casualità in un programma
invocando un generatore di numeri casuali. Si può import java.util.Random;
definire un oggetto di classe Random sul quale si public class Die
possono invocare due metodi: { private Random generator;
nextInt(a); private int sides;
• nextDouble();
• public Die(int s)
Es: { sides = s;
Random generator = new Random(); generator = new Random(); }
int n = generator.nextInt(a); // 0 <= n < a public int cast()
double x = generator.nextDouble(); // 0 <= x < 1 { int n = generator.nextInt(sides); // 0 <= n < sides
return 1 + n; }
}
Array e Vettori (Capitolo 7)
Def: Gli array, in Java, sono il meccanismo fondamentale per realizzare raccolte di più valori.
una sequenza di valori del medesimo tipo,
Un array contiene, quindi, cioè omogenei.
Dichiarazione e utilizzo di Array
- Il numero di elementi costituisce la lunghezza dell’array;
—> new double[10]
- Il tipo di una “variabile array” è uguale al tipo degli elementi che saranno memorizzati nell’array,
seguito da una coppia di parentesi quadre, [ ]. Il tipo è double [ ], perché gli elementi sono di tipo
double. —>double[ ] values; // dichiarazione
- Quando si dichiara una variabile di tipo array, questa non è ancora inizializzata: bisogna
- Risolvere un problema di matematica
- Riassumere un testo
- Tradurre una frase
- E molto altro ancora...
Per termini, condizioni e privacy, visita la relativa pagina.