Lezione n° 02 Istituto Statale di Istruzione Superiore “F. Enriques” Corso JAVA.

Post on 02-May-2015

228 views 0 download

transcript

Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Corso JAVA

2

Le Basi della programmazione

I mattoni fondamentali della programmazione sono sostanzialmente: I dati Le istruzioni.

I dati sono costituiti dalle costanti e dalle variabili, che come vedremo in seguito possono essere utilizzate singolarmente o raggruppate in quelle che vengono comunemente chiamate strutture dati.

Le istruzioni sono l’insieme delle operazioni che si possono effettuare sui dati.

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

3

I tipi fondamentali di dati

Iniziamo a vedere quali tipi di dati, ovvero costanti e variabili, si possono utilizzare per risolvere un problema.

Ripetiamo che una variabile è una locazione di memoria, contenente dati che possono essere modificati nel corso del programma, a cui viene associato una lettera o un nome. Una costante invece mantiene sempre lo stesso valore assegnatole durante la sua fase di dichiarazione.

In Java esistono 8 tipi primitivi:

4 tipi per i dati numerici che rappresentano numeri interi.

2 tipi per i dati numerici che rappresentano numeri in virgola mobile

1 tipo per i dati booleani (vero/falso)

1 tipo per i dati letterali (caratteri, parole, simboli di punteggiatura, ecc…).

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

4

Tipi di dato – Numeri Interi

Abbiamo detto che per i tipi di dato che rappresentano numeri interi esistono 4 tipi : byte, short, int, long.

Ognuno di questi tipi indica quanti bit sono impiegati per memorizzare il numero che la variabile rappresenta:

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Tipo N° di bit Range di numeri interi rappresentabili

byte 8 bit Da –128 a 127

short 16 bit Da –32.768 a 32.767

int 32 bit Da –2.147.483.648 a 2.147.483.647

long 64 bit +/- 9 miliardi di miliardi

5

Tipi di dato – Numeri in virgola mobile

I tipi di dato che rappresentano numeri in virgola mobile possono essere dichiarati utilizzando due tipi:

Solitamente si utilizza il tipo float per dati che devono contenere numeri con la virgola, mentre il tipo double si utilizza soprattutto il quelle applicazioni per cui occorre una precisione maggiore, es. applicazioni in ambito accademico/scientifico.

Durante il nostro corso difficilmente utilizzeremo il tipo double, mentre vedremo spesso dati dichiarati come float.

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Tipo N° di bit Range di numeri rappresentabili

float 32 bit Numeri da 1,4e-45 e 3,45e38

double 64 bit Numeri da 4,9e-324 a 1,7e308

6

Tipi di dato – I Booleani e i Caratteri

Il tipo di dato bool serve per dichiarare dati che durante la loro esistenza possono assumere solo due valori: Es.: 1 o 0, Vero/Falso, Acceso/Spento

Il tipo di dato char serve per dichiarare caratteri quali lettere, numeri, segni di punteggiatura ed altri simboli.

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Tipo N° di bit Valori rappresentabili

boolean 1 bit 0 e 1

char 16 bit Lettere, segni di punteggiatura, ecc..

7

Il nostro 1° programma Java

Proveremo adesso a fare in nostro primo programma Java che effettua la somma tra due numeri e vedremo come funzionano le variabili.

Per scrivere i nostri programmi ed eseguirli utilizzeremo un ambiente integrato di sviluppo (IDE): la versione 4.1 di Netbeans.

Avviate Netbeans 4.1 e dal menù File scegliete New Project.

Dalla categoria General scegliete Java Application ed in seguito il pulsante Next.

Cambiate il nome del progetto in Somma, controllando che il percorso delle cartelle Project Location e Project Folder sia corretto, e cliccate su Finish.

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

8

Il nostro 1° programma Java (2)

Istituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 02

9

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Questa a fianco è la base di partenza che utilizzeremo ogni volta per iniziare un nuovo programma.Per adesso i ns. programmi li scriveremo all’interno delle parentesi graffe, introdotte dalla dicitura:

public static void main (String[] args){ Il nostro programma}

Il nostro 1° programma Java (3)

10

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Il nostro 1° programma Java (4)

Inizio

a

somma = 0

somma = a + b

b

somma

Fine

Questo è il semplicissimo diagramma a blocchi di un programma che effettua la somma di due numeri a e b e ne restituisce la somma.

I dati in input sono a e b.Il dato in output è somma.

Ci sono due variabili fornite dal problema a e b, e una variabile introdotta per risolvere il problema: somma.

Vediamo adesso come tradurre questo diagramma a blocchi in un programma.

11

Il nostro 1° programma Java (5)

Inizio

a

somma = 0

somma = a + b

b

somma

