Il manuale per la facoltà di...

40
Geom. Giofrè Vincenzo Pasquale Il manuale per la facoltà di ingegneria Copyright © 1992 – 2006 SystemGVP®

Transcript of Il manuale per la facoltà di...

Page 1: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

Geom. Giofrè Vincenzo Pasquale

Il manuale per la facoltà di ingegneria

Copyright © 1992 – 2006 SystemGVP®

Page 2: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

2

Presentazione Il linguaggio Java nasce nel 1995 dai programmatori della Sun Microsystem. La sua popolarità è dovuta al fatto che può girare su macchine diverse, ovvero e “Multi piattaforma”, si può usare su Windows, Linux , Mac OS e tanti altri sistemi operativi. La programmazione in java copre molti campi, dalla classica programmazione per computer a quella più compatta per i dispositivi mobili come i cellulari. Java inoltre nasce come linguaggio OOP “Orientato alla Programmazione ad Oggetti”. Gli oggetti Gli oggetti che intendiamo in programmazione sono del tutto simili aglio oggetti che ci circondano nella realtà. Se prendiamo in esame un semplice messaggio che ci mostra il computer, vedremo che:

Page 3: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

3

Editor e Compilatore Bisogna fare la distinzione fondamentale fra Editor e Compilatore.

• Un editor può essere anche il classico Block Notes, il TexPad, il JCreator o qualsiasi altro programma che consente di scrivere testo. Un editor non è Java, e solo con un editor non si può programmare in java.

• Il compilatore invece è quel programma che trasforma il nostro codice, scritto in un editor, in linguaggio macchina e nel caso di java il compilatore e il programma javac che si trova nel jdk. Il compilatore di java trasforma il codice in bitecode.

Page 4: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

4

Jdk e jre Non su tutti i computer è installato java, per esempio Windows XP non lo implementa più. Un’altra distinzione da fare e tra jdk e jre.

• Il jdk è l’insieme dei programmi che servono per poter programmare in java.

• Il jre è solo la virtual machine, ovvero serve solo per vedere i programmi fatti in java.

Page 5: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

5

Per cui se sul vostro computer è installato solo il jre, non potete programmare in java. Trovare il jdk Trovare il jdk è semplice, basta andare sul sito della Sun Microsystem o più semplicemente in un qualsiasi motore di ricerca digitate “download jdk”, e ricordatevi di scaricare sempre la versione più recente. Invece dal laboratorio di ingegneria dovete scaricare il file corejava.zip. Configurare il jdk Se utilizzate Windows, dopo aver scaricato (si trova

Page 6: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

6

anche sui CD-Rom delle riviste di programmazione) il jdk, installatelo seguendo la procedura guidata. Da notare che quando installate il jdk, installate anche automaticamente anche il jre. Dopo l’installazione ciccate col tasto destro su risorse del computer e cliccare sulla voce proprietà.

Page 7: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

7

Nella nuova schermata, selezionare la voce avanzate e cliccare sul pulsante variabili d’ambiente.

Nella sezione variabili di sistema selezionate la voce Path che nell’immagine è evidenziata in rosso.

Page 8: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

8

All’inizio del campo Valore variabile, inserite il percorso del jdk terminante con il “;”, nell’esempio in questione, il percorso è

C:\Programmi\Java\jdk1.5.0_06\bin; Sul vostro computer, la cartella dovrebbe essere quasi la stessa, potrebbero cambiare solo i numeri di versione del jdk, ma l’importante è che il sistema

Page 9: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

9

trovi la cartella bin del jdk. Ed infine cliccate sul pulsante ok

Sempre nella pagina variabili d’ambiente, nella sezione variabili dell’utente cliccate su pulsante Nuovo, (o trovate la voce CLASSPATH se presente e cliccate su Modifica) e nella nuova schermata, alla voce Nome variabile inserite:

CLASSPATH

Mentre nella voce Valore variabile inserite: C:\Programmi\Java\jdk1.5.0_06\lib\corejava.zip

Cliccate su OK e copiate il file corejava.zip nella cartella:

C:\Programmi\Java\jdk1.5.0_06\lib\

Page 10: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

10

