Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Parte 4 Elementi di Informatica di base
Dott.ssa Elisa Tiezzi Elementi di informatica di base
2
Elementi di informatica di base
Controllo del flusso Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite Salvo contrordini, è in sequenza Due possibili alterazioni: selezione: sceglie un’azione da una lista di due o più azioni possibili ripetizione: continua ad eseguire un’azione fino a quando non si verifica una condizione di termine Elementi di informatica di base
3
Elementi di informatica di base
Strutture Java Selezione if if-else switch Ripetizione while do-while for Sequenza di default Elementi di informatica di base
4
Elementi di informatica di base
Valori Booleani boolean: tipo di dato primitivo in Java che può assumere valore true oppure false Variabili (o espressioni) il cui valore è di tipo boolean sono chiamate variabili (o espressioni) Booleane Il valore di una variabile (o espressione) Booleana è true oppure false Elementi di informatica di base
5
Elementi di informatica di base
Espressioni Booleane Esprimono una condizione che risulta essere vera o falsa Esempio (A e B sono due dati non necessariamente dello stesso tipo): A è maggiore di B? A è uguale a B? A è minore di oppure uguale a B? Elementi di informatica di base
6
Operatori di confronto
Elementi di informatica di base
7
Confronto tra caratteri e stringhe
Si può confrontare caratteri: sono infatti basati su Unicode che definisce un ordinamento per tutti i possibili caratteri che possono essere usati. Dato che in Unicode, per esempio, il carattere ‘a’ viene prima di ‘b’, si può dire che ‘a’ è minore di ‘b’. Non si possono usare operatori di confronto e di uguaglianza tra stringhe. Elementi di informatica di base
8
Confronto tra valori in virgola mobile
Raramente si usa l’operatore di uguaglianza tra due valori in virgola mobile. Per testare l’uguaglianza di due valori in virgola mobile si può calcolare il valore assoluto della loro differenza e confrontare il valore così ottenuto con un valore di tolleranza, ad esempio 0,00001. Elementi di informatica di base
9
Elementi di informatica di base
Operatori logici AND: && congiunge due espressioni valore di ritorno true se e solo se entrambi le espressioni sono vere OR: || disgiunge due espressioni valore di ritorno false se e solo se entrambi le espressioni sono false Valutazione della seconda espressione condizionata per avere valutazione completa, usare & e | Elementi di informatica di base
10
Altri operatori logici
NOT: ! nega un’espressione valore di ritorno true se e solo se l’espressione è falsa XOR: ^ disgiunge due espressioni in modo esclusivo valore di ritorno true se e solo se le due espressioni hanno diversi valori di ritorno esprimibile mediante AND, OR e NOT Elementi di informatica di base
11
Precedenze e associatività
Unario ! Unario postfisso ++ -- assegnazione = += -= *= /= %= &= |= ^= OR || AND && | XOR ^ & Uguaglianza = = != Relazionale < <= > >= Additivo + - Moltiplicativo * / % Conversione (type) Operatori Associatività Tipo Elementi di informatica di base
12
Elementi di informatica di base
Esempio score < min/2 – 10 || score > 90 score < (min/2) – 10 || score > 90 score < ((min/2) – 10) || score > 90 (score < ((min/2) – 10)) || (score > 90) ((score < ((min/2) – 10)) || (score > 90)) Elementi di informatica di base
13
Elementi di informatica di base
Blocchi di istruzioni Insiemi di istruzioni racchiuse tra parentesi graffe corrispondono ad un’azione parentesi non necessarie se include una sola istruzione Esempio: { //inizio del blocco calorieLess = 500; calorieAllotment = calorieAllotment-calorieLess; } //fine del blocco Elementi di informatica di base
14
Elementi di informatica di base
Istruzione if Selezione semplice: esegue un’azione se solo se una certa condizione è verificata Sintassi: if (Espressione_Booleana) Blocco_1 //esegui solo se vera Prossima_Istruzione; //sempre eseguita Espressione_Booleana true Blocco_1 false Prossima_Istruzione Elementi di informatica di base
15
Elementi di informatica di base
Esempio Se il peso è superiore a quello ideale allora diminuisci il numero totale di calorie che si possono assumere di 500. Successivamente, imposta il numero di calorie da assumere per colazione ad un terzo del numero totale di calorie if(weight > ideal) calorieAllotment = calorieAllotment-500; calorieBreakfast = calorieAllotment/3; Elementi di informatica di base
16
Elementi di informatica di base
Istruzione if-else Selezione doppia: esegue un’azione oppure un’altra in base al valore di una condizione Sintassi: if (Espressione_Booleana) Blocco_1 //esegui solo se vera else Blocco_2 //esegui solo se falsa Prossima_Istruzione; //sempre eseguita Elementi di informatica di base
17
Elementi di informatica di base
Diagramma di flusso Espressione_Booleana true Blocco_1 false Blocco_2 Prossima_Istruzione Elementi di informatica di base
18
Elementi di informatica di base
Esempi Esempio con una singola istruzione: if(balance >=0) balance=balance+(INTEREST_RATE*balance)/12; else balance=balance-OVERDRAWN_PENALTY; Esempio con un’istruzione composta: { interest=(INTEREST_RATE*balance)/12; balance=balance+interest; } interst=OVERDRAWN_PENALTY; balance=balance-interest; Elementi di informatica di base
19
Istruzioni if-else annidate
Annidamento di istruzioni if-else: tratta situazioni con più di due possibilità Attenzione : ogni else si riferisce all’if più vicino Sintassi: if (Espressione_Booleana_1) Blocco_1 else if (Espressione_Booleana_2) Blocco_2 . else if (Espressione_Booleana_ n) Blocco_n else Blocco_Default Elementi di informatica di base
20
Elementi di informatica di base
Esempio if (score >= 90) grade = ‘A’; else if (score >= 80) grade = ‘B’; else if (score >= 70) grade = ‘C’; else if (score >= 60) grade = ‘D’; else grade = ‘E’; Elementi di informatica di base
21
Elementi di informatica di base
Istruzione switch Selezione multipla Sintassi: switch(Espressione_Di_Controllo) { case Etichetta_Caso_1: Sequenza_Istruzioni_1 break; case Etichetta_Caso_2: Sequenza_Istruzioni_2 ... default: Sequenza_Istruzioni_Default } Elementi di informatica di base
22
Elementi di informatica di base
Espressione_Di_Controllo deve essere char, int, short o byte Espressione_Di_Controllo e le varie Etichette_Caso_* devono essere dello stesso tipo L’istruzione break, che può essere omessa, fa, passare il controllo alla prima istruzione dopo l’istruzione switch se break non è inclusa, allora l’esecuzione procede con le istruzioni del caso successivo Elementi di informatica di base
23
Elementi di informatica di base
Diagramma di flusso Espressione_Di_Controllo = Etichetta_Caso_1 true Sequenza_Istruzioni_1 break? Espressione_Di_Controllo = Etichetta_Caso_2 false true Sequenza_Istruzioni_2 false true break? false ... true false ... default? true Sequenza_Istruzioni_Default false Elementi di informatica di base
24
Elementi di informatica di base
Esempio switch (seatLocationCode) { case 1: type=‘O’; price = 40.00; break; case 2: type=‘M’; price = 30.00; case 3: case 4: type=‘B’; price = 15.00; default: type=‘U’; } Elementi di informatica di base
25
L’operatore condizionale
È l’unico operatore ternario di Java Sintassi: (Espressione Booleana)? Espressione_1:Espressione_2; Il valore di ritorno è quello di Espressione_1 se Espressione Booleana è vera, altrimenti è quello di Espressione_2 Elementi di informatica di base
26
Elementi di informatica di base
Esempio max = (n1>n2)?n1:n2; Equivale a: if (n1>n2) max = n1; else max = n2; Elementi di informatica di base
27
Elementi di informatica di base
Ripetizione: i cicli Struttura: corpo del ciclo condizione di terminazione del ciclo Organizzazione logica cicli controllati da condizioni cicli controllati da contatori Istruzioni Java per realizzare cicli while do-while for Elementi di informatica di base
28
Elementi di informatica di base
Ciclo while Sintassi: while (Espressione_Booleana) Blocco //corpo del ciclo Prossima_Istruzione Espressione_Booleana rappresenta la condizione di ripetizione del ciclo si esce dal ciclo, quando è falsa Blocco rappresenta il corpo del ciclo Istruzioni di inizializzazione precedono generalmente il ciclo Elementi di informatica di base
29
Elementi di informatica di base
Diagramma di flusso Espressione_Booleana true Blocco false Prossima_Istruzione Elementi di informatica di base
30
Elementi di informatica di base
Esempio Ciclo che calcola la somma dei primi 10 numeri interi int total = 0; int count = 1; while (count <= 10) { total = total + count; count++; } Elementi di informatica di base
31
Minimo numero di iterazioni
Il numero minimo di iterazioni di un ciclo while è 0 dato che la condizione di ingresso può essere immediatamente falsa Esempio: int next; int total = 0; next = (int)(Math.random()*100)-50; while (next >= 0) { total = total + next; } Elementi di informatica di base
32
Elementi di informatica di base
Ciclo do-while Sintassi: do Blocco //corpo del ciclo while (Espressione_Booleana); Prossima_Istruzione Il corpo del ciclo è eseguito almeno una volta dato che la condizione di ripetizione è posta dopo il corpo stesso Elementi di informatica di base
33
Elementi di informatica di base
Diagramma di flusso Blocco true Espressione_Booleana false Prossima_Istruzione Elementi di informatica di base
34
Elementi di informatica di base
Esempio int next; int total = 0; do { next = (int)(Math.random()*100)-50; total = total + next; } while (next >= 0); Elementi di informatica di base
35
Elementi di informatica di base
Cicli infiniti Cause principali: errata espressione Booleana errata (o assente) alterazione delle variabili coinvolte nell’espressione Booleana Esempio: int total = 0; int count = 1; while (count != 10) { total = total + count; count += 2; } Elementi di informatica di base
36
Elementi di informatica di base
Ciclo for Struttura: azione di inizializzazione condizione di ripetizione corpo del ciclo azione di continuazione Sintassi: for (Inizializzazione; Espressione_Booleana; Continuazione) Blocco Prossima_Istruzione Elementi di informatica di base
37
Elementi di informatica di base
Diagramma di flusso Inizializzazione Espressione_Booleana Continuazione Blocco true false Prossima_Istruzione Elementi di informatica di base
38
Elementi di informatica di base
Esempio Sommare separatamente i numeri pari e quelli dispari compresi tra 1 e 100 int sumEven = 0, sumOdd = 0; for (int count = 1; count <= 99; count+=2) { sumOdd = sumOdd + count; sumEven = sumEven + count + 1; } Elementi di informatica di base
39
Considerazioni pratiche
Errori comuni: cicli infiniti (non intenzionali) cicli con contatore che non eseguono il numero di iterazioni desiderato (scarto di uno). Testare soprattutto la condizione di ripetizione di un ciclo per evitare possibili errori Mantenere traccia dei valori delle variabili (facendo uso di stampe su video) Elementi di informatica di base
40
Elementi di informatica di base
Questioni di stile Blocchi: { Sequenza_Istruzioni } inserire le parentesi graffe anche se il blocco è costituito da una sola istruzione indentare tutte le istruzioni incluse nella sequenza Elementi di informatica di base
41
Elementi di informatica di base
Istruzione if: if (Espressione_Booleana) Blocco Istruzione if-else: if (Espressione_Booleana) Blocco else Blocco Elementi di informatica di base
42
Elementi di informatica di base
Istruzione switch: switch (Espressione_Di_Controllo) { case Etichetta_1: Sequenza_Istruzioni_1 case Etichetta_2: Sequenza_Istruzioni_ case Etichetta_n: Sequenza_Istruzioni_n default: Sequenza_Istruzioni_Default } Elementi di informatica di base
43
Elementi di informatica di base
Istruzione while: while (Espressione_Booleana) Blocco Istruzione do-while: do Blocco while (Espressione_Booleana); Istruzione for: for (Inizializzazione ; EB; Continuazione) Blocco Elementi di informatica di base
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.