fondamenti di informatica t-1...esercizio 3(1) si vuole realizzare un programma che, inseriti i voti...

22
Fondamenti di Informatica T-1 Iterazione Tutor: Angelo Feraudo [email protected] a.a. 2018/2019 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 22

Upload: others

Post on 25-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

Fondamenti di Informatica T-1Iterazione

Tutor:Angelo Feraudo

[email protected]

a.a. 2018/2019

Fondamenti di Informatica T-1 Angelo Feraudo 1 / 22

Page 2: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ITERAZIONE

• Iterazione: Strumento che consente la ripetizione di unadeterminata sequenza di azioni fino a quando una condizionerisulta essere falsa.

In Java abbiamo:

I ciclo FOR

I ciclo WHILE

I ciclo DO..WHILE

Fondamenti di Informatica T-1 Angelo Feraudo 2 / 22

Page 3: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

Cicli WHILE e DO..WHILE

Fondamenti di Informatica T-1 Angelo Feraudo 3 / 22

Page 4: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

Differenze WHILE e DO..WHILE

• Il ciclo do..while e simile al ciclo while con la differenza che,nel do..while, il corpo del ciclo viene eseguito almeno unavolta

• In altre parole, se la condizione e inizialmente falsa, ilcorpo di un ciclo while non viene mai eseguito, mentre quellodel ciclo do..while viene comunque eseguito una prima volta

Fondamenti di Informatica T-1 Angelo Feraudo 4 / 22

Page 5: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

WHILE e DO..WHILE (Esempio pratico) (1)

Fondamenti di Informatica T-1 Angelo Feraudo 5 / 22

Page 6: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

WHILE e DO..WHILE (Esempio pratico) (2)

Scrivere un programma che chieda all’utente di scegliereun’operazione e inserire i due operandi.Una volta acquisiti questi dati, il programma deve calcolare emostrare a video il risultato.Le operazioni possibili sono addizione, sottrazione, moltiplicazionee divisione.

• Attenzione al maiuscolo!

• Attenzione al divisore (!=0)

• Gli operandi devono essere numeri reali

N.B.Se l’utente inserisce un’operazione errata, il programma dovrachiedere nuovamente di inserire l’operazione. Questo dovraessere ripetuto finche l’operazione inserita non e valida.

Fondamenti di Informatica T-1 Angelo Feraudo 6 / 22

Page 7: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

WHILE e DO..WHILE (Esempio pratico) (3)

Fondamenti di Informatica T-1 Angelo Feraudo 7 / 22

Page 8: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

WHILE e DO..WHILE (Esempio pratico) (4)

Fondamenti di Informatica T-1 Angelo Feraudo 8 / 22

Page 9: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

Ciclo FOR(1)

Cicli controllati da un contatore:for(int i = 0; i < n; i ++)

Equivale aint i = 0;

while(i < n) {...

i ++;

}N.B. E possibile definire l’indice direttamente dentro il for

Fondamenti di Informatica T-1 Angelo Feraudo 9 / 22

Page 10: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

Ciclo FOR(2)

Fondamenti di Informatica T-1 Angelo Feraudo 10 / 22

Page 11: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

FOR (Esempio pratico)

Fondamenti di Informatica T-1 Angelo Feraudo 11 / 22

Page 12: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 1(1)

Scrivere un programma TuttiPositiviPari che chieda all’utente diinserire una sequenza di interi (chiedendo prima quanti numerivoglia inserire) e poi, al termine dell’inserimento dell’interasequenza, stampi ”Tutti positivi e pari” se i numeri inseriti sonotutti positivi e pari, altrimenti stampi ”NO”.

• usare una variabile booleana per la verificare cosa stamparein output

• usare prima il ciclo WHILE e dopo il ciclo FOR

Fondamenti di Informatica T-1 Angelo Feraudo 12 / 22

Page 13: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 1(1)

Scrivere un programma TuttiPositiviPari che chieda all’utente diinserire una sequenza di interi (chiedendo prima quanti numerivoglia inserire) e poi, al termine dell’inserimento dell’interasequenza, stampi ”Tutti positivi e pari” se i numeri inseriti sonotutti positivi e pari, altrimenti stampi ”NO”.