Il comando di linea Per compilare e vedere i vostri file java, avrete bisogno di quella piccola applicazione che si chiama CMD, e si trova nella cartella C:\Windows\System32, cercatela e copiatela sul desktop, o nella cartella dove intendete lavorare con i vostri file java.

Compilazione / esecuzione Per compilare i vostri file java, quelli salvati con estensione .java, sarà sufficiente copiare il CMD

Page 11: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

11

nella cartella dove ci sono questi file, aprirlo e digitare:

javac nomedelfile.java

e se l’operazione è andata a buon fine, ovvero se il compilatore non riscontrerà errori, creerà un nuovo file, con estensione .class, ovvero il bitecode.

Per eseguire un’applicazione appena creata o che ci è stata data da un amico, sarà sufficiente copiare il CMD nella cartella dove c’è il file .class, aprirlo e digitare:

java nomedelfile senza applicare nessuna estensione al file .class.

Page 12: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

12

Input e Output Questa è la parte più importante da capire, perché serve per interagire direttamente con l’utente. Immaginate che sul vostro schermo venga stampata la scritta:

inserisci il primo numero

all’ora questo insieme di parole formano l’output, quindi possiamo dire che l’output sono tutte quelle cose che il computer ci mostra sullo schermo, siano parole o immagini, o meglio che il programmatore decide di farci vedere. Se prendiamo in esame un altro esempio che ci chiede di inserire il nostro nome: inserisci il tuo nome ß output Vincenzo ß input Quindi possiamo dire che l’input sono tutte quelle richieste che ci fa il computer, nell’esempio precedente, il computer stampa sullo schermo l’output “inserisci il tuo nome” e richiede come l’input il nostro nome.

Page 13: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

13

Variabili Per spiegare cosa sono le variabili, prendiamo in esame un altro esempio Int x = 3; Int y = 2; Int R = x + y; in questo caso la parola “Int” rappresenta il tipo di variabile, in questo caso rappresenta un numero intero, mentre x, y, R rappresentano le variabili, a cui noi associamo i valori. Tipi di Variabili

Nome da a rappresenta Boolean False True Vero o falso Char Unicode Unicode Tutti i caratteri

della tastiera come testo

String Unicode Unicode Uguale a Char ma migliore

Byte -128 128 Numeri interi Short -2^15 2^15 Numeri interi Int -2^31 2^31 Numeri interi Long -2^63 2^63 Numeri interi Float -IEE754 IEE754 Numeri decimali Double -IEEE754 IEEE754 Numeri decimali BigInteger ------- ------- Numeri grandi

interi

Page 14: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

14

BigDecimal ------- ------- Numeri grandi decimali

File ------- ------- Si usa per le operazioni con i file

Da notare che se impostiamo una variabile di tipo testo, il computer riconoscerà anche i numeri come se fossero solo del testo, per esempio: String x = “3”; String y = “2”; String r = x + y; Allora il valore assegnato a r non sarà la somma dei numeri e quindi uguale a “5”, ma la soma dei caratteri e quindi uguale a “32”. Commenti Il commento non è altro che una semplice annotazione che serve al programmatore per ricordare qualcosa. // Commento su una riga /* Commento Su più Righe */ Da notare che il commento non viene letto dal compilatore, anzi lo ignora.

Page 15: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

15

Librerie Le librerie sono una serie di procedure semplificate, che racchiudono centinaia di funzioni tipo la classica “System.out.println(“”);”, e si richiamano all’inizio della nostra applicazione tramite il comando:

import nomelibreria.*;

l’esempio classico e:

import corejava.*;

Modello di applicazione public class nomedelprogramma { public static void main(String[] args) {

/* qui ci va il codice della nostra applicazione */

} } Possiamo ipotizzare il programma racchiuso in due contenitori, uno dentro l’altro, rappresentati dai simboli { }. Sul primo contenitore, quello esterno viene riportato il nomedelprogramma, che va scritto tutto attaccato, il secondo contenitore, il main, racchiude il codice della nostra applicazione.

Page 16: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

16

Output Se abbiamo intenzione di far visualizzare al computer una scritta o una variabile sullo schermo, dobbiamo utilizzare questo comando: System.out.println(“Testo che vogliamo vedere”); oppure posiamo usare una forma composta: Int x = 3; Int y = 2; Int R = x + y; System.out.println(“R vale = ” + R + “ metri ”); Come si crea un programma Inizieremo creando un semplice programma che visualizza una scritta sullo schermo. Per prima cosa, aprire il Block Notes e scrivi: import corejava.*; public class prova { public static void main(String[] args) { System.out.println("Questa e un’applicazione"); } }

