Corso JAVA Lezione n° 02 Istituto Statale di Istruzione Superiore “F. Enriques”
Le Basi della programmazione Corso di Programmazione in Java – Lezione n° 02 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. Istituto Statale di Istruzione Superiore “F. Enriques”
I tipi fondamentali di dati Corso di Programmazione in Java – Lezione n° 02 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…). Istituto Statale di Istruzione Superiore “F. Enriques”
Tipi di dato – Numeri Interi Corso di Programmazione in Java – Lezione n° 02 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: 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 Istituto Statale di Istruzione Superiore “F. Enriques”
Tipi di dato – Numeri in virgola mobile Corso di Programmazione in Java – Lezione n° 02 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. 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 Istituto Statale di Istruzione Superiore “F. Enriques”
Tipi di dato – I Booleani e i Caratteri Corso di Programmazione in Java – Lezione n° 02 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. Tipo N° di bit Valori rappresentabili boolean 1 bit 0 e 1 char 16 bit Lettere, segni di punteggiatura, ecc.. Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java Corso di Programmazione in Java – Lezione n° 02 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. Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (2) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (2) 2° 1° 3° Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (3) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (3) 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 } Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (4) Corso di Programmazione in Java – Lezione n° 02 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. Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (5) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (5) Inizio a somma = 0 somma = a + b b somma Fine Inizio Il simbolo si traduce, per adesso, public static void main (String[] args) { Mentre il simbolo si traduce semplicemente nella parentesi graffa chiusa. Fine Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (6) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (6) Inizio a somma = 0 somma = a + b b somma Fine Si devono sempre dichiarare le variabili che si utilizzano: in questo caso le variabili sono tre a, b e somma che vengono definite come int Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (7) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (7) Inizio a somma = 0 somma = a + b b somma Fine E’ sempre bene inizializzare le variabili, ovvero dopo averle dichiarate, assegnargli un valore iniziale Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (8) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (8) Inizio a somma = 0 somma = a + b b somma Fine Si esegue l’operazione somma… Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (9) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (9) Inizio a somma = 0 somma = a + b b somma Fine 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 Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (10) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (10) 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 Main Project (Cerchio Rosso) mentre per eseguirlo su 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 Istituto Statale di Istruzione Superiore “F. Enriques”
Il nostro 1° programma Java (10) Corso di Programmazione in Java – Lezione n° 02 Il nostro 1° programma Java (10) 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: Come si vede la somma è stata eseguita correttamente!!! Istituto Statale di Istruzione Superiore “F. Enriques”
Corso di Programmazione in Java – Lezione n° 02 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; Istituto Statale di Istruzione Superiore “F. Enriques”
Esempio – L’area del cerchio Corso di Programmazione in Java – Lezione n° 02 Esempio – L’area del cerchio 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!! Istituto Statale di Istruzione Superiore “F. Enriques”
Corso di Programmazione in Java – Lezione n° 02 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”
I Vettori (gli Array) (2) Corso di Programmazione in Java – Lezione n° 02 I Vettori (gli Array) (2) 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 …… Istituto Statale di Istruzione Superiore “F. Enriques”
I Vettori (gli Array) (3) Corso di Programmazione in Java – Lezione n° 02 I Vettori (gli Array) (3) 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]); Istituto Statale di Istruzione Superiore “F. Enriques”
I Vettori (gli Array) (4) Corso di Programmazione in Java – Lezione n° 02 I Vettori (gli Array) (4) Per utilizzare un array occorre quindi: Dichiararlo Crearlo Inizializzarlo Utilizzarlo come una qualsiasi variabile Istituto Statale di Istruzione Superiore “F. Enriques”
I Vettori (gli Array) (5) Corso di Programmazione in Java – Lezione n° 02 I Vettori (gli Array) (5) 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]!!! Istituto Statale di Istruzione Superiore “F. Enriques”
Corso di Programmazione in Java – Lezione n° 02 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. Istituto Statale di Istruzione Superiore “F. Enriques”
Traduzione della selezione: Il comando IF .. ELSE Corso di Programmazione in Java – Lezione n° 02 Traduzione della selezione: Il comando IF .. ELSE 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 si no … If (Condizione) { Gruppo istruzioni 1; } Else { Gruppo istruzioni 2; } Condizione Gruppo di Istruzioni 1 Gruppo di Istruzioni 2 Istituto Statale di Istruzione Superiore “F. Enriques”
Traduzione della selezione: Il comando IF .. ELSE (2) Corso di Programmazione in Java – Lezione n° 02 Traduzione della selezione: Il comando IF .. ELSE (2) Riprendendo l’esempio del semaforo: If (Colore semaforo = Rosso) { Freno; } Else If (Colore semaforo = Verde) Passo; Accelero/Freno; Non rosso Rosso Di che colore è il semaforo Freno Giallo Di che colore è il semaforo Verde Passo Accelero / Freno Istituto Statale di Istruzione Superiore “F. Enriques”
Traduzione della iterazione: Il comando FOR Corso di Programmazione in Java – Lezione n° 02 Traduzione della iterazione: Il comando FOR 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: Inizializzazione For ( inizializzazione; condizione; incremento) { Gruppo di Istruzioni; } Gruppo di Istruzioni Incremento vero Condizione Ricordatevi sempre che il gruppo di istruzioni dentro le parentesi viene eseguito se la condizione è vera!!! falso Istituto Statale di Istruzione Superiore “F. Enriques”
Traduzione della iterazione: Il comando FOR (2) Corso di Programmazione in Java – Lezione n° 02 Traduzione della iterazione: Il comando FOR (2) Nella scorsa lezione abbiamo visto il più semplice esempio di ricorsione: inizio Inizializzazione public static void main (String[] args) { int i; for(i=0; i<100; i++) System.out.printnl(i); } i = 0 Incremento Stampa i i = i + 1 vero i < 100 falso Condizione fine N.B. Scrivere i = i +1; o i++; è la stessa cosa Istituto Statale di Istruzione Superiore “F. Enriques”