3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo



Documenti analoghi
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

10 - Programmare con gli Array

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Funzioni in C. Violetta Lonati

Le variabili. Olga Scotti

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Struttura di un programma Java

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

23 - Graphical User Interface GUI (Cenni)

Java: Compilatore e Interprete

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Eclipse. Avviare un progetto e compilare un semplice programma

2 - Introduzione al linguaggio Java

Javascript: il browser

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Allocazione dinamica della memoria - riepilogo

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Corso di Informatica

Concetto di Funzione e Procedura METODI in Java

Laboratorio di Informatica

Appunti di Informatica 1

La selezione binaria

Eclipse - Nozioni Base

Programmare in Java. Olga Scotti

Variabili e tipi di dato

4 3 4 = 4 x x x 10 0 aaa

Le stringhe. Le stringhe

20 - Input/Output su File

GESTIONE INFORMATICA DEI DATI AZIENDALI

Arduino: Programmazione

LINGUAGGI DI PROGRAMMAZIONE

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Algoritmi di Ricerca. Esempi di programmi Java

costruttori e distruttori

Introduzione alla Programmazione

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Record in C: il costruttore struct.

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

FORMULE: Operatori matematici

esercizi Esercizi / problemi

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

RISOLUTORE AUTOMATICO PER SUDOKU

INFORMATICA - I puntatori Roberta Gerboni

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Introduzione al linguaggio C Gli array

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

Java? Sì, grazie. Scopo del corso

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Prova di Laboratorio di Programmazione

Programmazione I - Laboratorio

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

Tale attività non è descritta in questa dispensa

Informatica. Rappresentazione dei numeri Numerazione binaria

Inizializzazione, Assegnamento e Distruzione di Classi

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Codifica binaria dei numeri relativi

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO XI.2015

Cosa è un foglio elettronico

Introduzione a Classi e Oggetti

Convertitori numerici in Excel

Matematica e giochi di gruppo


void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Primo scritto 11 Gennaio 2008

Visibilità dei Membri di una Classe

Corso di Informatica

Laurea Specialistica in Informatica

Alcune regole di base per scrivere un programma in linguaggio C

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Esercizio 1: trading on-line

Lezione 8. La macchina universale

MANUALE UTENTE Fiscali Free

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

La struttura dati ad albero binario

Esercizio 2. Client e server comunicano attraverso socket TCP

Grafico della parabola

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Transcript:

3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea Magistrale in Informatica Umanistica A.A. 2013/2014 Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 1 / 16

Espressioni aritmetiche (1) Nel programma HelloWord abbiamo usato il comando System.out.println() per stampare una stringa public class HelloWorld { public static void main ( String [] args ) { // visualizza un messaggio di saluto System. out. println (" Hello World!"); Possiamo in realtà stampare tanti altri tipi di valori Ad esempio, possiamo stampare il risultato di una espressione Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 2 / 16

Espressioni aritmetiche (2) Consideriamo il seguente programma che calcola l area di un triangolo di base 5 cm e altezza 10 cm public class AreaTriangolo { public static void main ( String [] args ) { System. out. println (5*10/2); Il programma risolve l espressione 5*10/2 e stampa il risultato a video Nota: * rappresenta l operazione di moltiplicazione Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 3 / 16

Espressioni aritmetiche (3) Le espressioni aritmetiche più semplici sono costituite da singoli letterali Letterali interi: 3425, 12, -34, 0, -4, 34, -1234,... Letterali frazionari: 3.4, 5.2, -0.1, 0.0, -12.45, 1235.3423,... Espressioni più complesse si ottengono utilizzando operatori artimetici moltiplicazione * divisione / modulo % (resto della divisione tra interi) addizione + sottrazione - Le operazioni sono elencate in ordine decrescente di priorità ossia 3+2*5 fa 13, non 25 Le parentesi tonde cambiano l ordine di valutazione degli operatori ossia (3+2)*5 fa 25 Inoltre, tutti gli operatori sono associativi a sinistra ossia 3+2+5 corrisponde a (3+2)+5 quindi 18/6/3 fa 1, non 9 Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 4 / 16

Espressioni aritmetiche (4) L operazione di divisione / si comporta diversamente a seconda che sia applicato a letterali interi o frazionari 25/2 = 12 (divisione intera) 25%2 = 1 (resto della divisione intera) 25.0/2.0 = 12.5 (divisione reale) 25.0%2.0 = 1.0 (resto della divisione intera) Una operazione tra un letterale intero e un frazionario viene eseguita come tra due frazionari 25/2.0 = 12.5 1.5 + (25/2) = 13.5 (attenzione all ordine di esecuzione delle operazioni) 2 + (25.0/2.0) = 14.5 Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 5 / 16

Variabili (1) Modifichiamo il programma che calcola l area di un triangolo introducendo un po di variabili public class AreaTriangolo2 { public static void main ( String [] args ) { int base, altezza ; int area ; base =5; altezza =10; area = base * altezza /2; System. out. println ( area ); Il programma così risulta essere più chiaro: Si capisce meglio quali siano la base e l altezza del triangolo Si capisce meglio che cosa calcola il programma Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 6 / 16

Variabili (2) Una variabile è una casella di memoria identificata da un nome Il suo scopo è di contenere un valore di un certo tipo Serve per memorizzare dati durante l esecuzione di un programma Il nome di una variabile (come il nome di una classe o di un metodo) è un identificatore può essere costituito da lettere, numeri e underscore (esempi: num1, i, risultato, costo_tot,...) non deve coincidere con una parola chiave del linguaggio (esempi sbagliati : class, static, int,...) è bene che sia significativo per il programma (meglio base, altezza e area di X1, X2 e X3) Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 7 / 16

Variabili (3) In Java ogni variabile deve essere dichiarata prima del suo uso Nella dichiarazione di una variabile se ne specifica il nome e il tipo (o meglio, il tipo dei valori che può contenere) Nell esempio, abbiamo dichirato tre variabili con nomi base, altezza e area, tutte di tipo int (numeri interi) int base, altezza ; int area ; ATTENZIONE! Ogni variabile deve essere dichiarata UNA SOLA VOLTA (la prima volta che compare nel programma) Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 8 / 16

Assegnamento Si può memorizzare un valore in una variabile tramite l operazione di assegnamento Il valore da assegnare a una variabile può essere un letterale o il risultato della valutazione di un espressione Esempi di assegnamenti: base =5; altezza =10; area = base * altezza /2; Dall ultimo esempio si può notare che le variabili possono essere usate anche all interno di espressioni I valori di base e altezza vengono letti e usati nell espressione Il risultato dell espressione viene scritto nella variabile area Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 9 / 16

Dichiarazione + Assegnamento Prima di poter essere usata (letta) in un espressione una variabile deve: essere stata dichiarata essere stata assegnata almeno una volta (inizializzata) Si può combinare dichiarazione e assegnamento (dichiarazione con inizializzazione). Ad esempio: int base =5; int altezza =10; int area = base * altezza /2 Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 10 / 16

Esempio: Calcolo interessi (1) public class Interessi { public static void main ( String [] args ) { double capitale =100000; double tasso =0.05; double interesse ; // calcola l interesse maturato dopo un anno interesse = capitale * tasso ; capitale = capitale + interesse ; // calcola l interesse maturato dopo due anni interesse = capitale * tasso ; capitale = capitale + interesse ; // calcola l interesse maturato dopo tre anni interesse = capitale * tasso ; capitale = capitale + interesse ; // stampa il risultato System. out. print (" Capitale maturato : "); System. out. println ( capitale ); Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 11 / 16

Esempio: Calcolo interessi (2) Risultato dell esecuzione: Capitale maturato : 115762.5 In questo esempio: Alcune variabili sono inizializzate nella dichiarazione Le variabili hanno tipo double (virgola mobile a precisione doppia) e le operazioni su tali variabili sono come tra letterali frazionari (divisione reale) Le variabili cambiano valore durante l esecuzione Il nuovo valore di una variabile può essere calcolato a partire dal precedente (capitale=capitale+interesse) Il metodo print() visualizza un messaggio senza andare a capo Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 12 / 16

Costanti (1) Nell esempio Interessi la variabile tasso non cambia mai Nella dichiarazione delle variabili che NON DEVONO mai cambiare valore si può utilizzare il modificatore final final double tasso =0.05; Il modificatore final trasforma la variabile in una costante Il compilatore si occuperà di controllare che il valore delle costanti non venga mai modificato (ri-assegnato) dopo essere stato inizializzato. Aggiungere il modificatore final non cambia funzionamento programma... ma serve a prevenire errori di programmazione Si chiede al compilatore di controllare che una variabile non venga ri-assegnata per sbaglio. Sapendo che una variabile non cambierà mai valore, il compilatore può anche eseguire delle ottimizzazioni sull uso di tale variabile... Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 13 / 16

Costanti (2) public class Interessi2 { public static void main ( String [] args ) { double capitale =100000; final double tasso =0.05; double interesse ; // calcola l interesse maturato dopo un anno interesse = capitale * tasso ; capitale = capitale + interesse ; // calcola l interesse maturato dopo due anni interesse = capitale * tasso ; capitale = capitale + interesse ; // calcola l interesse maturato dopo tre anni interesse = capitale * tasso ; capitale = capitale + interesse ; // stampa il risultato System. out. print (" Capitale maturato : "); System. out. println ( capitale ); Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 14 / 16

Input dall utente (1) Per ricevere valori in input dall utente si usa la classe Scanner, che fa parte della Libreria Standard di Java import java. util. Scanner ; // richiama la classe Scanner public class Somma { public static void main ( String [] args ) { // predispone il programma per la lettura dell input Scanner input = new Scanner ( System. in ); System. out. println (" Inserisci due numeri interi :"); int n1, n2; // attende l inserimento di due numeri e li assegna n1 = input. nextint (); n2 = input. nextint (); // calcola e stampa la somma System. out. print (" Somma : "); System. out. println (n1+n2 ); Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 15 / 16

Input dall utente (2) La classe Scanner deve essere richiamata usando la direttiva import prima dell inizio della classe import java. util. Scanner ; L oggetto input (che può essere chiamato anche differentemente) deve essere predisposto (creato) prima di iniziare a chiedere i valori all utente Scanner input = new Scanner ( System. in ); La lettura vera e propria dei valori in input si fa tramite metodi diversi a seconda del tipo dei valori attesi x = input. nextint (); // legge un numero intero y = input. nextdouble (); // legge un numero frazionario Paolo Milazzo (Università di Pisa) Programmazione - Variabili A.A. 2013/2014 16 / 16