Page 17: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

17

dove import java.util.*; e la libreria che ci serve, prova è il nome del nostro programma. Da ricordare che in java ogni riga deve terminare col “;” eccetto alcune righe predefinite. Ora salviamo il file sul desktop col nome del nostro programma, aggiungendo le virgolette e l’estensione .java:

“prova.java”

Copiamo il CMD sul desktop, apriamolo e scriviamo:

javac prova.java

Page 18: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

18

e se l’operazione è andata a buon fine, ovvero se il compilatore non riscontrerà errori, creerà un nuovo file prova.class, ovvero il bitecode. Per eseguire l’applicazione appena creata è sufficiente aprire il CMD e digitare:

java prova

il risultato dovrebbe essere:

Input Se vogliamo che l’utente inserisca una variabile, numerica o testo, per prima cosa dobbiamo richiamare la libreria corejava dove è contenuta la funzione console:

import corejava.*;

Page 19: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

19

Questa libreria non è di serie in java, ed è una serie di procedure semplificate.Per richiede un input di tipo numerico intero digitiamo:

Int nomedellavariabile = Console.readInt();

Per richiede un input di tipo numerico decimale digitiamo:

Double nomedellavariabile = Console.readDouble();

Per richiede un input di tipo testo digitiamo:

String nomedellavariabile = Console.readString();

Un piccolo esempio di come usare le variabili: import corejava.*; public class prova { public static void main(String[] args) { Int x = Console.readInt("Inserisci il primo numero"); Int y = Console.readInt("Inserisci il secondo numero"); String nome = Console.readString("Inserisci il nome"); //questo è un commento Int R = x + y;

Page 20: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

20

System.out.println("Ciao " + nome “ R = “ + R); } } Condizioni if/else Le parole if e else significano se e altrimenti, ovvero se vogliamo realizzare una condizione potremo usarle in modi diversi: if (variabile1 = variabile2) { //serie di istruzioni} else { //altra serie di istruzioni} Altrimenti se ci sono più condizioni: if (variabile1 > variabile2) { //serie di istruzioni} else if (variabile1< variabile2) { //serie di istruzioni} else if (variabile1= variabile2) { //serie di istruzioni} else { //altra serie di istruzioni} Ogni buon programmatore, prima di usare questa istruzione (anche se converrebbe farlo prima di

Page 21: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

21

creare una qualsiasi applicazione), si crea un flowcart ovvero un albero decisionale:

Esempio di if/else Vi siete mai chiesti come funziona la schermata di Windows quando vi cerca la password? Tutte le applicazioni che cercano un codice o una password

Page 22: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

22

funzionano grazie a una semplice istruzione if/else con quattro righe di codice: import corejava.*; public class esempioif { public static void main(String[] args) { int codice = “123”; //stampa una riga vuota System.out.println(“”); int password = Console.readInt(”Inserisci Password”); if (password == codice) {

System.out.println(”Password corretta”); } else {

System.out.println(”Password non corretta”); } } } Da notare che se avremmo voluto eguagliare due variabili di tipo string con il simbolo == non avremmo avuto come risultato quello che speravamo, perché due stringhe si eguagliano con il comando

variabileString1.equals(variabileString2)

Page 23: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

23

