INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

Documenti analoghi
INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate

Le basi del linguaggio Java

Lezione 6 Introduzione al C++ Mauro Piccolo

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Dati due punti sul piano calcolare la loro distanza

Dichiarazioni e tipi predefiniti nel linguaggio C

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Linguaggio C - sezione dichiarativa: costanti e variabili

Basi della programmazione in Java

Le basi del linguaggio Java

Introduzione alla programmazione in linguaggio C

Struttura di un linguaggio

L AMBIENTE CODE BLOCKS E L IO

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:

Costanti e Variabili

Fondamenti di Informatica T-1

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Programmazione in Java (I modulo) Lezione 4

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Programmazione I - corso B a.a prof. Viviana Bono

1

Introduzione alla programmazione. Alice Pavarani

L AMBIENTE CODE BLOCKS E L IO

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Struttura dei programmi e Variabili

Tipi di dato e variabili. Walter Didimo

Laboratorio di Informatica I

Linguaggi di programmazione

Esonero di Informatica I. Ingegneria Medica

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso sul linguaggio Java

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

Programmazione in Java (I modulo)

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Java e i Tipi di dati primitivi. Parte 3

Fondamenti di Informatica T-1

Funzioni, Stack e Visibilità delle Variabili in C

ciclo di vita della soluzione (informatica) di un problema

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Fondamenti di Informatica T1 Introduzione al linguaggio Java Input/Output-Variabili-Tipi

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

Lezione 4 Casting, stringhe e caratteri, operatori relazionali, espressioni e variabili booleane

Laboratorio di Informatica I

La programmazione nel linguaggio C

ciclo di vita della soluzione (informatica) d un problema

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Variabili e Funzioni. Informatica 1 / 19

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Programmazione Orientata agli Oggetti in Linguaggio Java

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007

Struttura dei programmi C

Programmazione. Tipi di dato primitivi. Francesco Tiezzi. Scuola di Scienze e Tecnologie Sezione di Informatica Università di Camerino

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Struttura di un. Struttura dei programmi C

Fondamenti di Informatica T-1

5 - Istruzioni condizionali

Elementi di Base. Introduzione a Python.

Sintassi Java PA RTE 1 FONDAMEN TI DI I N FORMAT ICA PER IL CORSO DI LAUREA I N M AT EMAT ICA PA O L A L E C C A

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

4 - Tipi di dato primitivi

Introduzione alla programmazione in C++

Funzioni, Stack e Visibilità delle Variabili in C

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Variabili e assegnazione

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione

Assegnazione di una variabile

Introduzione a Java. Riferimenti

Gocce di Java. Gocce di Java. Tipi di dato primitivi. Pierluigi Crescenzi. Università degli Studi di Firenze

Corso Programmazione

I Fondamenti del Linguaggio

LINGUAGGI DI PROGRAMMAZIONE!

Linguaggi di Programmazione I Lezione 9

Java SE 7. Strutture di programmazione (1)

Transcript:

Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere ogni classe è definita in un file separato (compilabile separatamente dagli altri file). Tuttavia tutto il programma può risiedere in un unico file. Almeno una delle classi che appartengono all applicazione deve esportare un metodo main. Il programma viene eseguito chiamando l interprete/compilatore con un parametro che specifica la classe che contiene il metodo main. 2 1

Primo esempio di programma Java Semplicissimo programma che stampa la stringa Ciao. public class PrimoProgramma { public static void main(string args[]) { System.out.println("Ciao"); } } PrimoProgramma è il nome della classe (attenti alle maiuscole; Java e case-sensitive!) 3 Primo esempio di programma Java Il primo rigo del programma definisce una classe di nome PrimoProgramma public class PrimoProgramma La parola chiave public indica che la classe può essere utilizzata dalle altre classi. La parola chiave class indica la definizione del nome (PrimoProgramma) e del contenuto della classe. Il nome della classe deve corrispondere al nome del file che la contiene. In questo caso: PrimoProgramma.java 4 2

Il metodo main La semplice classe PrimoProgramma definisce un metodo essenziale per poter eseguire il programma : il metodo main. Un metodo definisce le operazioni da eseguire come una sequenza di istruzioni che eseguono uno specifico compito o calcolano un particolare risultato. Senza metodi non avremmo operazioni! Il metodo main deve essere utilizzabile da tutti e quindi deve essere dichiarato public. 5 Il metodo main La parola chiave static indica che il metodo non accede e non modifica i metodi della classe. Le parole chiave void e args[] le analizzeremo più avanti. Le parentesi {} indicano l inizio e la fine di una classe, di un metodo o di un blocco di operazioni. Le operazioni terminano con il ; 6 3