• usare una variabile booleana per la verificare cosa stamparein output

• usare prima il ciclo WHILE e dopo il ciclo FOR

Fondamenti di Informatica T-1 Angelo Feraudo 13 / 22

Page 14: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 1(2)

Esempio di output

Fondamenti di Informatica T-1 Angelo Feraudo 14 / 22

Page 15: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 2(1)

• Scrivere un programma Ripetizioni che chieda all’utente diinserire una sequenza di caratteri (chiedendo prima quanticaratteri vuole inserire) e li ristampi man mano che vengonoinseriti.

• L’intero procedimento (chiedere quanti caratteri vuole inserire,leggere i caratteri e man mano stamparli) dovra essereripetuto per un totale di 3 volte.

• Alla fine delle 3 ripetizioni dell’intero procedimento stamparea video ”Fine”.

• Suggerimento: usare cicli for innestati.

Fondamenti di Informatica T-1 Angelo Feraudo 15 / 22

Page 16: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 2(2)

Esempio di output

Fondamenti di Informatica T-1 Angelo Feraudo 16 / 22

Page 17: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 3(1)

• Si vuole realizzare un programma che, inseriti i voti degliesami (in un numero non noto a priori) ed il numero di crediticorrispondenti, stampi a video la media ponderata

Media ponderata =∑

voto∗numeroCrediti∑numeroCrediti

• L’inserimento deve terminare se viene mandato in input ilvalore ”-1”

• Terminato questo processo, bisogna chiedere all’utente sevuole sapere o meno il possibile voto di partenza di laurea

• In caso di risposta affermativa all’utente viene chiesto ilnumero di anni fuori corso

Fondamenti di Informatica T-1 Angelo Feraudo 17 / 22

Page 18: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 3 (2)

• Il voto di partenza e calcolato con la formula:

mediaPonderata∗11030 ∗ α

• Il fattore moltiplicativo α e definito come segue:I In corso : 1.0325I Un anno fuori corso : 1.015I Due o piu anni fuori corso : 1

• Si ricorda di apportare tutti gli opportuni controlli suiparametri in ingresso. In particolare, ricordarsi che il voto diun esame deve essere compreso fra 18 e 30, mentre il numerodi crediti fra 3 e 8

• Si utilizzi il DO..WHILE

Fondamenti di Informatica T-1 Angelo Feraudo 18 / 22

Page 19: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 3 (3)

Esempio di output

Fondamenti di Informatica T-1 Angelo Feraudo 19 / 22

Page 20: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 4(1)

Scrivere il seguente programma:

• Simulare un gioco in cui il computer scelga casualmente duenumeri da 1 a 11 (Math) e li sommi.

• Il giocatore poi puo decidere (per un massimo di 7 volte) seestrarre un nuovo numero o fermarsi a quel risultato (sommadei numeri estratti fino a quel momento).

• Ovviamente al giocatore non saranno mai mostrati i numeriestratti. Dovra affidarsi alla sorte.

• Sara necessario chiedere in ogni momento all’utente se vuolefermarsi o proseguire.

• Se alla fine la somma dei numeri usciti e compresa tra 18 e22, il giocatore avra vinto.

• Se il numero e < di 18 o > di 22, il giocatore avra perso.

• Stampare a video il risultato ottenuto dal giocatore.

Fondamenti di Informatica T-1 Angelo Feraudo 20 / 22

Page 21: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 4 (2)

Esempio di output

Fondamenti di Informatica T-1 Angelo Feraudo 21 / 22

Page 22: Fondamenti di Informatica T-1...ESERCIZIO 3(1) Si vuole realizzare un programma che, inseriti i voti degli esami (in un numero non noto a priori) ed il numero di crediti corrispondenti,

ESERCIZIO 4: Cos’e la classe Math

Brevemente: La classe Math contiene metodi utili per effettuareoperazioni numeriche basilari (radice quadrata, potenze ecc)

Nel nostro caso, per generare il numero casuale occorre usare ilmetodo random() della classe Math

int r1 = (int) (Math.random()*11)+1

Attenzione: il metodo random() ritorna un valore di tipo doublee quindi necessario fare un cast

Fondamenti di Informatica T-1 Angelo Feraudo 22 / 22