quindi possiamo arrangiare l’esempio di prima per variabili di tipo string: import corejava.*; public class esempioif { public static void main(String[] args) { String codice = “123”; //stampa una riga vuota System.out.println(“”); String password = Console.readString(”Inserisci Password”); if (password.equals(codice)) {

System.out.println(”Password corretta”); } else {

System.out.println(”Password non corretta”); } } } Cicli While Se vogliamo ripetere un’istruzione per un certo numero di volte possiamo utilizzare l’istruzione while. Se ad esempio vogliamo fare una somma per 10 volte scriveremo: import corejava.*; public class eswhile {

Page 24: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

24

int somma = 0; int contatore = 0; int x; while (contatore < 10) { x = Console.readInt(“inserisci numero” + (contatore + 1) + “:”); somma = somma + x; //somma la x precedente con la nuova contatore = contatore + 1; //incrementa il contatore } System.out.println(“La somma è” + somma); } } Cicli For Se vogliamo ripetere un’istruzione per un certo numero di volte possiamo utilizzare l’istruzione for. Se ad esempio vogliamo stampare sullo schermo per n volte la parola ciao scriveremo: for (int i = 1; i <= n; i++) { System.out.println(”Ciao”);}

• L’istruzione int i = 1; definisce una variabile che si chiama i e che vale 1.

• L’istruzione i <= n; imposta che la variabile i deve arrivare ad un numero massimo di n

Page 25: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

25

dove n deve essere un numero intero, esempio 23

• L’istruzione i++ imposta che la variabile i deve aumentare da 1 a n di una unità per volta.

Operazioni con i numeri grandi Le operazioni con i numeri eccessivamente grandi non sono simili a quelle con i numeri piccoli, per esempio se impostiamo ipoteticamente:

BigInteger x = 10000000000000000000000000; BigInteger y = 10000000000000000000000000;

Le operazioni possibili sono

BigInteger R = x.add(y); // R= x + y BigInteger R = x.subtract(y); // R= x - y BigInteger R = x.multiply(y); // R= x * y BigInteger R = x.divide(y); // R= x : y

Le stesse operazioni sono possibili con

BigDecimal Funzioni matematiche Molte volte nelle nostre applicazioni dobbiamo ricorrere a funzioni di tipo matematico o

Page 26: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

26

trigonometrico, queste possono essere utilizzate con Math: Math.sqrt(variabile); //radice quadrata Math.sinvariabile); //seno Math.cos(variabile); //coseno Math.tan(variabile); //tangente Math.atan(variabile); //arco tangente Math.atan2(variabile); Math.exp(variabile); //esponenziale Math.log(variabile); //logaritmo Math.PI; //valore di pigreco Math.E; //valore di e Da notare che con Math bisogna usare variabili di tipo double e la libreria java.math.*; , per esempio Double x = 4; double y = Math.sqrt(x); System.out.println(y); L’alternativa a if/else Molte volte la funzione if/else può risultare scomoda, quando si ha a che fare con delle selezioni multiple che prevedono diverse alternative, in questo caso possiamo utilizzare il comando switch associato a case n, per esempio: import corejava.*; public class esempioswitch { public static void main(String[] args) {

Page 27: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

27

System.out.println(“scegli l’opzione”); Int scelta = Console.readInt(“”); switch (scelta) { CASE 1;

System.out.println(”hai scelto l’opzione 1”); Break; //chiude l’istruzione

CASE 2; System.out.println(”hai scelto l’opzione 2”); Break; //chiude l’istruzione

CASE 3; System.out.println(”hai scelto l’opzione 3”); Break; //chiude l’istruzione

} } } Per scrivere su un file Se vogliamo salvare una variabile o una stringa su un file dobbiamo includere la libreria java.io.*; e ricordarci di inserire le parole Throws IOException al contenitore Main, nell’esempio viene salvata la variabile testo come testo scritto nel file filediuscita.txt: import java.util.*; public class esempiotxt { public static void main(String[]args)Throws IOException {

File FileOutput = new File(“filediuscita.txt”); File Writer out = new FileWriter(FileOutput);

Page 28: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

28

String testo = “Testo scritto nel file”;

out.write(testo); out.close();

} } Info di sistema Molte volte abbiamo la necessità di richiamare delle informazioni di sistema, come la versione del sistema operativo o il nome dell’utente che lo sta utilizzando. Per farlo possiamo impostare una variabile di tipo string a ricevere queste informazioni. String variabile = System.getProperty(“tipo.info”); System.out.println(variabile); Una tabbella riassuntiva dei richiami possibili:

tipo info richiamo File.separator Simbolo utilizzato come separatore Java.class.path Percorso di classe Java.class.version Versione della classe Java.home Cartella dov’è installato java Java.vendor Nome del produttore Java.vendor.url Indirizzo URL del produttore Java.version Versione di java Line.separator Separatore di riga Os.arch Architettura del Sistema Operativo

Page 29: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

29

