Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che,...

18
Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defi[email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 18

Transcript of Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che,...

Page 1: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

Fondamenti di Informatica T-1Introduzione 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

Page 2: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

PROGRAMMI e LINGUAGGI

• Algoritmo → sequenza finita di passi per risolvere in untempo finito un problema

• Linguaggio di programmazione → notazione formale chepuo essere usata per descrivere algoritmi. Due aspetti dellinguaggio:

I SINTASSI: regole formali per costruire frasi corrette nellinguaggio

I SEMANTICA: insieme dei significati da attribuire alle frasi(sintatticamente corrette) costruite nel linguaggio

• Programma → testo scritto in accordo alla sintassi e allasemantica del linguaggio di programmazione

Fondamenti di Informatica T-1 Allegra De Filippo 2 / 18

Page 3: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

JAVA

• Linguaggio ad alto livello simile ad un linguaggio naturale

I Viene compilato in bytecode, un linguaggio intermedioindipendente dalla macchina → PORTABILITA

I Quando viene lanciato un programma, e la JVM ad”interpretarlo” (da bytecode a linguaggio macchina) a secondadell’hardware sottostante

Fondamenti di Informatica T-1 Allegra De Filippo 3 / 18

Page 4: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

TIPI di DATO PRIMITIVI in JAVA

• Sono i tipi di dato messi a disposizione automaticamente dallinguaggio

• Per creare tipi di dato piu ”particolari” → Classi ed Oggetti(li vedremo piu avanti)

Fondamenti di Informatica T-1 Allegra De Filippo 4 / 18

Page 5: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

VARIABILI

• Astrazione di una cella di memoria → consentono dimemorizzare dati

• Sono caratterizzate da:I Tipo (int, float, char...)I ValoreI Nome (convenzione → lettera minuscola)

• Ad ogni variabile e assegnata un’area di memoria didimensione 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

Page 6: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

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

Page 7: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

OPERATORI LOGICI e COMPARATIVI

• Uguale → ==;(ATTENZIONE: e 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

Page 8: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

LA CLASSE MATH

La classe Math e una particolare classe che contiene numerosimetodi statici (capiremo in seguito cosa sono esattamente) ecostanti utili per i calcoli matematici.

Per una descrizione completa delle funzionalita, 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 valoreassoluto di x

• double quadrato = Math.pow(x,2); → Ritorna il quadrato dix

• double radice = Math.sqrt(x); → Ritorna la radice quadratadi x

Fondamenti di Informatica T-1 Allegra De Filippo 8 / 18

Page 9: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

INPUT da TASTIERA: la CLASSE SCANNER

Per leggere dati da tastiera si utilizza la classe Scanner che sitrova nel package java.util

• Per poterla utilizzare bisogna importarla con l’istruzioneimport 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 piu):tastiera.close();

Fondamenti di Informatica T-1 Allegra De Filippo 9 / 18

Page 10: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

OUTPUT

Viene utilizzato l’oggetto System.out

• metodo System.out.print(”Hello World!”); → stampa lastringa contenuta fra gli apici

• metodo System.out.println(”Hello World!”); → stampa lastringa contenuta fra gli apici e va a capo

E possibile concatenare piu elementi da stampare a videoutilizzando l’operatore ”+”

Esempio:int var = 4;System.out.println(”La mia variabile vale ” + var + ”!”);

Quello che verra visualizzato sullo schermo sara:La mia variabile vale 4!

Fondamenti di Informatica T-1 Allegra De Filippo 10 / 18

Page 11: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

CREAZIONE DEL PROGETTO

Create un progetto che chiamerete Esercitazione2 e, al suointerno, create un package diverso per ogni esercizio.In ogni package create una classe che conterra il codice del vostroesercizio.La struttura del vostro progetto dovra essere cosı:

Fondamenti di Informatica T-1 Allegra De Filippo 11 / 18

Page 12: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

ESERCIZIO 1 (SVOLTO)

Scrivere un programma che chieda all’utente di inserire datastiera due numeri interi ed esegua le operazioni di addizione esottrazione mostrando a video il risultato.

Fondamenti di Informatica T-1 Allegra De Filippo 12 / 18

Page 13: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

ESERCIZIO 1 (SOLUZIONE)

Fondamenti di Informatica T-1 Allegra De Filippo 13 / 18

Page 14: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

RAGIONIAMO UN ATTIMO

1. E se avessimo bisogno di memorizzare i risultati della sommae della differenza?

2. Vi viene in mente un esempio di utilizzo successivo di questivalori?

Fondamenti di Informatica T-1 Allegra De Filippo 14 / 18

Page 15: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

PROVIAMO A RISPONDERE

1. int somma = a + b;int differenza = a− b;

2. Potremmo (ad esempio) aver bisogno del doppio dellavariabile somma e del valore assoluto della variabiledifferenza → usiamo Math

int doppio = Math.multiplyExact(somma, 2);int assoluto = Math.abs(differenza);

E anche possibile stampare a video queste due nuove variabili.Provate a farlo a casa poi confrontatelo con la soluzione sulsito del corso!

Fondamenti di Informatica T-1 Allegra De Filippo 15 / 18

Page 16: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

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

Page 17: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

ESERCIZIO 3

Scrivere un programma che, dato in input un numero realecorrispondente al raggio di un cerchio, calcoli la lunghezza dellacirconferenza e l’area del cerchio e le stampi a video.

Si ricorda che:

circonferenza = 2πrarea = πr2

N.B. anche circonferenza e area sono variabili di tipo double!

Fondamenti di Informatica T-1 Allegra De Filippo 17 / 18

Page 18: Fondamenti di Informatica T-1€¦ · Convertitore Dollaro (USA) !Euro Scrivere un programma che, dato in input un numero reale (usare variabile di tipo double) corrispondente ad

SUGGERIMENTI

• per usare il π, si deve usare la classe Math in questo modo:Math.PI

• per fare il quadrato, dovete usareMath.pow(double base, double esponente) che restituiscesempre un double

Fondamenti di Informatica T-1 Allegra De Filippo 18 / 18