Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi"

Transcript

1 Informatica Fondamenti della Programmazione in Java Leonardo Vanneschi 1

2 1. Fondamenti Il primo programma in Java Il programma che stampa a video una sequenza di caratteri (o stringa): class Esempio { public static void main (String[] args) { System.out.println("Hello World!"); Nota: per poter essere utilizzato, questo programma deve necessariamente essere contenuto in un file di testo di nome Esempio.java. Spiegazione dettagliata del programma Per i più "esperti": Esempio è il nome della classe che contiene il metodo main; public: il metodo main può essere invocato anche esternamente alla classe che lo contiene; static: il metodo main si riferisce alla classe Esempio e non ad una particolare istanza di esse; in altri termini, esiste uno ed un solo metodo main, identico per ogni istanza della classe Esempio; void: il metodo main non restituisce alcun risultato (dunque ha il solo ruolo di compiere delle azioni); main è il nome del metodo principale di un programma Java: il primo ad essere eseguito. String[] args: l'argomento del metodo main è un vettore di stringhe di caratteri chiamato args; System.out.println è il comando predefinito di Java per stampare a video una sequenza di caratteri. Tale sequenza va passata come parametro a questo comando. Tutti questi concetti verranno chiariti durante il corso. Per i "principianti": La prima riga significa che il programma che sto scrivendo si chiama Esempio. Affinché esso possa funzionare, esso deve essere contenuto in un file di testo con lo stesso nome e con l'estensione ".java" (quindi in questo caso Esempio.java). La seconda può essere interpretata come l' "inizio del programma": a partire dalla riga successiva a questa, ha inizio il codice che viene eseguito. In prima approssimazione, le prime due righe possono essere considerate come qualcosa che non deve essere compreso nei dettagli, ma che va scritto ogni volta in modo meccanico e sempre uguale, con la sola eccezione del fatto che il nome del programma (la parola che segue la parola class nella prima riga) può essere scelta di volta in volta e con il vincolo che tale nome deve essere identico al nome del file che contiene il codice. 2

3 System.out.println è il comando predefinito di Java per stampare a video una sequenza di caratteri. La sequenza di caratteri da stampare deve essere scritta dopo il comando, tra parentesi e tra virgolette. Tutti questi concetti verranno chiariti durante il corso. Compilazione ed esecuzione Per poter eseguire un programma Java, occorre prima compilarlo. Una volta che si è scritto il programma, infatti, esso è in una forma comprensibile da parte di un essere umano, ma non da parte di un calcolatore (si dice che è scritto in un linguaggio di programmazione di alto livello). Viceversa, un calcolatore è una macchina in grado di eseguire programmi scritti in un linguaggio macchina, o, nel gergo di Java, in byte-code (un programma scritto in linguaggio macchina può approssimativamente essere immaginato come una sequenza di bit, ovvero di caratteri 0 e 1). Quindi, il programma scritto da un essere umano, per poter essere eseguito deve essere tradotto in linguaggio macchina. Questo è il compito principale del compilatore. Le tappe da compiere per poter eseguire il programma Esempio.java sono schematizzate qua sotto: Programma di Programma in alto livello (file byte-code (file Esempio.java) compilatore Esempio.class) esecuzione Comando per compilare: javac Esempio.java Comando per eseguire: java Esempio e possono essere riassunte dai seguenti punti: Compilare il programma con il comando javac Esempio.java (questo comando, se viene eseguito senza errori, fa si che venga creato un nuovo file chiamato Esempio.class che è la traduzione in byte-code del file Esempio.java). Eseguire il programma con il comando java Esempio L'effetto sarà la visualizzazione a video della sequenza di caratteri Hello World! 3

4 Note: i comandi javac e java (detti anche compilatore e interprete di Java) sono comandi che devono essere eseguiti dal Sistema Operativo presente sul vostro calcolatore (probabilmente Linux o Windows nel vostro caso). Il meccanismo più elementare per "interagire" con un Sistema Operativo (e quello che verrà utilizzato in questo corso) è tramite un terminale. Quindi, ad esempio per eseguire il comando javac Esempio.java, occorre aprire un terminale con l'apposito meccanismo previsto dal vostro sistema operativo (normalmente lo si può fare tramite un apposito menu), posizionarsi nella directory in cui è contenuto il file Esempio.java, scrivere con la tastiera javac Esempio.java e premere il tasto return. Per poter essere eseguiti, i comandi javac e java devono essere stati precedentemente installati. Essi possono essere scaricati ed installati gratuitamente dal sito seguendo il link downloads e scegliendo il Sistema Operativo utilizzato. Oltre a quello di tradurre programmi ad alto livello in programmi in linguaggio macchina, il compilatore ha anche il compito di segnalare gli errori che sono stati commessi al momento della scrittura del programma. Si noti che i soli errori che possono essere segnalati da un compilatore sono errori di sintassi. Esempi di errori di sintassi: Scrivere Sytsem.otu.priltn invece di System.out.println. Dimenticare il simbolo ";" alla fine di un comando. Dimenticarsi di chiudere una parentesi che era stata precedentemente aperta.... (i possibili errori di sintassi sono moltissimi, ve ne accorgerete presto in laboratorio, purtroppo... E' importante non scoraggiarsi se all'inizio commettete molti di questi errori: è del tutto normale! Vedrete che con l'esperienza le cose andranno meglio). Esempi di errori di semantica: Il programma che volevo scrivere non doveva stampare a video la stringa Hello World!, ma doveva fare la somma di due numeri interi. Chiaramente il compilatore non è in grado di segnalare errori di semantica. Questi ultimi sono di sola competenza del programmatore, che ha tutta la responsabilità di far si che il programma si comporti come desiderato. Quando il compilatore trova un errore si sintassi all'interno del programma, si interrompe e segnala sul terminale il tipo di errore e la riga di codice in cui l'errore è contenuto. In questo modo (con un po' di esperienza!) dovrebbe risultare facile da parte del programmatore identificare l'errore, correggerlo e riprovare a compilare. Quando il programma non contiene errori di sintassi, il compilatore genera un nuovo file (nella stessa directory in cui vi trovate) chiamato Esempio.class, che è la traduzione in byte-code del file Esempio.java. Se si cerca di aprire il file Esempio.class con un editore di testo, si vedrà che questo file risulta del tutto illeggibile da parte di un essere umano. Questo codice non deve essere ne' letto, ne' capito, ma deve essere eseguito, tramite il comando java Esempio. 4

5 2. Variabili, Tipi di Dato, Espressioni Il Concetto di Variabile Per introdurre il concetto di variabile (uno dei concetti fondamentali della programmazione), si consideri un programma un po' più complesso di quello visto fin qui: class Esempio { public static void main (String[] args) { System.out.println("2"); System.out.println("2"); System.out.println("2"); E' chiaro che questo programma stampa a video tre volte la stringa 2. Supponiamo adesso che dopo aver scritto questo programma, ci si renda conto che la stringa che doveva essere stampata non era 2, bensì (ad esempio) 5. Per correggere il programma da questo errore di semantica, occorrerà correggere tre punti del programma. In questo caso il lavoro non sarebbe granché oneroso, ma è facile immaginare che, se la stringa dovesse essere stampata mille volte, risulterebbe assai fastidioso dover effettuare mille correzioni dello stesso errore! Questo problema (ovvero quello di scrivere un programma che deve poi essere modificato in un secondo tempo per qualche motivo) è molto frequente. Uno dei metodi per affrontare in modo più efficace questo problema è quello di utilizzare il concetto di variabile. In prima approssimazione, ed in modo del tutto intuitivo e informale, una variabile può essere definita come una scatola (o, un po' più correttamente, come una parte della memoria del calcolatore) che contiene dei valori. Una variabile è identificata da: un nome; un tipo di dato; un valore. Per esempio, una possibile definizione di variabile in Java può essere: int x = 5; In questo modo, abbiamo definito una variabile tale che: il suo nome è x; il suo tipo è int, ovvero questa variabile è un numero intero; il suo valore è 5. Il tipo di dato di una variabile è legato alla sua taglia, ovvero allo spazio di memoria che essa occupa. Dopo che la riga di codice int x = 5; è stata eseguita, infatti, viene riservato uno 5

6 spazio di memoria per la variabile x e la taglia di questo spazio di memoria è esattamente la dimensione sufficiente per contenere un numero intero (32 bit in Java). Successivamente, all'interno di questa regione di memoria viene registrato il valore 5. Altro esempio: char c = 'a'; il suo nome è c; il suo tipo è char, che significa che si tratta di un carattere alfanumerico; il suo valore è il carattere a. In questo caso, al momento dell'esecuzione della riga di codice char c = 'a'; viene riservato, all'interno della memoria del calcolatore, uno spazio per la variabile c della taglia necessaria per contenere un qualsiasi carattere alfanumerico (16 bit in Java) e successivamente viene registrato il valore a all'interno di questa regione. Si noti che la rappresentazione binaria del carattere a è uguale a quella di un numero intero di tipo short, quindi occorre utilizzare i simboli ' e ' per distinguere questi due casi. Vediamo adesso come può essere riscritto il programma precedente utilizzando una variabile: class Esempio { public static void main (String[] args) { int n = 2; System.out.println(n); System.out.println(n); System.out.println(n); Note: E' chiaro che stavolta se occorre cambiare il valore che deve essere stampato a video, il cambiamento può essere fatto una sola volta, in un sol punto del programma. E' importante notare la differenza tra l'uso del comando System.out.println con e senza le virgolette: un comando come System.out.println("n"); stampa a video la lettera n; viceversa, un comando come System.out.println(n); implica la ricerca all'interno della memoria di una variabile di nome n e la stampa a video del suo valore. Adesso che abbiamo (parzialmente) capito l'utilità del concetto di variabile, possiamo dedicarci con un livello maggiore di dettaglio alle tre caratteristiche tipiche delle variabili: i tipi di dato, i nomi (detti anche identificatori) e i valori. 6

7 Tipi di Dato In Java esistono due categorie di tipi di dato: Tipi di dato primitivi Tipi di dato complessi (o classi predefinite) Inoltre, in Java il programmatore ha la possibilità di definire dei nuovi tipi di dato. I tipi di dato primitivi di Java sono: short numeri interi rappresentabili con 16 bit int numeri interi rappresentabili con 32 bit long numeri interi rappresentabili con 64 bit float numeri reali rappresentabili con 32 bit double numeri reali rappresentabili con 64 bit char caratteri alfanumerici (rappresentabili con 16 bit) boolean i valori di verità. I possibili valori sono true (vero) e false (falso) e quindi, dato che i possibili valori sono 2, sono rappresentabili con 1 bit. I tipi di dato short, int, long, float e double sono detti tipi numerici. Esistono (pochi) altri tipi di dato semplici in Java (come ad esempio il tipo byte), che vengono utilizzati di rado e non sono di interesse in questo corso. Tra i tipi di dato complessi (si noti che, come risulterà più chiaro alla fine del corso, il termine classi predefinite è più corretto ed appropriato, ma in questa fase si è preferito utilizzare il termine tipi di dato complessi perché più intuitivo) in Java sono moltissimi. Fin qui ne abbiamo visto uno soltanto: String sequenze di caratteri alfanumerici Risulterà chiaro durante il corso il motivo per cui i tipi di dato complessi debbano essere distinti dai tipi di dato semplice. Inoltre, durante il corso si vedranno altri esempi di tipi di dato complessi di Java (anche se non ci avvicineremo neanche ad una analisi esaustiva di tutte le classi predefinite del linguaggio) e impareremo a definire nuovi tipi di dato. 7

8 Identificatori Un identificatore è una sequenza di caratteri: tale che: Esempi: c 0 non è una cifra; c 0 c 1...c N-1 i tale che 0 i N-1: c i non è un simbolo di operazione aritmetica (+,-,*,/,...) o logica (&,,!) e non è uguale a uno spazio vuoto (carattere di spaziatura). somma è un identificatore corretto; 3aPagina NON è un identificatore corretto perché comincia con una cifra; due+tre NON è un identificatore corretto perché contiene un simbolo di operazione aritmetica; il-mio-nome NON è un identificatore corretto perché contiene simboli di operazioni aritmetiche; il_mio_nome è un identificatore corretto (si noti la differenza col caso precedente); ilmionome è un identificatore corretto; il mio nome NON è un identificatore corretto perché contiene degli spazi bianchi. x2 è un identificatore corretto (contiene o più cifre, ma nessuna di esse appare come primo carattere). 8

9 Valori delle variabili I valori costanti delle variabili e la loro rappresentazione dipendono fortemente dal tipo di dato. In particolare: I valori di tipo short, int e long si rappresentano scrivendo semplicemente dei numeri senza la virgola. Chiaramente il tipo long contiene un insieme di possibili valori più grande rispetto al tipo int e quest'ultimo contiene un insieme di possibili valori più grande rispetto al tipo short, dato che i valori di tipo long sono rappresentati con 64 bit, quelli di tipo int con 32 bit e quelli di tipo short con 16 bit. I valori di tipo float e double si rappresentano come numeri con la virgola (la notazione è americana, ovvero viene utilizzato il punto per separare le cifre intere da quelle decimali). Ancora una volta, il tipo double contiene un insieme di possibili valori più grande rispetto al tipo float, perché i suoi valori si rappresentano utilizzando un numero superiore di bit. I valori di tipo char si rappresentano scrivendo un carattere alfanumerico tra apice singolo. I valori di tipo boolean si rappresentano scrivendo le parole true e false senza alcuna virgoletta o apice (attenzione: la differenza tra maiuscole e minuscole in Java è sempre importante; True non è un valore booleano, true si). I valori di tipo String si rappresentano scrivendo sequenze di caratteri tra virgolette (o apici doppi). Esempi di definizioni di variabili int x = 5; short pippo = 5; long y = 5; float numero = 5.3; double ciao = 5.3; char ilmiocarattere = 'w'; boolean b = true; String s = "Ciao a tutti, come va questa lezione di informatica?"; Oltre ai valori costanti, per ogni tipo di dato si possono avere valori dati dal risultato di una espressione più complessa, come risulterà chiaro dopo la lettura del prossimo paragrafo. Oltre a definire le variabili come negli esempi qui sopra, si può anche: Definire una variabile senza assegnarle (immediatamente) un valore. Ad esempio, una definizione come: int n; 9

10 definisce una variable intera senza alcun valore (si può immaginare che le celle di memoria riservate per questa variabile vengano lasciate vuote). In questo caso si dice che la variabile è stata dichiarata, ma non inizializzata. In alcuni casi, è utile dichiarare una variabile senza assegnarle immediatamente un valore, ma è bene tenere presente che il linguaggio Java non consente (per fortuna!) l'utilizzo di una variabile se prima non le è stato assegnato un valore. Inoltre il linguaggio Java vieta l'uso di una variabile se prima non è stata inizializzata. Morale: non usate mai variabili senza dichiararle e inizializzarle (l'inizializzazione può essere fatta al momento della dichiarazione o successivamente, ma sempre prima del loro primo utilizzo). In seguito vedremo come sia possibile assegnare un valore a una variabile che è stata definita precedentemente, oppure cambiare il valore di una variabile, tramite il cosiddetto comando di assegnamento. Definire più variabili "in un colpo solo". Una definizione come: int x, y, z; è assolutamente equivalente alla sequenza di definizioni: int x; int y; int z; 10

11 Espressioni Le principali espressioni in Java sono le espressioni aritmetiche, le espressioni relazionali, le espressioni logiche e le espressioni su stringhe. Esse vengono trattate separatamente qua sotto. Espressioni aritmetiche La definizione di queste espressioni è data dai seguenti punti: Un numero è una espressione aritmetica. Se A e B sono espressioni aritmetiche, allora: - A+B (addizione) - A-B (sottrazione) - A/B (divisione) - A*B (moltiplicazione) - A%B (modulo o resto della divisione intera) sono espressioni aritmetiche. Se A è un'espressione aritmetica, allora anche (A) è un'espressione aritmetica. Esempio di espressione aritmetica: (5+7)*3+2 Precedenza degli operatori aritmetici: gli operatori * e / hanno la precedenza rispetto a + e -. Questo significa che * e / vengono eseguiti prima di + e - indipendentemente dalla posizione in cui si trovano nell'espressione. Esempio: * 2 restituisce come risultato 19 in altri termini, prima viene calcolato 7*2 e poi il risultato viene sommato a 5. Per cambiare la precedenza degli operatori si possono usare le parentesi. Esempio: ( ) * 2 restituisce come risultato 24 in altri termini, prima viene calcolato 5+7 e poi il risultato viene moltiplicato per 2. 11

12 Espressioni relazionali La definizione di queste espressioni è data dai seguenti punti: Se A e B sono espressioni aritmetiche, allora: - A == B (uguale) - A > B (maggiore) - A < B (minore) - A >= B (maggiore o uguale) - A <= B (minore o uguale) - A!= B (diverso) sono espressioni relazionali. Se A è un'espressione relazionale, allora anche (A) è un'espressione relazionale. Si noti il fatto che le espressioni relazionali restituiscono sempre come risultato un valore di tipo boolean. Esempi di espressioni relazionali: 5 == 8 il risultato è false (o "è falsa" o "vale false") perché 5 non è uguale a 8 5 == 5 vale true 3+4 > 2+1 vale true perché 7 è maggiore di 3 5 >= 5 vale true 5 >= 8 vale false 5 >= 3 vale true Espressioni Logiche La definizione di queste espressioni è data dai seguenti punti: true e false sono espressioni logiche. Se A è un'espressione relazionale, allora A è anche un'espressione logica. Se A e B sono espressioni logiche, allora: -!A (negazione logica) - A & B (and logico) - A B (or logico) - A && B (and logico ottimizzato) - A B (or logico ottimizzato) sono espressioni logiche. Se A è un'espressione logica, allora anche (A) è un'espressione logica. 12

13 Il valore restituito come risultato da un'espressione logica è un valore di tipo boolean. Questo valore può essere sempre calcolato in funzione dei valori di A e B grazie all'uso delle cosiddette tabelle di verità. Le tabelle di verità della negazione logica, dell'and logico e dell'or logico sono riportate brevemente qua sotto: A!A true false false true A B A & B true true true true false false false true false false false false A B A B true true true true false true false true true false false false 13

14 Esempi di espressioni logiche (4 > 3) & (2 > 1) vale false (7+1 > 2+2) (8+1 > 100) vale true true & (4 < 1) vale false Differenza tra gli operatori & ed &&: A & B valuta le espressioni A e B e ne calcola l'and logico A && B valuta l'espressione A; se il valore di A è uguale a false, allora l'espressione B non viene valutata ma viene restituito direttamente il valore false come risultato. In caso contrario, viene valutata l'espressione B e viene restituito l'and logico tra A e B. E' chiaro che il risultato restituito da A && B è sempre uguale a quello restituito da A & B, ma valutare A && B è meno costoso che valutare A & B. Nel caso in cui l'espressione B sia molto complessa, questa differenza di efficienza può essere significativa! Morale: se non si hanno validi motivi per valutare anche l'espressione a destra dell'operatore, usare sempre && quando si vuole eseguire un and logico. Esempio: (4 < 3) && ((5 <= 9) (7%6 == 1) &...) L'espressione (4 < 3) è falsa, quindi tutto il resto dell'espressione non è calcolata, ma viene restituito immediatamente il valore false. Differenza tra gli operatori ed : A B valuta le espressioni A e B e ne calcola l'or logico A B valuta l'espressione A; se il valore di A è uguale a true, allora l'espressione B non viene valutata ma viene restituito direttamente il valore true come risultato. In caso contrario, viene valutata l'espressione B e viene restituito l'or logico tra A e B. Ancora una volta, è chiaro che il risultato restituito da A B è sempre uguale a quello restituito da A B, ma valutare A B è meno costoso che valutare A B. Morale: se non si hanno validi motivi per valutare anche l'espressione a destra dell'operatore, usare sempre quando si vuole eseguire un or logico. 14

15 Espressioni su stringhe Le espressioni che possono essere formate un Java utilizzando le stringhe sono molte e non è scopo di questo corso una analisi esaustiva di ognuna di esse. Ci limiteremo a trattare le espressioni formate da concatenazione di stringhe: se A e B sono due stringhe, allora A+B è una stringa formata dalla concatenazione delle stringhe A e B. La concatenazione tra due stringhe A e B è semplicemente una sequenza formata da tutti i caratteri che compongono A seguiti da tutti i caratteri che compongono B (senza alcun carattere di separazione). Esempio: "buon" + "Giorno" è una espressione che restituisce come risultato la stringa "buongiorno". Nota: se uno solo degli operandi dell'operatore + è una stringa, allora l'altro operando viene trasformato in una stringa e successivamente viene eseguita l'operazione di concatenazione. Ad esempio: String s = "ciao" + 4; alla fine di questo comando, il valore della stringa s è "ciao4". 15

16 Definizione di variabile Adesso siamo pronti a definire in modo più preciso la sintassi della definizione di una variabile all'interno di un programma Java: [<modificatore>] <tipo T> <identificatore> = <espressione di tipo T> ; Si osservi che con questa notazione per definire la sintassi, tutto ciò che è racchiuso tra i simboli e è inteso come "opzionale" (ovvero può essere o non essere presente nel codice). Inoltre, si noti che: Un modificatore è una tra le parole chiave di Java public, private, static, ecc.... I modificatori verranno introdotti nella parte finale del corso e per adesso non verranno utilizzati. L'espressione che compare alla sinistra del simbolo di uguaglianza deve essere dello stesso tipo rispetto a quello dichiarato a sinistra del nome della variabile. Il simbolo ; è obbligatorio alla fine di una dichiarazione di variabile, come alla fine di ogni comando Java (separatore di comandi). Esempi di definizioni di variabili corrette: boolean variabilelogica = (5>4) & (3<10) & true; int x = 5+9*8+2; double pippo = 10/3; Esempi di definizioni errate: boolean ciao = 10*4; double x = (5 == 3); 16

17 Esempio di programma Java che utilizza variabili ed espressioni: class Esercizio { public static void main (String[] args) { int x = 5; int y = 3; int somma; somma = x + y; System.out.println("La somma è: " + somma); Si cerchi di capire nei minimi dettagli il funzionamento di questo programma. Nota: Come già detto, l'operatore + in Java ha un significato diverso a seconda del tipo di dato dei suoi operandi: se entrambi gli operandi sono di tipo numerico, + è l'operazione aritmetica di somma. se almeno uno dei due operandi è una stringa, + è l'operatore di concatenazione tra stringhe. Quindi: 5+4 è una espressione di tipo intero il cui risultato è 9 "5"+4 è una espressione di tipo stringa il cui risultato è "54" 4+"5" è una espressione di tipo stringa il cui risultato è "54" "4"+"5" è una espressione di tipo stringa il cui risultato è "54" Gli ultimi tre risultati sono valori di tipo String e non hanno nulla a che vedere con il numero 54! Cercare di capire bene questi concetti prima di proseguire con la lettura. 17

18 3. Interazione con l'utente Un programma Java può interagire con il mondo esterno tramite la classe SavitchIn. Ad esempio, tramite questa classe è possibile fare in modo che sia l'utilizzatore del programma (e non il programmatore!) a settare il valore di alcune variabili. Ad esempio, si consideri la seguente definizione di variabile: int n = SavitchIn.readLineInt(); al momento dell'esecuzione di questa linea di codice, l'interprete di Java di arresta ed aspetta che l'utilizzatore scriva un numero intero e prema il tasto return. Una volta che l'utilizzatore preme il tasto return, tutto ciò che è stato scritto precedentemente è interpretato come il valore della variabile n e l'esecuzione del programma continua (si noti che se l'utilizzatore scrive un valore di un tipo diverso dal tipo int, l'esecuzione del programma si blocca e viene segnalato un errore). Esempio Il seguente programma esegue la somma di due numeri digitati dall'utilizzatore: class Esercizio { public static void main (String [] args) { int x; int y; System.out.println("Scrivi il primo numero: "); x = SavitchIn.readLineInt(); System.out.println("Scrivi il secondo numero: "); y = SavitchIn.readLineInt(); int somma = x + y; System.out.println("Somma dei numeri che hai scritto = " + somma); Compilare ed eseguire questo programma per capirne il comportamento. Cercare di capire questo programma nei minimi dettagli prima di proseguire. Si noti che è impossibile scrivere un programma che esegue la somma di due numeri qualsiasi senza far uso delle variabili! La classe SavitchIn non è sempre installata su tutti i PC. In tal caso deve essere installata manualmente. La si può scaricare gratuitamente, ad esempio, dal sito: Altri metodi della classe SavitchIn: double x = SavitchIn.readLineDouble(); char c = SavitchIn.readLineChar(); String s = SavitchIn.readLineWord(); 18

19 4. Istruzione di Assegnamento E' l'istruzione che permette di modificare il valore di una variabile (o di assegnarle un valore per la prima volta, se esso non è già stato assegnato al momento della sua dichiarazione). Sintassi: <identificatore> = <espressione>; dove <espressione> deve restituire un valore dello stesso tipo di quello utilizzato al momento della dichiarazione di <identificatore> (altrimenti il compilatore di Java segnala un errore e si interrompe). Semantica: Si valuta l'espressione ottenendo, se la valutazione termina, un valore v. Il valore v viene scritto nella regione di memoria che è stata associata alla variabile al momento della sua dichiarazione. Un caso interessante: in Java (come nella maggior parte dei linguaggi di programmazione) è permesso l'utilizzo di una istruzione di assegnamento come la seguente: x = espressione(x) ; dove espressione(x) è una espressione che fa uso di x. Ad esempio, si può scrivere una istruzione come: x = x+1; Il significato è: Viene sommato 1 al vecchio valore di x. Il risultato viene scritto di nuovo nella regione di memoria associata a x. In generale: Viene valutata espressione(x) utilizzando il vecchio valore di x. Il risultato viene scritto di nuovo nella regione di memoria associata a x. Esempio class Esercizio { public static void main (String[] args) { int x; x=10; x=x+1; 19

20 x=x+2; x=x+10; Cercare di capire il funzionamento di questo programma. Qual'è il valore della variabile x alla fine dell'esecuzione? Nota: Il linguaggio Java consente anche la notazione: x++; che ha esattamente lo stesso significato di x=x+1; ma è (leggermente) più efficiente. Esempio: class Esercizio { public static void main (String[] args) { int x = 10; x++; x++; System.out.println(x); Che cosa stampa a video questo programma? Il linguaggio Java consente anche la notazione ++x; il risultato è sempre lo stesso, ma c'è un'importante differenza tra x++ e ++x. Per comprenderla, si considerino i seguenti esempi: Il frammento di codice: int x = 2; System.out.println((x++) == 3); System.out.println(x); stampa a video: false 3 Il frammento di codice: int x = 2; System.out.println((++x) == 3); System.out.println(x); stampa a video: 20

21 true 3 In altri termini, c'è una differenza tra x++ e ++x soltanto quando li si utilizza all'interno di una espressione relazionale: Nel caso di ++x prima si incrementa il valore di x e poi si valuta l'espressione relazionale. Nel caso di x++ prima si valuta l'espressione relazionale e poi si incrementa il valore di x. 21

22 Importanza dell'inizializzazione di una variabile Inizializzare una variabile significa assegnarle un valore per la prima volta da quando è stata dichiarata. Non si può utilizzare una variabile a destra del simbolo = in una istruzione di assegnamento se essa non è stata prima inizializzata (pena: errore del compilatore). Esempio: class Esercizio { public static void main (String[] args) { int x; int y; x = 5; int somma; somma = x+y; Il compilatore restituisce un errore quando si tenta di eseguire questo programma: y non è stata inizializzata (non ha un valore o, più correttamente, non ha un valore significativo). Importanza dei tipi di dato Non si può (quasi mai) assegnare ad una variabile di un tipo un valore di un altro tipo! (Pena: errore del compilatore). Esempio: class Esercizio { public static void main (String[] args) { String s = "ciao"; int x = 5; x = s; > Errore s = x; > Errore In questo caso, il programma restituisce un errore a tempo di compilazione perché i tipi int e String non sono compatibili. Una variabile di un tipo T1 può essere assegnata a un valore di tipo T2 se e solo se T1 e T2 sono tipi compatibili. Di seguito vengono trattate le regole per stabilire se due tipi di dato sono o meno compatibili. 22

23 Compatibilità dei Tipi di Dato Le regole per stabilire se due tipi di dato sono o meno compatibili (prendendo in considerazione solo i tipi di dato che sono stati considerati fin qui) sono le seguenti: I tipi numerici sono compatibili con gli altri tipi (String, char, boolean). String, char e boolean non sono compatibili tra di loro (per ogni loro permutazione). I tipi numerici possono essere compatibili tra di loro, con le seguenti regole: Vedendo un tipo di dato come un insieme, esistono le seguenti relazioni tra i tipi numerici in Java: short int long float double Un tipo numerico T1 è compatibile con un altro tipo numerico T2 (in altri termini un valore di tipo T1 può essere assegnato a una variabile di tipo T2) se e solo se: T1 T2 Esempio: double x; x = 1; Questo assegnamento è consentito perché int double. Il valore double "corrispondente" al valore intero 1 è 1.0. Esempio: int x; x = 1.5; Questo assegnamento NON è consentito in quanto non è vero che il tipo double è contenuto in int. Il valore double 1.5 NON ha un corrispettivo nel tipo int. Errore a tempo di compilazione. Esempio: int x = 5; double y = 7.3; double somma = x+y; Questo assegnamento è consentito; il risultato è un double: il valore intero di x viene prima trasformato nel suo corrispettivo nel tipo double e poi i due double vengono sommati. 23

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Parte 1. Vettori di bit - AA. 2012/13 1.1

Parte 1. Vettori di bit - AA. 2012/13 1.1 1.1 Parte 1 Vettori di bit 1.2 Notazione posizionale Ogni cifra assume un significato diverso a seconda della posizione in cui si trova Rappresentazione di un numero su n cifre in base b: Posizioni a n

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Matlab: Strutture di Controllo. Informatica B

Matlab: Strutture di Controllo. Informatica B Matlab: Strutture di Controllo Informatica B Tipo di dato logico È un tipo di dato che può avere solo due valori true (vero) 1 false (falso) 0 I valori di questo tipo possono essere generati direttamente

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Calcolare il massimo di una lista

Calcolare il massimo di una lista Calcolare il massimo di una lista Ieri abbiamo imparato a calcolare il massimo di una lista predefinita: lista = [4,24,-89,81,3,0,-12,31] max = lista[0] # questo e' un commento: primo elemento di lista

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Appunti di Informatica www.mimmocorrado.it 1

Appunti di Informatica www.mimmocorrado.it 1 Installare Java Il programma può essere scaricato dal seguente indirizzo: http://www.java.com/it/download/windows_ie.jsp?locale=it&host=www.java.com Per installare la JDK è necessario: 1. scaricare il

Dettagli

http://www.programmiamo.altervista.org/c/oop/o...

http://www.programmiamo.altervista.org/c/oop/o... PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

FORMULE: Operatori matematici

FORMULE: Operatori matematici Formule e funzioni FORMULE Le formule sono necessarie per eseguire calcoli utilizzando i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno uguale (=). La formula deve essere

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica I tipi strutturati: gli array e le strutture Claudio De Stefano - Corso di Fondamenti di Informatica 1 arrays un array (o vettore) è una sequenza di oggetti dello stesso

Dettagli

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

Alcune regole di base per scrivere un programma in linguaggio C

Alcune regole di base per scrivere un programma in linguaggio C Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

Definizione di nuovi tipi in C

Definizione di nuovi tipi in C Definizione di nuovi tipi in C typedef Ancora sui tipi di dato Ogni elaboratore è intrinsecamente capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

void funzioneprova() { int x=2; cout<<dentro la funzione x=<<x<<endl; } FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo

Dettagli

Figura 1 Le Icone dei file di Excel con e senza macro.

Figura 1 Le Icone dei file di Excel con e senza macro. 18 Le macro Le macro rappresentano una soluzione interessante per automatizzare e velocizzare l esecuzione di operazioni ripetitive. Le macro, di fatto, sono porzioni di codice VBA (Visual Basic for Applications)

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi:

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi: JAVASCRIPT Introduzione Con l HTML siamo in grado di realizzare pagine web statiche. Con il linguaggio Javascript, invece, possiamo interagire modificando il contenuto della pagina. Il linguaggio javascript

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

www.filoweb.it STAMPA UNIONE DI WORD

www.filoweb.it STAMPA UNIONE DI WORD STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Fondamenti di Informatica 2. Le operazioni binarie

Fondamenti di Informatica 2. Le operazioni binarie Corso di per il corso di Laurea di Ingegneria Gestionale Le operazioni binarie Università degli Studi di Udine - A.A. 2010-2011 Docente Ing. Sandro Di Giusto Ph.D. 1 L'algebra binaria Il fatto di aver

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO 4.1 PER INIZIARE 4.1.1 PRIMI PASSI COL FOGLIO ELETTRONICO 4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO L icona del vostro programma Excel può trovarsi sul desktop come in figura. In questo caso basta

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

File, Modifica, Visualizza, Strumenti, Messaggio

File, Modifica, Visualizza, Strumenti, Messaggio Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

EDICOLA MANAGER 2.2. + EM Importer

EDICOLA MANAGER 2.2. + EM Importer EDICOLA MANAGER 2.2 + EM Importer Con la versione 2.2 del programma sono state introdotte numerose novità grazie anche alla collaborazione di colleghi che hanno messo a disposizione utility e documenti

Dettagli

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa. La finestra di Excel è molto complessa e al primo posto avvio potrebbe disorientare l utente. Analizziamone i componenti dall alto verso il basso. La prima barra è la barra del titolo, dove troviamo indicato

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

INFORMATICA - I puntatori Roberta Gerboni 1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera WORD per WINDOWS95 1.Introduzione Un word processor e` come una macchina da scrivere ma con molte più funzioni. Il testo viene battuto sulla tastiera ed appare sullo schermo. Per scrivere delle maiuscole

Dettagli

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione

Dettagli