Os.name Nome del Sistema Operativo Os.version Versione del Sistema Operativo Path.separator Separatore utilizzato nelle stringhe User.dir Cartella di lavoro corrente User.name Nome dell’utente User.home Cartella dell’utente Classi In un’applicazione possiamo creare più classi o richiamare classi esterne e farle interagire fra di loro. Se ipotizziamo una classe principale che per fare x + y ha bisogno di una istruzione contenuta in un’altra classe:

Se ipotizziamo una classe principale classe1:

Page 30: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

30

public class classe1 { public static void main(String[] args) {

/* qui ci va il codice della nostra prima classe */

} } E una seconda classe scritta nello stesso file: class classe2 { Public String richiama_funzione; public void funzione() {

/* qui ci va il codice della nostra seconda classe */

} } Per richiamare nella classe1 la funzione funzione() descritta nella classe1, abbiamo bisogno della variabile “Public String richiama_funzione;” che viene descritta nella classe2. Nella classe principale classe1, per richiamare la funzione funzione(), bisognerà richiamare prima la classe2 e dopo la variabile di richiamo : Classe2 richiama_funzione = new classe2(); richiama_funzione.funzione();

Page 31: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

31

Se invece vogliamo richiamare una funzione descritta in un altro file di classe, basterà aggiungere il nome del file fra le librerie import nomedelfile.*; e richiamare la funzione come precedentemente descritto. Un breve esempio di questo utilizzo è il seguente: import java.util.*; import corejava.*; public class scrittura { public static void main(String[] args) {

System.out.println("Inserisci il tuo nome"); System.out.println(“”); classe2 richiamo_dati = new classe2(); richiamo_dati.dati(); } } class classe2 { public String richiamo_dati; public void dati() { String nome = Console.readString(“”); System.out.println(); System.out.println("Ciao " + nome); } }

Page 32: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

32

Vettori Se ipotizziamo di avere numero elevato di variabili, e di dover associare a ognuna di queste un valore, sarebbe troppo complesso e faticoso dover dichiararle tutte e poi richiederne l’inserimento una per volta, per cui un modo veloce e semplice è quello di utilizzare i vettori o array lineari. Possiamo quindi ipotizzare un vettore come l’insieme di coordinate in maniera indefinita, per esempio un vettore V sarebbe costituito da n coordinate chiamate celle, V[n] ovvero V[2,3,5,3,6,3,67,2,4,2,4]. Un vettore si dichiara:

Int[] nomedelvettore = new int[numerodicelle]; per scrive in una cella del vettore un determinato valore si usa:

nomedelvettore[cella] = valoredaattribuire; per leggere le informazioni contenute in una cella del vettore si deve dichiarare una variabile che prenderà il valore della cella:

int nomevariabile = nomedelvettore[cella];

Un breve esempio di questo utilizzo è il seguente:

Page 33: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

33

