L'obiettivo di questa esercitazione è familiarizzare con i seguenti concetti, illustrati nel capitolo 3 del libro:
switch/case.do/while e
for.Ove non altrimenti indicato, rispondete alle domande prima ragionando su carta e poi provando a editare, compilare ed eseguire. Gli esercizi etichettati con l'asterisco (*) sono più difficili: affrontateli dopo aver risolto gli altri.
Obiettivo: Familiarizzare con l'istruzione
switch/case.
Attività:
switch/case invece dell'if/else.if/else
usando lo switch/case? Perché?
if (x >= 0)
System.out.println("x e' positivo");
else
System.out.println("x e' negativo");
Nota: questo esempio dimostra che lo
switch/case non è più potente
dell'if/else.Obiettivo: Familiarizzare con il do/while.
Attività:
do/while, un programma che
visualizza i numeri da 1 a 10.while, un programma che legge da
tastiera un numero intero e visualizza tutti i numeri da 10 fino a
quel numero. Se il numero letto è inferiore a 10, non
visualizza nulla.do/while
invece del while. Attenzione: se il numero letto è
inferiore a 10, non deve visualizzare nulla.Obiettivo: Familiarizzare con il for.
Attività:
class Boh {
public static void main (String[] args) {
for (int i = 1; i < 10; i = i + 1);
System.out.println(i);
}
}
Perché? Suggerimento: leggete MOLTO
attentamente il codice...for, un programma che visualizza
i numeri da 1 a 10. Confrontare con gli analoghi programmi che usano
il while e il do/while, scritti in
precedenza.for, un programma che visualizza
tutti i multipli di 3 da 1 a 30.for, un programma che legge da
tastiera un numero intero e visualizza tutti i numeri da 10 fino a
quel numero. Se il numero letto è inferiore a 10, non
visualizza nulla.for, un programma che legge da
tastiera un numero intero e visualizza tutti i numeri multipli di tre
compresi fra quel numero e 100. Se il numero letto è superiore
a 100, non visualizza nulla.Obiettivo: Familiarizzare con lo sviluppo incrementale dei programmi.
Attività:
Obiettivo: Familiarizzare con i cicli annidati.
Attività:
class ChiLoSa {
public static void main(String[] args){
for (int i = 1; i <= 4; i = i + 1){
for (int j = 1; j <= 6; j = j + 1)
System.out.print("*");
System.out.println();
}
}
}
class ChiLoSa2 {
public static void main(String[] args){
for (int i = 1; i <= 4; i = i + 1){
for (int j = i; j <= 6; j = j + 1)
System.out.print("*");
System.out.println();
}
}
}
class ChiLoSa3 {
public static void main(String[] args){
for (int i = 1; i <= 4; i = i + 1){
for (int j = 1; j <= i; j = j + 1)
System.out.print("*");
System.out.println();
}
}
}
(x,somma) tali che somma
è la somma di tutti i valori da 1 a x (per
x che va da 1 a 10). C'è però un
errore. Per trovarlo, potrebbe esservi utile farvi visualizzare tutti
i valori assunti da somma (e questa è una tecnica
standard per capire perché un programma non funziona: farsi
visualizzare i valori intermedi assunti dalle variabili per verificare
che siano esattamente quello che si prevede).
somma = 0;
for (int x = 1; x <= 10; x = x + 1)
for (int y = 1; y <= x; y = y + 1)
somma = somma + y;
System.out.println(x +" " + somma);
Una volta capito l'errore, correggete il programma, e riverificatene
il funzionamento.