Operazioni e invocazione di un metodo Il metodo main contiene una singola operazione System.out.println("Ciao"); per visualizzare sullo schermo la parola Ciao. System indica una classe predefinita per operare sulle risorse del sistema che contiene oggetti e metodi. out è un oggetto che indica lo standard output (lo schermo). println è un metodo della classe System per scrivere sullo standard output e andare a capo (print non va a capo). 7 Invocazione di un metodo L esecuzione di un metodo si richiede nel modo seguente: oggetto.metodo(parametri); che significa esegui le operazioni definite dal metodo sull oggetto usando i parametri indicati. I parametri possono essere assenti, ma le parentesi vanno inserite comunque. Se ci sono più parametri si separano con una virgola. Nel programma si vuole stampare una stringa e quindi la si indica tra apici: Ciao, per differenziarla da un identificatore o una parola chiave. 8 4

Compilazione ed esecuzione Per eseguire questo programma che sta nel file PrimoProgramma.java usando il compilatore JDK: COMPILAZIONE: C:> javac PrimoProgramma.java ESECUZIONE: C:> java PrimoProgramma Attenti agli errori di sintassi e di semantica!! 9 Dati e variabili Nel programma che abbiamo discusso non sono state usate locazioni di memoria per conservare dei dati. Quando questo è necessario occorre definire delle variabili. Una variabile è un astrazione della cella di memoria. Formalmente, una variabile è un simbolo associato a un indirizzo fisico che denota un valore. 10 5

Dati e variabili Una variabile è un contenitore che può conservare un valore. Essa viene realizzata tramite una o più celle di memoria (variabile semplice o strutturata). Ad esempio nel caso: x 4. 1328 l indirizzo di x è 1328 e il suo valore è attualmente 4. Attenzione: il valore può cambiare nel corso dell esecuzione, l indirizzo è fissato (e non cambia durante l esecuzione). Il programmatore non ha bisogno di conoscere dove la variabile sia memorizzata (il suo indirizzo). 11 Dichiarazione di una variabile La dichiarazione di una variabile introduce una nuova variabile, identificata da un simbolo (nome), e da un tipo che definisce le caratteristiche e le operazioni che si possono effettuare sulla variabile. ESEMPI int a, b, sum; double num, cifra; char ch; ATTENZIONE: definendo la variabile, si dichiara il suo tipo e contemporaneamente si alloca il relativo spazio in memoria. 12 6

Inizializzazione di una variabile Opzionalmente, nella dichiarazione è possibile specificare un valore iniziale per una nuova variabile : ESEMPIO int a, b = 8, sum = 0; float pi = 3.14; La variabile verrà creata con il suo valore iniziale (che ovviamente potrà variare). 13 Operazione di assegnamento (=) L assegnamento è una istruzione che calcola il valore di una espressione e memorizza il valore (lo assegna) in una variabile ESEMPI: i = 1; variabile = espressione i = j + 1 ; x = x - y ; z = (2*x)-5; 14 7

Operazione di assegnamento (=) Il nuovo valore della variabile è quello denotato dall espressione posta a destra dell assegnamento. Quindi, se ad esempio il valore di k era 2: k = 10; cambia in 10 il valore di k j = k + 1; cambia in 11 il valore di j Questo nuovo valore può essere usato in altre espressioni. 15 Costanti Una costante rappresenta un dato che non può cambiare di valore nel corso dell esecuzione di un programma. La dichiarazione di una costante associa ad un identificatore (nome) un valore noto a priori. In Java le costanti i dichiarano con la parola chiave final final double pi = 3.14159; final int massimo = 10000; Il valore della costante non potrà più essere modificato nel programma, ma verrà utilizzato nelle espressioni. Ad esempio se j è una variabile intera: j = massimo - 1; 16 8

Uso di variabili - Area di un Rettangolo Programma Java che calcola l area di un rettangolo. public class AreaRettangolo { public static void main(string args[]) { int base, altezza, area; base = 8; altezza = 5; area = base * altezza; System.out.println("Area = " + area); } } 17 Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale 18 9