import corejava.*; public class vettore { public static void main(String[] args) { //creiamo un nuovo vettore di 10 celle int[] vettore = new int[10]; //chiediamo all’utente di inserire i valori di ogni cella for(int i = 0; i < vettore.length; i++) { vettore[i] = Console.readInt("inserisci il valore numero " + (i+1)+" --> "); } //leggiamo il contenuto delle celle del vettore System.out.print("il vettore e' [ " + vettore); for ( int i = 0; i < vettore.length ; i++) { System.out.print(vettore[i] + " "); } System.out.println(" ]"); } }

Page 34: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

34

Array Se vogliamo costruire un array, ovvero una matrice, dobbiamo immaginare di avere a che fare con più vettori, uno sopra l’altro, ma dichiarane solo uno, ed invece di sfruttare solo rughe, sfruttare anche le colonne. Possiamo quindi ipotizzare una matrice M costituita da r celle per un numero c di colonne, M[r][c] ovvero

M [2,3,5,3,6] [7,2,4,2,4] [3,6,3,2,4]

Una matrice si dichiara similmente a un vettore:

Int[][] nomematrice = new int[righe][colonne]; per scrive in una cella della matrice un determinato valore si usa, bisogna sempre tener conto che in una matrice una singola cella ha delle coordinate [r,c] :

nomematrice[r][c] = valoredaattribuire; per leggere le informazioni contenute in una cella della matrice si deve dichiarare una variabile che prenderà il valore della cella:

int nomevariabile = nomematrice[r][c];

Page 35: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

35

Un breve esempio di questo utilizzo è il seguente: import corejava.*; public class matrice { public static void main(String[] args) { //dimensionamento matrice int righe = Console.readInt("Quante righe ha la matrice? "); System.out.println(""); int colonne = Console.readInt("Quante colonne ha la matrice? "); //dichiarazione matrice int[][] matrice = new int[righe][colonne]; //immissione valori celle for(int j = 0; j < colonne; j++) { for(int i = 0; i < righe; i++) { matrice[i][j] = Console.readInt("inserisci il valore numero [" + (i+1) + "," + (j+1) + "] --> "); } } //lettura celle della matrice System.out.println("la matrice e'"); System.out.println(""); for(int j = 0; j < colonne; j++) { for ( int i = 0; I < righe; i++) {

System.out.print(matrice[i][j] + "\t"); } System.out.println(""); }

Page 36: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

36

} } Conversioni Se abbiamo una variabile di tipo String, e vogliamo convertirla in un’altra variabile di tipo Int o Double, o vogliamo fare l’inverso, la procedura si può spiegare attraverso due esempi, il primo che va da String à Int e Double: class conversione { public static void main(String[] args) { String testo = "25"; //questo la tasforma in int int i = Integer.valueOf(testo).intValue(); //questo la tasforma in double double j = Double.valueOf(testo).doubleValue(); } } il secondo ivece che va da Int à String: class conversione { public static void main(String[] args) { int numero = 22; //questo la tasforma in string String s = String.valueOf(numero); } }

Page 37: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

37

Da notare che la stessa cosa si può fare passando da Double à String cambiando solo il tipo di variabile. Timer Se volete che un’ istruzione si avvii solo dopo un certo numero di secondi, è possibile vedere tale funzione tramite un semplice esempio: import java.util.*; public class sveglia { Timer timer; public tempo(int ritardo) { timer = new Timer(); timer.schedule(new Operazione(), ritardo*1000); } class Operazione extends TimerTask {

public void run() {

System.out.println("Svegliati sono passati 10 sec"); timer.cancel();

} } public static void main(String[] args) { //il 10 indica il numero di secondi da far attendere

new tempo(10); } }

Page 38: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

38

Ascii Se si vuole conoscere il codice ASCII relativo a una determinata stringa, si può scrivere:

char carattere = 'A'; int charVal = carattere;

System.out.println(charVal);

inversamente, se si dispone del codice ASCII e si vuole ricondurre alla stringa corrispondente: int numero = 125; char aChar = (char)numero; System.out.println(aChar); Trucchi

Per verificare se un numero è pari, si usa If(variabileInt%2=0) {//istruzioni}

Il simbolo AND si indica con &&, mentre il simbolo diverso da si indica con !=

La tabulazione si esegue con il simbolo \t esempio: System.out.println(“\t testo”);

Page 39: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

39

Se vogliamo sostituire una lettera di una stringa, possiamo farlo riferendoci a questo esempio: import corejava.*; class sostituzione { public static void main(String[] args) { String parolainiziale = Console.readString ("inserisci parola"); StringBuffer testo = new StringBuffer(parolainiziale); /* il 2 rappresenta la posizione della lettera da sostituire, mentre la lettera che sta sta i due apostrofi '' indica la nuova lettera */ testo.setCharAt(2,'x'); System.out.println(testo); } }

Le celle di una matrice o di un vettore non per forza devono contenere valori di tipo int, se vogliamo che contengano valori di tipo String basta scrivere:

String[][] nomematrice = new String[righe][colonne];

se invece vogliamo che contengano valori di tipo double basta scrivere:

double[][] nomematrice = new double[righe][colonne];

la stessa cosa vale anche per i vettori, basta togliere un [ ].

Page 40: Il manuale per la facoltà di ingegneriaangelsite.altervista.org/Software/manuale_java_ingegneria.pdf · Jdk e jre Non su tutti i computer è installato java, per esempio Windows

40

Note Se volete utilizzare un buon editor che funge anche da compilatore e runnig, uno buono è il JCreator, da fare molta attenzione perché alcuni degli esempi che sono in questo manuale sono testati con il jdk1.5.0_06 e non e certo il loro funzionamento se il vostro jdk è più vecchio. Al momento che scrivo, il la versione di java disponibile è: