Fondamenti di Informatica T-1 Variabili, costanti e operazioni Selezione 2 Variabili • Dichiarazione di una variabile: <tipo di dato> <nome variabile>; • Esempio: variabile numerica intera numAuto: int numAuto; • Assegnare alla variabile numAuto il valore 32: numAuto=32; • È anche possibile dichiarare ed inizializzare una variabile in un unico comando: int numAuto = 32; • Stampa di una variabile in output: System.out.println("<messaggio>" + <nome variabile>); • Esempio: System.out.println("Numero dell'auto: " + numAuto); Fondamenti di Informatica T-1 Francesco Casimiro 3 Le costanti • Dichiarazione (e assegnamento) di una costante static final <tipo costante> <nome costante> = <valore costante> • final Il valore non è modificabile • static Associata alla classe, non è necessario instanziare un oggetto Fondamenti di Informatica T-1 Francesco Casimiro 4 Esempio: Area del cerchio • Creare un programma che, dato in input un intero rappresentante il raggio, calcoli l'area del cerchio. • Area del cerchio = PI * raggio * raggio; Fondamenti di Informatica T-1 Francesco Casimiro 5 Soluzione package esempio; import java.util.Scanner; public class Cerchio { //Definizione della costante PI public static final double PI = 3.1415; public static void main(String[] args) { Scanner tastiera = new Scanner(System.in); //Lettura del valore del raggio System.out.print("Inserire il valore del raggio del cerchio:"); int raggio = tastiera.nextInt(); double area = PI * raggio * raggio; System.out.println("Area = " + area); } } Fondamenti di Informatica T-1 Francesco Casimiro 6 Consigli sullo "stile" • Poche istruzioni per riga (meglio una sola) • I nomi delle variabili devono essere significativi: area, raggio, somma, differenza... • Senza esagerare! variabileUtilizzataPerStampareIlValoreAVideo • Iniziale minuscola, lettera (no numeri) • "Camel case" scrivere parole composte o frasi unendo tutte le parole tra loro, ma lasciando le loro iniziali maiuscole: modelloAuto, numeroTarga Fondamenti di Informatica T-1 Francesco Casimiro 7 Indentazione Utilizzare il rientro per aumentare la leggibilità del codice: ogni riga viene "indentata" di un certo numero di spazi che dipende dalla sua posizione all'interno della struttura logica del programma. public class Cerchio { //Definizione della costante PI public static final double PI = 3.1415; public static void main(String[] args) { Scanner tastiera = new Scanner(System.in); //Lettura del valore del raggio System.out.print("Inserire il valore del raggio del cerchio:"); int raggio = tastiera.nextInt(); double area = PI * raggio * raggio; System.out.println("Area = " + area); } } Fondamenti di Informatica T-1 Francesco Casimiro 8 Commenti Utilizzare i commenti per aggiungere informazioni esplicative: public class Cerchio { /* Definizione della costante PI */ public static final double PI = 3.1415; public static void main(String[] args) { Scanner tastiera = new Scanner(System.in); //Lettura del valore del raggio System.out.print("Inserire il valore del raggio del cerchio:"); int raggio = tastiera.nextInt(); double area = PI * raggio * raggio; System.out.println("Area = " + area); } } Fondamenti di Informatica T-1 Francesco Casimiro 9 La classe Math • Contiene costanti e metodi per funzioni matematiche di basi (elevamento a potenza, radice quadrata, logaritmo...) • Esempi: ▫ double pi = Math.PI; ▫ double quadrato = Math.pow(x, 2); ▫ double radice = Math.sqrt(x); • L'area del cerchio: ▫ double area = Math.PI * Math.pow(raggio,2); Fondamenti di Informatica T-1 Francesco Casimiro 10 Esercizio 1: Investimenti • Si scriva un programma che calcoli l'interesse di un investimento secondo la formula: 𝑟 𝑛 𝐹 =𝐼∗ 1+ 100 • I è l'esborso iniziale (valore reale), F il flusso di cassa futuro (valore reale), r il costo opportunità del capitale (valore reale), e n l'anno cui si applica l'interesse (valore intero). • Supponiamo che il capitale iniziale sia di 1000.0 €, con un tasso del 3%, calcolato sul terzo anno. Il risultato del calcolo deve essere 1092.73 €. Fondamenti di Informatica T-1 Francesco Casimiro 11 Selezione • Permette di differenziare il flusso di controllo a seconda che sia verificata o meno una condizione: Fondamenti di Informatica T-1 Francesco Casimiro 12 Selezione • In java: istruzione if-else ▫ if(<condizione>){ <istruzioni da eseguire se la condizione è vera>; } else{ <istruzioni da eseguire se la condizione non è verificata>; } Fondamenti di Informatica T-1 Francesco Casimiro 13 Espressioni booleane • <condizione> è un'espressione booleana, cioè può avere valore "vero" (true) o "falso" (false): ▫ Variabili booleane: boolean tardi=false; if(tardi==true){ System.out.println("Esci!"); } ▫ Espressioni booleane semplici: int ora; if(ora ==18) { ... } Attenzione: l'operatore = è un operatore di assegnamento. Per verificare l'uguaglianza di un valore si usa l'operatore == ▫ Operatori di confronto: == (uguaglianza), >= (maggiore o uguale), <= (minore o uguale), < (minore), > (maggiore), != (diverso) ▫ Espressioni booleane composte, mediante congiunzione (&&) o disgiunzione (||): if(ora>=18 && giorno.equals("Giovedì")) {...} Fondamenti di Informatica T-1 Francesco Casimiro 14 Esercizio 2: Equazioni di 2° grado • Scrivere un programma che permetta di risolvere equazioni di secondo grado nella forma: ax^2 + bx + c = 0. • Il programma deve chiedere all'utente i valori dei coefficienti a, b e c (interi), calcolare il determinante dell'equazione secondo la formula e verificare il valore del determinante: se minore di 0, il programma informa l'utente che l'equazione non ha soluzioni; se uguale a 0, il programma calcola l'unica soluzione e la stampa a video; se maggiore di 0, il programma calcola le due soluzioni secondo le formule e stampa a video i risultati. Fondamenti di Informatica T-1 Francesco Casimiro 15 Esercizio 2: schema di soluzione Fondamenti di Informatica T-1 Francesco Casimiro