Menu Principale

CB Login

CB Workflows

CB Online

No
Benvenuto, Ospite
Per favore Accedi o Registrati.    Password dimenticata?

Lezioni di Programmazione
(1 Online) (1) Ospite
Vai a fine paginaPagina: 1
ARGOMENTO: Lezioni di Programmazione
#24
Lezioni di Programmazione 3 Anni, 5 Mesi fa Karma: 0
Prima di cominciare vorrei ringraziare pubblicamente Luca che mi ha permesso di avere questo spazio.

Questo corso di programmazione ? rivolto soprattutto a "principianti", non sono richieste conoscenze particolari per seguire questo corso, ma conoscere qualche base di programmazione rende pi? comprensibili le lezioni che vi somministrer?. Il linguaggio che user? per questo corso sar? Java. Molti di voi conosceranno Java per le applet che si trovano su internet o per i giochi dei telefonini, ma fidatevi Java ? molto di pi?! E' un linguaggio potente, ben strutturato, ben documentato e con una vasta community alle spalle. In pi?, per motivi che vi spiegher? in seguito, ? totalmente indipendente dal tipo di sistema operativo che usate! Per molti forse ci? non significa assolutamente nulla, ma se per curiosit? o per altri motivi vi siete avvicinati al mondo dei sistemi Unix capirete l'importanza di questo fatto. Un altro motivo per cui ho scelto di presentarvi Java ? per il fatto di essere Object Oriented. A questo punto voi mi direte: "che accidenti significa"? Significa che non vi troverete a manipolare funzioni (come in C, in Pascal o in BASIC per chi ha avuto esperienze in questo senso), ma oggetti (chiamate in gergo "classi"). Questo ? un gran passo avanti dato che permette di dare una migliore rappresentazione della realt?, una maggiore comprensibilit? e una maggiore strutturazione del codice.
Cercher? di somministrarvi queste lezioni "per gradi" seguendo questo ordine:

* panoramica sul linguaggio Java e realizzazione di un piccolo programma "hello world"
* definizione di metodi e classi
* tipi di dato primitivi
* istruzioni condizionali e di ciclo
* gli array
* la gestione delle eccezioni
* input/output e files
* semplici strutture dati
* l'ereditariet?
* panoramica sulle funzioni di libreria
* le classi astratte e le interfacce

Per seguire questo corso vi consiglio vivamente di procurarvi un compilatore Java (Java Developement Kit), lo potete scaricare gratuitamente dal sito della Sun Microsystem all'indirizzo [url:3ut1d5hr]java.sun.com/javase/downloads/index.jsp[/url] vi consiglio vivamente di scaricare JDK 5.0 (sul sito trovate la versione con NetBeans e quella senza NetBeans, vi consiglio la seconda) ? un download un p? pesante per chi (come me) usa il 56k ma vi assicuro che ne vale la pena (speriamo che sia disponibile al pi? presto il "wi-fi" in zona!).
Per scrivere il codice si pu? tranquillamente usare il blocco note, ma vi consiglio di scaricarvi un IDE (Integrated Developement Environment), per il momento vi consiglio di scaricarvi gratuitamente JCreator LE (la versione PRO ? a pagamento) dall'indirizzo [url:3ut1d5hr]www.jcreator.com/download.htm[/url] che ? un buon compromesso tra facilit? di utilizzo (e di scaricabilit? 3ut1d5hr]www.eclipse.org/downloads/[/url] ma sappiate che non ? immediato come JCreator pur essendo molto pi? potente (io personalmente usavo JCreator, da quando ho imparato ad usare Eclipse non l'ho pi? toccato).

Le lezioni verrano scritte su questo stesso topic e la cadenza delle lezioni sar? (compatibilmente con le mie esigenze) settimanale, per qualsiasi problema contattatemi o aprite un topic in questa sezione.

Enjoy
elessar
Gold Boarder
Messaggi: 172
graph
Utente Offline Premere per visualizzare il Profilo di questo Utente
L'Amministratore ha disattivato l'accesso in scrittura al pubblico.
"... Il cristallo era, per i Silmaril, null'altro che ciò che il corpo è per i figli di Ilùvatar: la dimora del suo fuoco interiore, che è in esso e insieme in ogni parte di esso, e che ne costituisce la vita."
 