Lettura di dati da input In Java la lettura di dati da input non è diretta come in C. Useremo una classe non-standard per effettuare operazioni di input da tastiera. Questa classe prende il nome di Console che esporta metodi per leggere interi, reali a doppia precisione (double), stringhe e parole. 19 Lettura di dati da input classe Console Di seguito sono indicati i metodi di lettura definiti dalla classe Console Lettura di un numero intero public static int Console.readInt(String prompt) Ad esempio x = Console.readInt( Inserire un intero: ); Lettura di un numero reale public static double Console.readDouble(String s) Ad esempio r = Console.readDouble( Inserire un reale: ); 20 10

Lettura di dati da input classe Console Lettura di una stringa di caratteri che termina con newline public static String Console.readString() Ad esempio s = Console.readString(); Lettura di una stringa che termina con newline (2) public static String Console.readString(String ) Ad esempio s = Console. readstring( Inserire una stringa ); Lettura di una parola che termina con uno spazio public static String Console.readWord() Ad esempio w = Console.readWord(); 21 Commenti in programmi Java // commento fino a fine linea /* commento che può occupare più linee */ /** commento su più linee che viene estratto dallo strumento che genera automaticamente la documentazione */ 22 11

Area di un Rettangolo Programma Java che calcola l area di un rettangolo. import corejava.*; public class AreaRettangolo { public static void main(string args[]) { double base, altezza, area; base = Console.readDouble( Base= ); altezza = Console.readDouble( Alt= ); area = base * altezza; System.out.println("Area = " + area); } } 23 Tipi in Java Nei linguaggi di programmazione di alto livello le variabili e le espressioni sono caratterizzati da un tipo. Un tipo di dati (o tipo) è costituito da un insieme di valori ammissibili un insieme di operatori che possono essere applicati ai valori del tipo I tipi sono importanti perché il significato e la correttezza di molte istruzioni è legata non solo alla forma sintattica delle istruzioni, ma anche a vincoli semantici, che sono definiti tramite tipi. 24 12

Tipi primitivi in Java Tipi primitivi boolean (1 bit) valori: true o false byte (8 bit ) un intero tra 128 e +127 short (16 bit) un intero tra 32768 e +32767 float (32 bit ) un numero razionale in virgola mobile (9 cifre significative eesponente tra 45 e +38) int (32 bit) un intero di valore compreso tra 2147483648 e +2147483647 double (64 bit) un numero razionale in virgola mobile (18 cifre significative eesponente tra 324 e +308) long (64 bit) un intero di valore compreso tra 223372036854775808 e +9223372036854775807 char (16 bit) un carattere dell alfabeto Unicode 25 Conversione di tipi In Java è possibile effettuare conversione tra variabili che hanno tipi diversi ma compatibili. Conversione implicita Ad esempio int i; short s; i = s + 1; La conversione implicita di tipo si ha nei casi in cui non ci sia perdita di informazione (promozione). int i; long l; l = i + 10; 26 13

Conversione di tipi Nessuna conversione implicita di tipo nei casi in cui ci sia perdita di informazione (errore di compilazione!). Ad esempio: int vintera; double vreale = 3.14159; vintera = vreale; NO! Conversione esplicita Ad esempio vintera = (int)vreale; SI (Narrowing) La conversione esplicita è detta casting. 27 Operatori in Java Operatori aritmetici: somma (+), sottrazione (-), prodotto (*), divisione (/), resto(%), incremento(++), decremento (--), (+=, -=, *=, /=) Operatori relazionali: uguale (==), diverso (!=), maggiore (>), minore (<), minore o uguale (<=), maggiore o uguale (>=) Operatori logici: not (!), or ( ), and (&). Sequenze di escape: \b, \t, \n, \r, \, \, \\ 28 14

Istruzioni composte Oltre alle istruzioni elementari come l assegnamento, il return, ecc., il linguaggio mette a disposizione del programmatore un insieme di istruzioni composte che servono a controllare il flusso di esecuzione di un programma come le istruzioni if-else, for, while, do-while. Istruzione condizionale if-else L istruzione if-else serve per valutare il valore di una espressione logica ed eseguire le operazioni opportune. 29 Istruzione if-else if (condizione) {istruzioni1} else {istruzioni2} Il ramo else e le parentesi {} possono mancare. In questo caso si parla di istruzione if. 30 15

Istruzione if-else ESEMPI if (i >= 0) System.out.println( Valore positivo o nullo ); else System.out.println( Valore negativo ); if (x == 0) y = 10; else y = x +3*z; if (x == 0 & z > x) {y= 10; z= z-1;} 31 16