Fine

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Il simbolo si traduce, per adesso, public static void main (String[] args){

Mentre il simbolo si traduce semplicemente nella parentesi graffa chiusa.

Inizio

Fine

12

Inizio

a

somma = 0

somma = a + b

b

somma

Fine

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Il nostro 1° programma Java (6)

Si devono sempre dichiarare le variabili che siutilizzano: in questo caso le variabili sono trea, b e somma che vengono definite come int

13

Il nostro 1° programma Java (7)

Inizio

a

somma = 0

somma = a + b

b

somma

FineIstituto Statale di Istruzione Superiore “F. Enriques”

E’ sempre bene inizializzare le variabili, ovverodopo averle dichiarate, assegnargli un valore iniziale

Corso di Programmazione in Java – Lezione n° 02

14

Inizio

a

somma = 0

somma = a + b

b

somma

FineIstituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 02

Il nostro 1° programma Java (8)

Si esegue l’operazione somma…

15

Inizio

a

somma = 0

somma = a + b

b

somma

FineIstituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 02

Il nostro 1° programma Java (9)

L’istruzione System.out.println(“testo”); serve per stampare a video un messaggio.Quello scritto tra i doppi apici “ ” viene scritto così come lo digitate da tastiera, il simbolo + serve per indicare che in seguito deve aggiungere al messaggio il valore della variabile

16

Un volta scritto il nostro programma occorre compilarlo, ovvero Netbeans provvederà a controllare ciò che avete scritto e cercherà di trovare eventuali errori.

Ci sono alcuni errori che è in grado di riconoscere, ad esempio se manca il “;” al termine di ogni istruzione, mentre altri errori non è in grado di riconoscerli.

Compilare un programma significa tradurlo da un linguaggio naturale comprensibile dall’uomo ad un linguaggio macchina comprensibile dal computer (cioè une serie di 0 e 1).

Per compilare si clicca su Build MainProject (Cerchio Rosso) mentre per eseguirlosu Run Main Project (Cerchio Giallo).

Prima di passare all’esecuzione controllate che la compilazione sia andata a buon fine, cioè nella sezione in basso deve comparire la scritta BUILD SUCCESSFUL

Corso di Programmazione in Java – Lezione n° 02

Il nostro 1° programma Java (10)

Istituto Statale di Istruzione Superiore “F. Enriques”

17

Se tutto è stato fatto correttamente dopo aver cliccato su Build, dovreste ottenere un risultato simile:

Se avete ottenuto BUILD SUCCESSFUL potete cliccare su Run e dovreste ottenere un risultato simile:

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Il nostro 1° programma Java (10)

Come si vede la somma è stata eseguita correttamente!!!

18

Le costanti

Nel nostro primo programma Java abbiamo utilizzato tre variabili a,b, e somma; parlando però dei dati abbiamo parlato anche di costanti.

Come si capisce che un dato è una variabile o una costante, ovvero un valore che non cambia mai?

Prendiamo il caso di un programma che calcola l’area di un cerchio.

La geometria insegna che l’area di suddetto cerchio si calcola con Πr2.

Ma il valore di Π è sempre 3.1415926535……

Quando si dichiara una costante, a differenza di una variabile, faremo precedere la dichiarazione dalle seguenti parole chiave: Final.

Es. final double PI = 3.1415926335;

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

19

Esempio – L’area del cerchio

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Da adesso potete usare l’identificatore PI tutte le volte che avete bisogno del valore del Π.

Se provate ad assegnare un nuovo valore alla costante PI il compilatore vi restituirà un errore!!

20

I Vettori (gli Array)

I vettori (gli array) fanno parte delle strutture dati di base di un linguaggio di programmazione.

Abbiamo detto che le strutture dati non sono altro che un raggruppamento di variabili; in particolare gli array sono costituiti dall'aggregazione di un certo numero di variabili, individualmente accessibili tramite un indice.

Per capire l’utilità degli array riprendiamo l’esempio che abbiamo fatto nella lezione precedente: la ricerca dello stipendio più alto.

Lasciando perdere il nome ed il cognome dei dipendenti, nel ns. programma dovremmo avere la dichiarazione di 100 variabili per gli stipendi:

Int stipendio000;

Int stipendio001;

Int stipendio002; … ecc… fino a stipendio099

Istituto Statale di Istruzione Superiore “F. Enriques”

Corso di Programmazione in Java – Lezione n° 02

21

Un array (a una dimensione) può essere immaginato come un casellario costituito da un certo numero di celle. Le celle si comportano individualmente come variabili tradizionali (ovvero possono essere assegnate, lette, e così via). Tutte le celle di un array sono variabili dello stesso tipo, detto tipo base dell'array.

Es.: Variabili tradizionali: Stipendio000 Stipendio001 ecc…

Array:Stipendio

0 1 2 3 4 5 6 7 ……

Corso di Programmazione in Java – Lezione n° 02

I Vettori (gli Array) (2)

Istituto Statale di Istruzione Superiore “F. Enriques”

22

Per dichiarare un array scriveremo:

Es.: int stipendi[]; dichiaro che stipendi è un array di int.

stipendi = new int[100]; mi serve per indicare quante “celle” deve avere il ns. array.

Da adesso in poi ogni cella dell’array può essere utilizzata nello stesso modo in cui avreste utilizzato una variabile.

Es. Lo stipendio del dipendente n° 15 è di 1.200€, per assegnate quel valore alla cella n° 15 non farete altro che:

stipendi[15] = 1200;

oppure voglio stampare il valore dello stipendio del dipendente n° 37:

System.out.println(“Stipendio dipendente n° 37 = ” + stipendi[37]);

Corso di Programmazione in Java – Lezione n° 02

I Vettori (gli Array) (3)

Istituto Statale di Istruzione Superiore “F. Enriques”

23

Corso di Programmazione in Java – Lezione n° 02

I Vettori (gli Array) (4)

Istituto Statale di Istruzione Superiore “F. Enriques”

Per utilizzare un array occorre quindi:

1) Dichiararlo