#25
Re: Lezioni di Programmazione 3 Anni, 5 Mesi fa Karma: 0
Prima di cominciare vorrei ringraziare pubblicamente Luca che mi ha permesso di avere questo spazio.
ci mancherebbe spazio alla buona volonta e alla conoscenza credo in questo forum e se ci credete con me far? passi da gigante!
grazie a te e buon lavoro Professor Elessar
firstbyte
Amministratore
Messaggi: 156
graphgraph
Utente Offline Premere per visualizzare il Profilo di questo Utente
Sesso: Maschio lab@firstbyte.org Compleanno: 07/12
L'Amministratore ha disattivato l'accesso in scrittura al pubblico.
 
#28
Re: Lezioni di Programmazione 3 Anni, 5 Mesi fa Karma: 0
Panoramica su Java e realizzazione di un semplice programma

Ho scritto sul post di introduzione che java ? un linguaggio indipendente dal sistema operativo con cui si sta lavorando (in gergo viene chiamata "portatilit?"). Quindi che voi usiate Linux o Windows ? del tutto indifferente. La stragrande maggioranza di voi ? abituata a pensare ad un programma eseguibile come ad un file .exe, questo file ha la particolarit? di avere al proprio interno del "codice" che la macchina pu? interpretare ed eseguire direttamente. Quando compilate un file .java, per esempio Prova.java, ottenete un file .class, per esempio Prova.class. Quest'ultimo ? il programma vero e proprio (l'equivalente del .exe classico), ma il computer non ? in grado di eseguirlo come un normale file .exe. Proprio questo fa s? che il file eseguibile (in genere) si possa usare indifferentemente su sistemi operativi diversi. Ci? ? possibile grazie all'utilizzo di una macchina virtuale. Questo ? un programma che trasforma il vostro computer... in un altro computer! Per esempio una macchina virtuale vi permette di usare Linux contemporaneamente a Windows (o viceversa). Java ha in s? una macchina virtuale che si chiama Java Virtual Machine (JVM) che permette di eseguire i file .class. Infatti solo la JVM ? in grado di interpretare le istruzioni contenute nei file java compilati, quindi il codice del .class ? totalmente indipendente dal sistema operativo dato che Java (e quindi la JVM) ? disponibile per tutti i sistemi operativi.

Java ? un linguaggio orientato agli oggetti, ci? significa che l'enfasi ? sugli oggetti, che sono anche chiamati classi. Nella maggior parte dei programmi Java non si fa altro che manipolare le propriet? degli oggetti. Potete pensare ad un oggetto come ad una scatola nera con delle manopole per regolare le sue caratteristiche. Per esempio l'oggetto "radio" ha la manopola per regolare la propriet? "volume". Queste manopole sono chiamate metodi e sono le funzioni che accedono e manipolano le propriet? della classe. Questo discorso ora vi sembrer? un p? strano (accadde cos? anche per me la prima volta...) ma vi risulter? pi? chiaro tra qualche lezione.

Ora veniamo all'atto pratico. Se non intendete usare JCreator o Eclipse o un qualsiasi IDE vi consiglio di fare queste operazioni perch? dovrete fare tutto da riga di comando.
Vi consiglio di settare la directory "bin" della cartella dove risiede fisicamente java nella variabile PATH. Per Windows XP si pu? procedere in questo modo: aprite "Risorse del Computer", cliccate con il tasto destro e andate su "Propriet?", vi si aprir? una finestra con delle linguette e andate su "Avanzate", poi cliccate in basso dove c'? scritto "Variabili d'ambiente". L? si aprir? una nuova finestra con due riquadri, su quello inferiore c'? una voce chiamata "Path" modificatela aggiungendo ";" seguito dalla directory del Java Developement Kit con aggiunto "\bin" (per esempio sul mio computer dovrei aggiungere ";C:\Programmi\Java\jdk1.5.0_06\bin" e fate attenzione a non mettere jre invece di jdk dato che jre non ha il compilatore), poi premete su "ok".

La struttura base di una classe Java ? la seguente:

