1 corso di informatica (programmazione) esercitazione 1 (26 novembre 2008)
TRANSCRIPT
![Page 1: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/1.jpg)
1
Corso di Informatica
(Programmazione)Esercitazione 1 (26 novembre 2008)
![Page 2: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/2.jpg)
2
Esercizi sugli arrayEsercizio 1
dato un array A di N interi calcolare la
somma degli elementi che sono multipli di 3
Esempio (N=10)
4 15 20 21 40 6 7 9 10 1
Risultato 15 + 21 + 6 + 9 = 51
A
![Page 3: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/3.jpg)
3
Esercizi sugli arrayAlgoritmo: dichiaro una variabile s che dovrà
contenere il risultato finale e che inizialmente ha
valore 0. Scorro gli elementi di A dal
primo in posizione 0 (cioè A[0]) all’ultimo in
posizione (N-1) (cioè A[N-1]). Aggiungo a s
l’elemento che sto considerando nella generica
posizione i (cioè A[i]) ogni volta che questo
è multiplo di 3.
![Page 4: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/4.jpg)
4
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
Esecuzione dell’algoritmo per l’array A di 10interi dell’esempio precedente:
- all’inizio ho s=0- step 1 i=0 (i è l’indice che scandisce gli elementi di A)
A[0] è multiplo di 3? NO! Quindi s rimane a 0
![Page 5: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/5.jpg)
5
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
- step 2 i=1
A[1] è multiplo di 3? SI’! Quindi sommo a s il valoredi A[1] che è 15 s=s+15=0+15=15
4 15 20 21 40 6 7 9 10 1A
- step 3 i=2
A[2] è multiplo di 3? NO! Quindi s rimane a 15
![Page 6: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/6.jpg)
6
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
- step 4 i=3
A[3] è multiplo di 3? SI’! Quindi sommo a s il valoredi A[3] che è 21 s=s+21=15+21=36
4 15 20 21 40 6 7 9 10 1A
- step 5 i=4
A[4] è multiplo di 3? NO! Quindi s rimane a 36
![Page 7: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/7.jpg)
7
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
- step 6 i=5
A[5] è multiplo di 3? SI’! Quindi sommo a s il valoredi A[5] che è 6 s=s+6=36+6=42
4 15 20 21 40 6 7 9 10 1A
- step 7 i=6
A[6] è multiplo di 3? NO! Quindi s rimane a 42
![Page 8: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/8.jpg)
8
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
- step 8 i=7
A[7] è multiplo di 3? SI’! Quindi sommo a s il valoredi A[7] che è 9 s=s+9=42+9=51
4 15 20 21 40 6 7 9 10 1A
- step 9 i=8
A[8] è multiplo di 3? NO! Quindi s rimane a 51
![Page 9: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/9.jpg)
9
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
- step 10 i=9
A[9] è multiplo di 3? NO! Quindi s rimane a 51
Risultato 51
![Page 10: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/10.jpg)
10
Esercizi sugli arraypublic class SommaMultipliTre {
public static void main(String arg[]) {int[] A={4,15,20,21,40,6,7,9,10,1};int i;int s, length;
length=10;i=0;s=0;while(i <= lentgth-1){
//Verifico se l’elemento i-esimo//è multiplo di 3if(A[i] % 3 == 0){
s=s+A[i];}i=i+1;
}
System.out.println(“Somma=“+s);}
}
![Page 11: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/11.jpg)
11
Esercizi sugli arrayEsercizio 2
dato un array A di N interi calcolare
contare il numero degli elementi pari
Esempio (N=10)
4 15 20 21 40 6 7 9 10 1
Risultato 5
A
![Page 12: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/12.jpg)
12
Esercizi sugli arrayAlgoritmo: dichiaro una variabile c che dovrà
contenere il risultato finale e che inizialmente ha
valore 0. Scorro gli elementi di A dal
primo in posizione 0 (cioè A[0]) all’ultimo in
Posizione (N-1) (cioè A[N-1]). Incremento c di 1
ogni volta che l’elemento, che sto considerando
nella generica posizione i (cioè A[i]), è pari.
![Page 13: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/13.jpg)
13
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
Esecuzione dell’algoritmo per l’array A di 10interi dell’esempio precedente:
- all’inizio ho c=0- step 1 i=0 (i è l’indice che scandisce gli elementi di A)
A[0] è pari? SI’! Quindi incremento c di 1, e c va a 1
![Page 14: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/14.jpg)
14
Esercizi sugli array
15 21 7 94 20 40 6 10 1A
- step 2 i=1
A[1] è pari? NO! Quindi c rimane a 1
15 21 7 94 20 40 6 10 1A
- step 3 i=2
A[2] è pari? SI’! Quindi incremento c di 1, e c va a 2
![Page 15: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/15.jpg)
15
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
- step 4 i=3
A[3] è pari? NO! Quindi c rimane a 2
15 21 7 94 20 40 6 10 1A
- step 5 i=4
A[4] è pari? SI’! Quindi incremento c di 1, e c va a 3
![Page 16: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/16.jpg)
16
Esercizi sugli array
15 21 7 94 20 40 6 10 1A
- step 6 i=5
A[5] è pari? SI’! Quindi incremento c di 1, e c va a 4
15 21 7 94 20 40 6 10 1A
- step 7 i=6
A[6] è pari? NO! Quindi c rimane a 4
![Page 17: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/17.jpg)
17
Esercizi sugli array
15 21 7 94 20 40 6 10 1A
- step 8 i=7
A[7] è pari? NO! Quindi c rimane a 4
15 21 7 94 20 40 6 10 1A
- step 9 i=8
A[8] è pari? SI’! Quindi incremento c di 1, e c va a 5
![Page 18: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/18.jpg)
18
Esercizi sugli array
4 15 20 21 40 6 7 9 10 1A
- step 10 i=9
A[9] è pari? NO! Quindi c rimane a 5
Risultato 5
Il programma per contare i dispari è analogo!
![Page 19: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/19.jpg)
19
Esercizi sugli arraypublic class ContaPari {
public static void main(String arg[]) {int[] A={4,15,20,21,40,6,7,9,10,1};int i;int c, length;
length=10;i=0;c=0;while(i <= lentgth-1){
//Verifico se l’elemento i-esimo//è pari (multiplo di 2)if(A[i] % 2 == 0){
c=c+1;}i=i+1;
}
System.out.println(“Numero pari=“+c);}
}
![Page 20: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/20.jpg)
20
Esercizi sugli arraypublic class ContaDispari {
public static void main(String arg[]) {int[] A={4,15,20,21,40,6,7,9,10,1};int i;int c, length;
length=10;i=0;c=0;while(i <= lentgth-1){
//Verifico se l’elemento i-esimo//è dispari (non è multiplo di 2)if(A[i] % 2 != 0){
c=c+1;}i=i+1;
}
System.out.println(“Numero dispari=“+c);}
}
![Page 21: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/21.jpg)
21
Esercizi sugli arrayEsercizio 3
dato un array A di N interi cercare
l’elemento minimo e la sua posizione in A
Esempio (N=10)
4 15 20 21 3 6 7 9 10 40
Risultato 3
A
![Page 22: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/22.jpg)
22
Esercizi sugli arrayAlgoritmo: dichiaro due variabili, min e posMin, che
dovranno contenere i risultati finali (rispettivamente
il valore minimo e la sua posizione) e che inizialmente
sono uguali rispettivamente al valore del primo elemento
di A (cioè A[0]) e al valore della sua posizione in A (cioè 0).
Scorro gli elementi di A dal secondo in posizione 1 (cioè A[1])
all’ultimo in posizione (N-1) (cioè A[N-1]). Ogni volta che
l’elemento che sto considerando nella generica posizione i
(cioè A[i]) è minore del valore di min, allora aggiorno min con
il valore di A[i] e posMin con il valore i.
![Page 23: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/23.jpg)
23
Esercizi sugli array
4 15 20 21 3 6 7 9 10 40A
Esecuzione dell’algoritmo per l’array A di 10interi dell’esempio precedente:
- all’inizio ho min=A[0]=4 e posMin=0- step 1 i=1 (i è l’indice che scandisce gli elementi di A)
A[1] è minore di min? NO! Quindi min rimane a 4e posMin a 0
![Page 24: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/24.jpg)
24
Esercizi sugli array
15 21 7 94 20 3 6 10 40A
- step 2 i=2
A[2] è minore di min? NO! Quindi min rimane a 4e posMin a 0
15 21 7 94 20 3 6 10 40A
- step 3 i=3
A[3] è minore di min? NO! Quindi min rimane a 4e posMin a 0
![Page 25: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/25.jpg)
25
Esercizi sugli array
15 21 7 94 20 3 6 10 40A
- step 4 i=4
A[4] è minore di min? SI’! Quindi min assume il valore 3e posMin il valore 4
15 21 7 94 20 3 6 10 40A
- step 5 i=5
A[5] è minore di min? NO! Quindi min rimane a 3e posMin a 4
![Page 26: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/26.jpg)
26
Esercizi sugli array
15 21 7 94 20 3 6 10 40A
- step 6 i=6
A[6] è minore di min? NO! Quindi min rimane a 3e posMin a 4
15 21 7 94 20 3 6 10 40A
- step 7 i=7
A[7] è minore di min? NO! Quindi min rimane a 3e posMin a 4
![Page 27: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/27.jpg)
27
Esercizi sugli array
15 21 7 94 20 3 6 10 40A
- step 8 i=8
A[8] è minore di min? NO! Quindi min rimane a 3e posMin a 4
15 21 7 94 20 3 6 10 40A
- step 9 i=9
A[9] è minore di min? NO! Quindi min rimane a 3e posMin a 4
![Page 28: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/28.jpg)
28
Esercizi sugli array
Risultato min è 3 e posMin è 4
Il programma per trovare il massimo è analogo!
![Page 29: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/29.jpg)
29
Esercizi sugli arraypublic class TrovaMinimo {
public static void main(String arg[]) {int[] A={4,15,20,21,3,6,7,9,10,4};int i;int min, posMin, length;
length=10;i=1;posMin=0;min=A[posMin];while(i <= lentgth-1){
//Verifico se l’elemento i-esimo//è minore del minimo correnteif(A[i] < min){
min=A[i];posMin=i;
}i=i+1;
}
System.out.println(“Minimo=“+min+” in posizione “+posMin);}
}
![Page 30: 1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)](https://reader036.vdocumenti.com/reader036/viewer/2022062404/5542eb50497959361e8c020a/html5/thumbnails/30.jpg)
30
Esercizi sugli arraypublic class TrovaMassimo {
public static void main(String arg[]) {int[] A={4,15,20,21,3,6,7,9,10,4};int i;int max, posMax, length;
length=10;i=1;posMax=0;max=A[posMax];while(i <= lentgth-1){
//Verifico se l’elemento i-esimo//è maggiore del massimo correnteif(A[i] > max){
max=A[i];posMax=i;
}i=i+1;
}
System.out.println(“Massimo=“+max+” in posizione “+posMax);}
}