2) Crearlo

3) Inizializzarlo

4) Utilizzarlo come una qualsiasi variabile

24

Fate molta, molta attenzione quando utilizzate gli array, agli indici.

Dovete stare attenti a non andare oltre il limite di capacità dell’array per non incorrere in errori (eccezioni).

Se nell’esempio precedente pongo i = 15 ottengo il seguente risultato:

In particolare ricordatevi che gli indici si iniziano a contare da zero.

Quindi un array creato con new stipendi[100] contiene le celle

da stipendi[0] a stipendi[99]!!!

Corso di Programmazione in Java – Lezione n° 02

I Vettori (gli Array) (5)

Istituto Statale di Istruzione Superiore “F. Enriques”

25

Le istruzioni

Le istruzioni sono le informazioni che devono essere fornite ad un computer per poter elaborare dei dati e risolvere problemi:

Abbiamo visto la più naturale delle istruzioni negli esempi precedenti, ovvero l’assegnamento di un valore ad una variabile:

Es. A = 32; Somma=0; stipendi[15]=1200; ecc…

Vedremo adesso le istruzioni condizionali ed iterative, e la loro relazione con i diagrammi a blocchi.

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

26

Traduzione della selezione:Il comando IF .. ELSE

si no

Gruppo di Istruzioni 1

Nell’esempio della somma tra due numeri abbiamo visto come si traducono i simboli inizio e fine e come si fanno gli assegnamenti dei dati di input e come si stampano i risultati di output.

E se troviamo il simbolo della selezione come si traduce? Con If .. else

Condizione

Gruppo di Istruzioni 2

Istituto Statale di Istruzione Superiore “F. Enriques”

If (Condizione)

{ Gruppo istruzioni 1; }

Else

{ Gruppo istruzioni 2; }

Corso di Programmazione in Java – Lezione n° 02

27

Riprendendo l’esempio del semaforo:

Traduzione della selezione:Il comando IF .. ELSE (2)

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

Di che coloreè il semaforo

Rosso Non rosso

Giallo Verde

Freno

PassoAccelero / Freno

Di che coloreè il semaforo

If (Colore semaforo = Rosso){

Freno;}Else{

If (Colore semaforo = Verde){

Passo;}Else{

Accelero/Freno;}

}

28

Il comando for serve in quei casi in cui si utilizzano i cicli, in particolare le ricorsioni che usano i contatori, ovvero per tradurre blocchi del tipo:

Traduzione della iterazione:Il comando FOR

Inizializzazione

Gruppo di Istruzioni

Condizione

Incremento

vero

falso

For ( inizializzazione; condizione; incremento)

{

Gruppo di Istruzioni;

}

Ricordatevi sempre che il gruppo di istruzioni dentro le parentesi viene eseguito se la condizione è vera!!!

Corso di Programmazione in Java – Lezione n° 02

Istituto Statale di Istruzione Superiore “F. Enriques”

29

Nella scorsa lezione abbiamo visto il più semplice esempio di ricorsione:

Traduzione della iterazione:Il comando FOR (2)

Corso di Programmazione in Java – Lezione n° 02

i = 0

i < 100

inizio

i = i + 1Stampa i

vero

falsofine

Istituto Statale di Istruzione Superiore “F. Enriques”

public static void main (String[] args)

{

int i;

for(i=0; i<100; i++)

{

System.out.printnl(i);

}

}

Inizializzazione

Incremento

Condizione N.B. Scrivere i = i +1; o i++; è la stessa cosa