//dichiarazione di classe
public class MiaClasse {
public void metodo() {
//codice del metodo
}

public void altroMetodo() {
//codice del metodo
}

//commento
/*commento
su pi? righe*/
}

ogni istruzione ? seguita da un ";"

Per convenzione, si usa iniziare con la lettera maiuscola il nome di una classe (per esempio "MiaClasse"), mentre si usa far cominciare con la lettera minuscola il nome di un metodo (per esempio "altroMetodo"), il nome del file dovr? essere lo stesso della classe "public", quindi in questo caso il file sarebbe dovuto essere salvato come "MiaClasse.java".

Ora senza soffermarci troppo sul significato delle varie "public" e "void" (avremo tempo di esaminarle pi? approfonditamente nelle prossime lezioni) vi mostrer? il come fare un semplice programma che stampa la frase "Hello World!" (eheh un classico dell'informatica )

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

Salvate il file come HelloWorld.java, compilatelo ed eseguitelo
Per chi volesse cimentarsi con la riga di comando, aprite il prompt del dos e andate nella cartella dove avete salvato HelloWorld.java e scrivete

javac HelloWorld.java
per compilarlo e una volta compilato eseguitelo con

java HelloWorld

(se scrivete HelloWorld.class d? errore)
Quindi ricapitolando il comando per compilare da riga di comando ? "javac", quello per eseguire il programma ? "java".

Alla prossima lezione!
elessar
Gold Boarder
Messaggi: 172
graph
Utente Offline Premere per visualizzare il Profilo di questo Utente
L'Amministratore ha disattivato l'accesso in scrittura al pubblico.
"... Il cristallo era, per i Silmaril, null'altro che ciò che il corpo è per i figli di Ilùvatar: la dimora del suo fuoco interiore, che è in esso e insieme in ogni parte di esso, e che ne costituisce la vita."
 
#45
Re: Lezioni di Programmazione 3 Anni, 5 Mesi fa Karma: 0
Definizione di metodi e classi

Come avete potuto notare nella lezione precedente, c'? una stretta correlazione tra il concetto di ?oggetto? e il concetto di ?classe?, infatti in Java sussiste la relazione

classe = oggetto

Ogni oggetto (o classe che dir si voglia) pu? avere delle propriet?. Per esempio si pu? definire l'oggetto ?Libro? con le propriet? ?titolo? e ?autore?. Programmare ad oggetti semplifica notevolmente la rappresentazione del mondo reale e permette di scrivere il codice in maniera pi? ordinata e leggibile. Nella scorsa lezione si era accennato ai metodi delle classi che sono delle funzioni che servono a manipolare l'oggetto. Per rendere l'idea si era fatto l'esempio della manopola che regolava il volume della radio. La realt? non si distacca molto da ci? che ? il linguaggio Java. Infatti i metodi manipolano le propriet? della classe.
Se dovessimo descrivere in Java l'oggetto ?Libro?, la classe corrispondente somiglierebbe a questa:


public class Libro {
//propriet? autore
private String autore;

//propriet? titolo
private String titolo;

//costruttore
public Libro(String lAutore, String ilTitolo) {
autore = lAutore;
titolo = ilTitolo;
}

//questi sono alcuni possibili metodi
public String getAutore() {
return autore;
}

public String getTitolo() {
return titolo;
}

public void setAutore(String lAutore) {
autore = lAutore;
}

public void setTitolo(String ilTitolo) {
titolo = ilTitolo;
}

//esempio di metodo statico
public static void stampaLibro(Libro l) {
System.out.println(?il titolo del libro ?: ? + l.getTitolo() + ? e l'autore ? ? + l.getAutore());
}
}

(non provate ad eseguirlo, se non c'? un metodo ?main? non si pu?... questa classe si pu? vedere come una ?libreria? fatta da voi)

Questo ? un esempio molto istruttivo per spiegare come si dichiarano e come si usano classi e metodi, ma procediamo per gradi. La classe viene dichiarata in questo modo:

tipoDiAccesso class NomeClasse

Nel nostro caso il tipoDiAccesso ? ?public?, mentre il NomeClasse ? ?Libro? (ricordo che se una classe viene dichiarata public, il file che la contiene deve chiamarsi con lo stesso nome della classe).

All'interno della classe abbiamo dichiarato 2 variabili, le propriet? dell'oggetto ?Libro? e le abbiamo dichiarate in questo modo:

tipoDiAccesso tipo nomeVariabile;

Nel nostro caso il tipoDiAccesso ? ?private?, mentre il tipo ? ?String? (String ? una classe Java predefinita che rappresenta le stringhe di testo, ve ne parler? pi? avanti).

Per manipolare le propriet? abbiamo dichiarato dei metodi in questo modo:


tipoDiAccesso tipoRisultato nomeMetodo(parametriFormali) {
//corpo del metodo
}

per il tipoDiAccesso vale quanto detto prima, il tipoRisultato ? il tipo del risultato restituito oppure void se il metodo non restituisce risultati. Infatti un metodo pu? anche non restituire nessun risultato, per esempio il metodo setAutore(String lAutore) non restituisce nulla, l'unica cosa che fa ? modificare l'attributo ?autore? della classe ?Libro?. Al contrario il metodo getAutore() restituisce una stringa che contiene il nome dell'autore del libro. I parametriFormali sono una lista di parametri separati da una virgola, ogni parametro dovr? essere descritto con tipo e nome (nel nostro caso per esempio abbiamo String lAutore). I metodi che non sono void richiedono l'utilizzo di un ?return? che ci dice ci? che il metodo deve restituire e deve essere dello stesso tipo di quanto dichiarato sulla dichiarazione (anche chiamata segnatura) del metodo. I metodi dichiarati in questo modo vanno invocati sugli oggetti della classe. Mi spiego meglio: per applicare il metodo getAutore() bisogna avere un oggetto Libro ?inizializzato?. Per creare (ed inizializzare) gli oggetti si usano i costruttori, che sono dei metodi che non hanno un tipo di ritorno ed hanno lo stesso nome della classe. Nella nostra classe il costruttore di Libro prende due parametri e li assegna alle sue propriet?. Per creare un oggetto libro si deve usare la parola chiave ?new? in questo modo:

Libro l = new Libro(?Dante Alighieri?, ?La divina commedia?);

ci? significa che ora esiste un oggetto Libro assegnato alla variabile ?l? di tipo Libro (pi? avanti formalizzer? l'assegnazione delle variabili) con le propriet? ?autore? e ?titolo? settate come ?Dante Alighieri? e ?La divina commedia?.
Se ora si vogliono ricavare dall'oggetto Libro che abbiamo creato con i metodi che abbiamo dichiarato sopra non dobbiamo fare altro che mettere il nome della variabile seguita da un ?.? seguita dal metodo che vogliamo invocare sull'oggetto:

String aut = l.getAutore();

ora in aut ci sar? ?Dante Alighieri?.

Nell'esempio che vi ho proposto l'ultimo metodo ? un metodo statico. Ci? significa che tale metodo non ha bisogno di un oggetto di invocazione (i metodi visti prima andavano invocati sulla variabile riferita all'oggetto creato) ed ? assimilabile ad una semplice funzione (chi conosce un p? di C capir? meglio cosa vuol dire). Per invocare i metodi statici si deve usare il nome della classe in questo modo:

Libro.stampaLibro(l);

produrr? in output ?il titolo del libro ?: La divina commedia e l'autore ? Dante Alighieri?.

Se ora provate a scrivere il listato della classe Libro in un file Libro.java, provate ora a scrivere nella stessa directory un file che utilizza la classe Libro.

public class MainLibro {
public static void main(String[] args) {
Libro libro1 = new Libro(?Alessandro Manzoni?, ?I Promessi Sposi?);
Libro libro2 = new Libro(?J.R.R. Tolkien?, ?La Divina Commedia?);
Libro.stampaLibro(libro1);
String titoloSbagliato = libro2.getTitolo();
System.out.println(titoloSbagliato);

//modifico il titolo a libro2
libro2.setTitolo(?Il Signore degli Anelli?);
Libro.stampaLibro(libro2);
}
}

Se avete scritto bene tutto, quando andate ad eseguirlo dovreste avere in output:

il titolo del libro ?: I Promessi Sposi e l'autore ? Alessandro Manzoni
La Divina Commedia
il titolo del libro ?: Il Signore degli Anelli e l'autore ? J.R.R. Tolkien

Vi ricordo che Java ? ?case sensitive?, ci? significa che distingue tra maiuscole e minuscole, quindi ?ALBERO? ? diverso da ?albero?, ? diverso da ?Albero?, ? diverso da ?alBEro? e cos? via.

Nella prossima lezione vi illustrer? la classe String con le sue funzioni principali.
elessar
Gold Boarder
Messaggi: 172
graph
Utente Offline Premere per visualizzare il Profilo di questo Utente
L'Amministratore ha disattivato l'accesso in scrittura al pubblico.
"... Il cristallo era, per i Silmaril, null'altro che ciò che il corpo è per i figli di Ilùvatar: la dimora del suo fuoco interiore, che è in esso e insieme in ogni parte di esso, e che ne costituisce la vita."
 
#107
Re: Lezioni di Programmazione 3 Anni, 5 Mesi fa Karma: 0
La classe String

Per farvi vedere come funzionano le classi in java vi far? vedere la classe predefinita String per manipolare per l?appunto stringhe di testo. Vi faccio notare che la stringa di testo non ? un tipo predefinito, bens? ? costruita con il tipo predefinito char, ma nella prossima lezione vi sar? pi? chiaro. Chi ha un po? di esperienza con C, sa quanto scomodo sia trattare le stringhe come array di singoli caratteri, in java le stringhe sono estremamente pi? facili da manipolare quindi stia tranquillo. Le stringhe vanno sempre dichiarate tra apici o chiamando il costruttore della classe String.
Esempio:

String stringa = ?questa ? una stringa?;

oppure chiamando il costruttore:

String stringa = new String(?questa ? una stringa?);

I due modi producono lo stesso risultato quindi potete usarli indifferentemente, io preferisco usare il primo per brevit?.
Il primo metodo che passo ad esaminare ? il metodo toUpperCase(), trasforma tutti i caratteri della stringa in minuscolo. Per esempio:

String testo = ?FoRZA SeMPreviSA?;
testo.toLowerCase();


ora la stringa sar? diventata ?forza semprevisa?.

Simile a toLowerCase() ? il metodo toUpperCase() che fa la cosa opposta, ovvero, data una stringa trasforma tutti i caratteri in maiuscolo. Per esempio:

String testo = ?FoRZA SeMPreviSA?;
testo.toUpperCase();


ora la stringa sar? diventata ?FORZA SEMPREVISA?.

Un altro metodo interessante ? concat(String altraStringa) che concatena la stringa altraStringa all?oggetto String su cui viene invocato. Per esempio:
String testo = ?ciao?;
String testoDaAggiungere(?!!!?);
testo.concat(testoDaAggiungere);


ora la stringa testo conterr? ?ciao!!!?. Lo stesso effetto si pu? ottenere usando ?+? come nell?esempio:

String testo ?ciao ? + ?come stai??;

Un metodo utile ? length() che restituisce un numero intero che contiene il numero di caratteri (spazi bianchi compresi? per chi non lo sapesse lo spazio bianco ? a tutti gli effetti un carattere):
String s = ?ciao?;
int quantiCaratteri = s.length();


quantiCaratteri sar? uguale a 4.

Un altro metodo importante ? quello per ottenere una sottostringa (una parte della stringa di partenza) ed ? substring(int indiceIniziale, int indiceFinale) dove indiceIniziale ? il carattere da cui si vuole partire e indiceFinale ? il carattere finale della sottostringa. Qui per? occorre fare una precisazione, gli indici cominciano da 0 e non da 1 (come ? pratica comune in moltissimi linguaggi di programmazione), quindi il primo carattere avr? come indice 0 e l?ultimo carattere della stringa avr? come indice la lunghezza della stringa meno 1. Per esempio nella stringa ?ciao? l?indice di ?c? ? 0, mentre l?indirizzo di ?o? ? 3. Per esempio:

String stringa = ?l?italia ? campione del mondo?;
String sottoStringa = stringa.substring(5, ;


sottoStringa varr? ?lia? e contiene i caratteri con indici 5, 6 e 7. Il metodo substring() si pu? usare anche dando solo un indice che corrisponde a quello dell?indice iniziale, l?operazione che svolger? sar? calcolare la sottostringa che parte dall?indice iniziale fino alla fine della stringa.

Un metodo molto importante (e come vedremo in seguito non ? applicabile solo alla classe String) ? quello che vedremo nell?esempio:

String stringa = ?prova?;
boolean uguali = stringa.equals(?prova?);


il metodo equals controlla se le due stringhe sono uguali e restituisce un valore booleano quindi true in caso di vero, false in caso di falso. Ricordo che java distingue tra maiuscole e minuscole, se stringa la confrontiamo con ?ProvA? il risultato sar? false.

Ora segue un piccolo programmino che potrete eseguire che fa uso delle funzioni viste:

// file Stringhe.java
public class Stringhe {
public static void main(String[] args) {
String stringa1 = ?prova?;
String stringa2 = ?provetta?;
String stringa3 = ?caramella?;
System.out.println(?la lunghezza di ? + stringa2 + ? ? ? + stringa2.length());
System.out.println(stringa1.substring(0, 4));
System.out.println(stringa3.toUpperCase());
System.out.println(stringa1.substring(0, 4).equals(stringa2.substring(0, 4)));
}
}



Alla prossima lezione........

mi scuso per non aver postato la lezione prima di oggi, ma ho avuto molti problemi fisici e personali in questi giorni per cui non ho avuto il tempo di prepararla prima
elessar
Gold Boarder
Messaggi: 172
graph
Utente Offline Premere per visualizzare il Profilo di questo Utente
L'Amministratore ha disattivato l'accesso in scrittura al pubblico.
"... Il cristallo era, per i Silmaril, null'altro che ciò che il corpo è per i figli di Ilùvatar: la dimora del suo fuoco interiore, che è in esso e insieme in ogni parte di esso, e che ne costituisce la vita."
 
#129
Re: Lezioni di Programmazione 3 Anni, 4 Mesi fa Karma: 0
I tipi di dato primitivi (parte 1)

I tipi di dato primitivi innanzi tutto non sono classi come la classe String che vi ho presentato la scorsa lezione. Infatti sono delle rappresentazioni ?costruite dentro? java (o se preferite ?built-in?), a differenza di String che ? una classe di ?libreria?.
I tipi di dato primitivi riguardano principalmente la rappresentazione dei numeri, ma ci sono anche le importanti eccezioni dei dati booleani (i valori di verit? true e false) e del tipo di dati che rappresenta i singoli caratteri (che la classe String usa per rappresentare le stringhe di testo).
Cominceremo questa carrellata dai dati numerici, che sono in numero di 6: int, short, long, byte, double e float. I primi 4 tipi sono delle diverse rappresentazioni dei numeri interi (senza virgola), mentre gli ultimi 2 sono rappresentazioni dei numeri reali (con la virgola). Ci? che cambia principalmente ? la dimensione della rappresentazione, ma a breve sar? tutto pi? chiaro.

Il tipo int ? una rappresentazione a 32 bit (4 byte) dei numeri interi, ci? ci permette di rappresentare tutti i numeri interi nell?intervallo [-2^31; 2^31 ? 1] (dove con 2^31 si intende ?2 elevato alla 31?), ci? significa che con int possiamo esprimere la bellezza di circa 4 miliardi di valori.

Il tipo short ? una rappresentazione a 16 bit (2 byte) dei numeri interi, ci? ci permette di rappresentare tutti i numeri interi nell?intervallo [-2^15; 2^15 ? 1] = [-32768; 32767].

Il tipo long ? una rappresentazione a 64 bit (8 byte) dei numeri interi, ci? ci permette di rappresentare tutti i numeri interi nell?intervallo [-2^63; 2^63 ? 1].

Il tipo byte ? una rappresentazione a 8 bit (1 byte) dei numeri interi, ci? ci permette di rappresentare tutti i numeri interi nell?intervallo [-2^7; 2^7 ? 1] = [-128; 127].

La scelta del tipo di dato per rappresentare i numeri interi dipende dal tipo di utilizzo che se ne fa, ? inutile sprecare 8 byte per usare long se non ci serve svariare in un range cos? ampio di valori. In genere int va bene per quasi tutte le applicazioni. Accanto alle operazioni canoniche (+, -, *, /) si affianca il calcolo del resto ?%? (voi mi direte: ?a che serve?? e io vi rispondo: ?serve, serve??), per esempio per calcolare il resto della divisione 14/3 si pu? usare il seguente codice:

int resto = 14 % 3;

resto varr? 2.

Ora passeremo in rassegna i tipi di dato per la rappresentazione dei numeri reali.

Il tipo float ? una rappresentazione a 32 bit dei numeri reali positivi e negativi, il minimo valore assoluto esprimibile con float ? dell?ordine di 10^(-38) e il massimo valore assoluto ? dell?ordine di 10^38. La precisione di questo tipo di dato ? dell?ordine delle 7 cifre decimali.

Il tipo double ? una rappresentazione a 64 bit dei numeri reali positivi e negativi, il minimo valore assoluto esprimibile con double ? dell?ordine di 10^(-308) e il massimo valore assoluto ? dell?ordine di 10^308. La precisione di questo tipo di dato ? dell?ordine delle 15 cifre decimali.

I tipi di dato che rappresentano i reali non hanno l?operazione del calcolo del resto e possono essere rappresentate in notazione scientifica (per esempio 3.14 pu? essere rappresentato in notazione scientifica usando il tipo float come 314E-2f ma in questo corso non ne faremo uso).

Per ci? che ci riguarda, useremo i numeri reali allo stesso modo di come useremo gli interi, quindi ci? che vedremo per gli interi sar? vero anche per i reali (quando non lo sar? lo far? notare).


Ora vi presento i tipo di dati boolean che rappresenta 2 valori: true per il valore vero, false per il valore falso. La sua dimensione ? di 1 bit e gli operatori sono 3: && (and) che realizza l?and logico (il risultato ? true se e solo se gli operatori sono true, altrimenti il risultato ? false), || (or) che realizza l?or logico (il risultato ? false se e solo se gli operatori sono entrambi false, altrimenti true) e ! (not) che realizza il not logico della variabile booleana (se la variabile vale true, allora il risultato sar? false e viceversa). Ripeto, gli unici valori possibili sono 2: true e false.

Il tipo di dati che rappresenta i caratteri ? char (a chi conosce C/C++ suoner? familiare). I valori possibili sono oltre 64000 e viene seguito lo standard Unicode ( http://www.unicode.org per chi vuol saperne di pi?) che fa corrispondere dei caratteri alfabetici ai numeri.
Il modo pi? semplice di dichiarare una variabile di tipo char ? tramite gli apici ? ? (diversamente da come si fa per le stringhe che usano apici doppi):

char carattere = ?c?;


Per quanto riguarda i numerici, ci sono molte operazioni gi? predefinite nelle librerie java nella classe Math, per esempio per calcolare la radice quadrata si pu? usare:

int rad = Math.sqrt(159.4);

Ci sono altre operazioni utili (come logaritmi, calcolo di valori assoluti, esponenziali?) per cui vi invito a guardare la documentazione.

In java sono molto frequenti le operazioni di incremento di una variabile e come in C ? definito l?operatore di postincremento:

int a = 0;
a++;
//ora a = 1

che corrisponde a:

int a = 0;
a = a + 1;

o a:

int a = 0;
a += 1;

dove += ? un?abbreviazione di a = a + ?..


Alla prossima lezione?
elessar
Gold Boarder
Messaggi: 172
graph
Utente Offline Premere per visualizzare il Profilo di questo Utente
L'Amministratore ha disattivato l'accesso in scrittura al pubblico.
"... Il cristallo era, per i Silmaril, null'altro che ciò che il corpo è per i figli di Ilùvatar: la dimora del suo fuoco interiore, che è in esso e insieme in ogni parte di esso, e che ne costituisce la vita."
 
Vai a inizio paginaPagina: 1
SEO by Artio