Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 18 PROGRAMMI e LINGUAGGI • Algoritmo → sequenza finita di passi per risolvere in un tempo finito un problema • Linguaggio di programmazione → notazione formale che può essere usata per descrivere algoritmi. Due aspetti del linguaggio: I I SINTASSI: regole formali per costruire frasi corrette nel linguaggio SEMANTICA: insieme dei significati da attribuire alle frasi (sintatticamente corrette) costruite nel linguaggio • Programma → testo scritto in accordo alla sintassi e alla semantica del linguaggio di programmazione Fondamenti di Informatica T-1 Allegra De Filippo 2 / 18 JAVA • Linguaggio ad alto livello simile ad un linguaggio naturale I Viene compilato in bytecode, un linguaggio intermedio indipendente dalla macchina → PORTABILITÀ I Quando viene lanciato un programma, è la JVM ad ”interpretarlo” (da bytecode a linguaggio macchina) a seconda dell’hardware sottostante Fondamenti di Informatica T-1 Allegra De Filippo 3 / 18 TIPI di DATO PRIMITIVI in JAVA • Sono i tipi di dato messi a disposizione automaticamente dal linguaggio • Per creare tipi di dato più ”particolari” → Classi ed Oggetti (li vedremo più avanti) Fondamenti di Informatica T-1 Allegra De Filippo 4 / 18 VARIABILI • Astrazione di una cella di memoria → consentono di memorizzare dati • Sono caratterizzate da: I I I Tipo (int, float, char...) Valore Nome (convenzione → lettera minuscola) • Ad ogni variabile è assegnata un’area di memoria di dimensione dipendente dal tipo • Dichiarazione: <tipo><nome>; • Assegnamento: <nome> = <valore>; Esempio: int numero; //dichiarazione numero = 4; //assegnamento Fondamenti di Informatica T-1 Allegra De Filippo 5 / 18 OPERATORI ARITMETICI • Somma → a+b; • Sottrazione → a-b; • Moltiplicazione → a∗b; • Divisione → a/b; • Resto → a%b; • Incremento/decremento: • a = a+n; → a+=n; → (se n=1) a++; incremento postfisso • a = a-n; → a-=n; → (se n=1) a−−; decremento postfisso Fondamenti di Informatica T-1 Allegra De Filippo 6 / 18 OPERATORI LOGICI e COMPARATIVI • Uguale → ==; (ATTENZIONE: è molto diverso dal ”=” dell’assegnamento) • Diverso → !=; • Maggiore → >; • Maggiore Uguale → >=; • Minore → <; • Minore Uguale → <=; • NOT logico → !; • AND logico → &&; • OR logico → ||; Fondamenti di Informatica T-1 Allegra De Filippo 7 / 18 LA CLASSE MATH La classe Math è una particolare classe che contiene numerosi metodi statici (capiremo in seguito cosa sono esattamente) e costanti utili per i calcoli matematici. Per una descrizione completa delle funzionalità, visitare la pagina: https://docs.oracle.com/javase/8/docs/api/java/lang/ Math.html. Alcune esempi di funzioni utili: • int valore assoluto = Math.abs(x); → Ritorna il valore assoluto di x • double quadrato = Math.pow(x,2); → Ritorna il quadrato di x • double radice = Math.sqrt(x); → Ritorna la radice quadrata di x Fondamenti di Informatica T-1 Allegra De Filippo 8 / 18 INPUT da TASTIERA: la CLASSE SCANNER Per leggere dati da tastiera si utilizza la classe Scanner che si trova nel package java.util • Per poterla utilizzare bisogna importarla con l’istruzione import java.util.Scanner nelle prime righe del programma • Per creare un’istanza: Scanner tastiera = new Scanner(System.in); • Lettura di un numero intero: int i = tastiera.nextInt(); • Lettura di un numero reale: double d = tastiera.nextDouble(); • Chiusura tastiera (ricordarsi di farlo quando non serve più): tastiera.close(); Fondamenti di Informatica T-1 Allegra De Filippo 9 / 18 OUTPUT Viene utilizzato l’oggetto System.out • metodo System.out.print(”Hello World!”); → stampa la stringa contenuta fra gli apici • metodo System.out.println(”Hello World!”); → stampa la stringa contenuta fra gli apici e va a capo È possibile concatenare più elementi da stampare a video utilizzando l’operatore ”+” Esempio: int var = 4; System.out.println(”La mia variabile vale ” + var + ”!”); Quello che verrà visualizzato sullo schermo sarà: La mia variabile vale 4! Fondamenti di Informatica T-1 Allegra De Filippo 10 / 18 CREAZIONE DEL PROGETTO Create un progetto che chiamerete Esercitazione2 e, al suo interno, create un package diverso per ogni esercizio. In ogni package create una classe che conterrà il codice del vostro esercizio. La struttura del vostro progetto dovrà essere cosı̀: Fondamenti di Informatica T-1 Allegra De Filippo 11 / 18 ESERCIZIO 1 (SVOLTO) Scrivere un programma che chieda all’utente di inserire da tastiera due numeri interi ed esegua le operazioni di addizione e sottrazione mostrando a video il risultato. Fondamenti di Informatica T-1 Allegra De Filippo 12 / 18 ESERCIZIO 1 (SOLUZIONE) Fondamenti di Informatica T-1 Allegra De Filippo 13 / 18 RAGIONIAMO UN ATTIMO 1. E se avessimo bisogno di memorizzare i risultati della somma e della differenza? 2. Vi viene in mente un esempio di utilizzo successivo di questi valori? Fondamenti di Informatica T-1 Allegra De Filippo 14 / 18 PROVIAMO A RISPONDERE 1. int somma = a + b; int differenza = a − b; 2. Potremmo (ad esempio) aver bisogno del doppio della variabile somma e del valore assoluto della variabile differenza → usiamo Math int doppio = Math.multiplyExact(somma, 2); int assoluto = Math.abs(differenza); È anche possibile stampare a video queste due nuove variabili. Provate a farlo a casa poi confrontatelo con la soluzione sul sito del corso! Fondamenti di Informatica T-1 Allegra De Filippo 15 / 18 ESERCIZIO 2 Convertitore Dollaro (USA) → Euro • Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad un prezzo in $, mostri a video il suo valore in e • Si ricorda che 1 $ = 0,920979923 e (valore aggiornato a marzo 2016) Fondamenti di Informatica T-1 Allegra De Filippo 16 / 18 ESERCIZIO 3 Scrivere un programma che, dato in input un numero reale corrispondente al raggio di un cerchio, calcoli la lunghezza della circonferenza e l’area del cerchio e le stampi a video. Si ricorda che: circonferenza = 2πr area = πr 2 N.B. anche circonferenza e area sono variabili di tipo double! Fondamenti di Informatica T-1 Allegra De Filippo 17 / 18 SUGGERIMENTI • per usare il π, si deve usare la classe Math in questo modo: Math.PI • per fare il quadrato, dovete usare Math.pow(double base, double esponente) che restituisce sempre un double Fondamenti di Informatica T-1 Allegra De Filippo 18 / 18