Procedure CAPITOLO Introduzione. 6.2 Moduli, classi e procedure

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Procedure CAPITOLO 6. 6.1 Introduzione. 6.2 Moduli, classi e procedure"

Transcript

1 CAPITOLO 6 Procedure Obiettivi Costruire i programmi in modo modulare partendo da piccoli pezzi chiamati procedure Introdurre i metodi Math disponibili in Framework Class Library Creare nuove procedure Capire i meccanismi utilizzati per scambiare le informazioni fra le procedure Descrivere le tecniche di simulazione che utilizzano la generazione di numeri casuali Comprendere come la visibilità degli identificatori sia limitata a specifiche parti di un programma Scrivere e utilizzare le procedure ricorsive 6.1 Introduzione La maggior parte dei programmi per computer scritti per risolvere problemi reali hanno dimensioni decisamente superiori rispetto ai programmi presentati nei primi capitoli di questo libro. L esperienza ha dimostrato che il modo migliore per sviluppare e mantenere un programma di grandi dimensioni è quello di costruirlo partendo da pezzi più piccoli e più facili da gestire rispetto al programma originale. Questo capitolo presenta le caratteristiche del linguaggio Visual Basic che facilitano la progettazione, l implementazione, il funzionamento e la manutenzione di programmi di grandi dimensioni. 6.2 Moduli, classi e procedure I programmi Visual Basic sono composti da vari pezzi, che includono i moduli e le classi. Il programmatore combina nuovi moduli e classi preconfezionate disponibili in.net Framework Class Library (FCL). I moduli e le classi sono formati da pezzi più piccoli: le procedure. Le procedure, quando sono combinate in una classe, si chiamano metodi. Framework Class Library fornisce una ricca collezione di classi e metodi che permettono di eseguire i più comuni calcoli matematici, manipolare stringhe e caratteri, controllare gli errori, gestire l input/output e svolgere molte altre utili operazioni. Tutto questo semplifica il lavoro del programmatore, perché i metodi offrono molte delle funzionalità che servono al programmatore. Nei precedenti capitoli abbiamo introdotto alcune classi FCL, come Console, che fornisce i metodi per l input e l output dei dati.

2 146 CAPITOLO 6 Ingegneria del software 6.1 Familiarizzate con le classi e i metodi che si trovano in Framework Class Library (FCL). Ingegneria del software 6.2 Dove possibile, utilizzate sempre le classi e i metodi FCL, anziché scrivere nuove classi e nuovi metodi. Ciò consente di ridurre il tempo di sviluppo del programma e impedisce di commettere nuovi errori. Obiettivo efficienza 6.1 I metodi FCL sono stati scritti per essere eseguiti con efficienza. Sebbene FCL disponga di molti metodi che svolgono i compiti più comuni, tuttavia non può disporre di tutte le funzionalità che potrebbero essere richieste dai programmatori. Per questo motivo, Visual Basic consente a un programmatore di definire le sue procedure per soddisfare specifiche esigenze di un programma; queste procedure sono chiamate procedure definite dal programmatore. I programmatori scrivono le procedure per definire specifici compiti che un programma può usare molte volte durante la sua esecuzione. Sebbene la stessa procedura definita dal programmatore possa essere eseguita in più punti del programma, le istruzioni che definiscono effettivamente la procedura vengono scritte una volta soltanto. Una procedura viene invocata da una chiamata di procedura. Questa chiamata specifica il nome della procedura e fornisce le informazioni (come argomenti) di cui la procedura chiamata ha bisogno per completare le attività per le quali è stato progettata. Quando la procedura completa il suo compito, restituisce il controllo alla procedura chiamante (caller). In alcuni casi, la procedura restituisce anche un risultato alla procedura chiamante. Una tipica analogia per spiegare tutto questo è quella della struttura gerarchica di un azienda. Un capo ufficio (la procedura chiamante) chiede a un impiegato (la procedura chiamata) di eseguire un determinato compito e poi di restituire i risultati ottenuti, una volta che questo compito sarà completato. Il capo ufficio non ha bisogno di sapere come quell impiegato eseguirà il compito che gli ha assegnato; l impiegato potrebbe chiamare altri impiegati e il capo ufficio non ne sarebbe a conoscenza. Vedremo presto perché, nascondendo i dettagli di un implementazione, sia possibile ottimizzare la progettazione del software. La Figura 6.1 mostra la procedura Boss che comunica con le procedure Worker1, Worker2 e Worker3 in modo gerarchico. Notate come Worker1 si comporti da boss nei confronti di Worker4 e Worker5 in questo particolare esempio. Sono vari i motivi per cui è bene suddividere un programma in varie procedure. Per prima cosa, questo approccio rende più gestibile lo sviluppo del programma. Un altra motivazione è il riutilizzo del software, ovvero la possibilità di utilizzare le procedure esistenti come blocchi di costruzione per creare nuovi programmi. Applicando opportune convenzioni ai nomi e alle definizioni delle procedure, i programmi possono essere creati partendo da procedure standardizzate che svolgono compiti specifici, anziché utilizzare un codice personalizzato. Una terza motivazione è quella di evitare la ripetizione del codice all interno di un programma. Inserendo il codice in una procedura, è possibile eseguirlo in diversi punti del programma con una semplice chiamata della procedura.

3 PROCEDURE 147 Figura 6.1 Relazione gerarchica fra procedure Buona abitudine 6.1 Applicate i concetti della modularità per migliorare la chiarezza e l organizzazione dei programmi. Questo non soltanto aiuta gli altri a capire i vostri programmi, ma semplifica anche lo sviluppo, il collaudo e il debugging del codice. Ingegneria del software 6.3 Per favorire il riutilizzo del software, ogni procedura dovrebbe limitarsi a eseguire un solo compito ben definito, mentre il nome della procedura dovrebbe esprimere in modo chiaro tale compito. Ingegneria del software 6.4 Se non riuscite a scegliere un nome conciso che esprime l attività svolta da una procedura, probabilmente la procedura sta cercando di svolgere troppi compiti diversi. Di solito è meglio suddividerla in procedure più piccole. 6.3 Procedure Sub I programmi finora presentati contenevano almeno la definizione di una procedura (Main Main) che chiamava i metodi FCL (come Console.WriteLine) per svolgere i compiti del programma. Vediamo adesso come scrivere le procedure personalizzate. Esaminate l applicazione della Figura 6.2 che usa una procedura Sub (che è chiamata dalla procedura Main) per visualizzare alcuni dati sui pagamenti. Il programma contiene due definizioni di procedure. Le righe 6-14 definiscono la procedura Sub Main, che viene eseguita quando viene caricata l applicazione. Le righe definiscono la procedura Sub PrintPay, che è eseguita quando viene chiamata da un altra procedura, in questo caso da Main. La procedura Main effettua quattro chiamate (righe 9-12) della procedura Sub PrintPay, che viene eseguita quattro volte. In questo esempio gli argomenti della procedura sono delle costanti, ma possono essere anche variabili o espressioni. Per esempio, l istruzione PrintPay(employeeOneExtraHours, employeeonewage * 1.5) può essere utilizzata per visualizzare le informazioni sui pagamenti di un impiegato il cui lavoro straordinario (employeeoneextrahours employeeoneextrahours) ha un costo pari a una volta e mezza l orario normale (employeeonewage employeeonewage).

4 148 CAPITOLO 6 1 Figura 6.2: Payment.vb 2 Visualizza le informazioni sui pagamenti 3 4 Module modpayment 5 6 Sub Main() 7 8 chiama la procedura PrintPay 4 volte 9 PrintPay(40, 10.5) 10 PrintPay(38, 21.75) 11 PrintPay(20, 13) 12 PrintPay(50, 14) End Sub Main visualizza l importo nella finestra di comando 17 Sub PrintPay(ByVal hours As Double, ByVal wage As Decimal) pay = hours * wage 20 Console.WriteLine( The payment is {0:C}, hours * wage) 21 End Sub PrintPay End Module modpayment The payment is $ The payment is $ The payment is $ The payment is $ Figura 6.2 Procedura Sub per visualizzare i pagamenti Quando Main chiama PrintPay, il programma crea una copia del valore di ogni argomento (40 e 10.5 nella riga 9). Il controllo del programma passa alla prima riga della procedura PrintPay; questa procedura riceve i valori copiati e li memorizza nelle variabili hours e wage. Le variabili che ricevono i valori copiati degli argomenti sono dette parametri. Poi, PrintPay calcola il prodotto hours * wage e visualizza il risultato, utilizzando il formato della valuta, come indica la lettera C (iniziale di currency) nella riga 20. Quando viene eseguita l istruzione End Sub nella riga 21, il controllo ritorna alla procedura Main che ha effettuato la chiamata (caller). La prima riga della procedura PrintPay (riga 17) mostra (fra parentesi) che PrintPay dichiara la variabile hours di tipo Double e la variabile wage di tipo Decimal. Questi parametri memorizzano i valori passati a PrintPay all interno di questa procedura. Notate che l intera definizione della procedura PrintPay appare all interno del corpo del modulo modpayment. Tutte le procedure devono essere definite all interno di un modulo o di una classe. Il formato della definizione di una procedura Sub è il seguente: Sub nome-procedura(lista-parametri) dichiarazioni e istruzioni End Sub

5 PROCEDURE 149 La prima riga è detta intestazione della procedura. Il nome-procedura, che segue la parola chiave Sub nell intestazione della procedura, può essere qualsiasi identificatore valido ed è utilizzato per chiamare la procedura all interno del programma. La lista-parametri è un elenco di elementi separati da una virgola in cui la procedura Sub dichiara il tipo e il nome di ogni parametro. Ci deve essere almeno un argomento nella chiamata della procedura per ogni parametro dell intestazione (c è un eccezione a questa regola, come vedremo nel Paragrafo 6.17). Gli argomenti devono essere compatibili anche con i tipi di parametri (Visual Basic deve essere in grado di assegnare il valore dell argomento al parametro). Per esempio, un parametro di tipo Double può ricevere i valori 7.35, 22 o.03546, ma non i caratteri ciao, perché Double non può contenere stringhe di caratteri. Il Paragrafo 6.6 descrive dettagliatamente questo tema. Se una procedura non riceve alcun valore, la lista dei parametri è vuota (il nome della procedura è seguito da una coppia di parentesi vuote). Buona abitudine 6.2 Inserite una riga vuota prima e dopo la definizione di una procedura per mettere in evidenza le procedure dal resto del codice e migliorare la leggibilità dei programmi. Errore tipico 6.1 È un errore di sintassi definire una procedura all esterno della definizione di una classe o di un modulo. Notate che le dichiarazioni dei parametri nell intestazione della procedura PrintPay (riga 17) sono simili alle dichiarazioni delle variabili, con la differenza che usano la parola chiave ByVal, anziché Dim. ByVal specifica che il programma chiamante deve passare al parametro una copia del valore dell argomento; tale valore può essere utilizzato nel corpo della procedura Sub. Il Paragrafo 6.9 esamina dettagliatamente il passaggio degli argomenti. Errore tipico 6.2 È un errore di sintassi dichiarare una variabile nel corpo della procedura con lo stesso nome del parametro nell intestazione della procedura. Collaudo e messa a punto 6.1 Anche se è consentito, un argomento passato a una procedura non dovrebbe avere lo stesso nome del corrispondente parametro nella definizione della procedura. Questa distinzione evita ogni ambiguità che potrebbe determinare errori logici. Le dichiarazioni e le istruzioni nella definizione della procedura formano il corpo della procedura. Il corpo della procedura contiene il codice Visual Basic che svolge le azioni, manipolando o interagendo con i parametri. Il corpo della procedura deve terminare con le parole chiave End Sub, che definiscono la fine della procedura. Il corpo di una procedura è detto anche blocco. Un blocco è una sequenza di istruzioni e dichiarazioni raggruppate insieme come il corpo di una struttura; termina con l istruzione End, Next, Else o Loop, a seconda del tipo di struttura. Le variabili possono essere dichiarate in qualsiasi blocco; i blocchi possono essere nidificati. Errore tipico 6.3 È un errore di sintassi definire una procedura all interno di un altra; le procedure non possono essere nidificate.

6 150 CAPITOLO 6 Il controllo ritorna al caller quando l esecuzione raggiunge l istruzione End Sub (la fine del corpo della procedura). In alternativa, è possibile utilizzare le parole chiave Return ed Exit Sub in qualsiasi punto di una procedura per restituire il controllo al punto in cui è stata chiamata la procedura Sub. Più avanti descriveremo meglio Return ed Exit Sub. Buona abitudine 6.3 La scelta di nomi significativi per le procedure e i parametri rende i programmi più leggibili e riduce la lunghezza dei commenti. Ingegneria del software 6.5 I nomi delle procedure di solito sono verbi, perché una procedura svolge delle operazioni sui dati. Per convenzione, i nomi delle procedure definite dai programmatori iniziano con la prima lettera maiuscola. Per esempio, una procedura che invia un messaggio di posta elettronica potrebbe essere chiamata SendMail. Ingegneria del software 6.6 Una procedura che richiede un numero elevato di parametri, di solito, svolge troppi compiti. È consigliabile suddividere la procedura in procedure più piccole che svolgono compiti più semplici. Come regola generale, l intestazione di una procedura dovrebbe occupare una sola riga. Ingegneria del software 6.7 Come regola generale, una procedura dovrebbe occupare un solo foglio di carta o, meglio ancora, non dovrebbe superare la metà di un foglio. Indipendentemente dalla lunghezza, la procedura deve svolgere bene il suo compito. Collaudo e messa a punto 6.2 La procedure piccole sono più semplici da provare, correggere e capire di quelle più grandi. Obiettivo efficienza 6.2 Quando un programmatore divide una procedura in numerose procedure che comunicano fra di loro, questo processo di comunicazione richiede tempo e, a volte, riduce le prestazioni del programma. Ingegneria del software 6.8 Le intestazioni e le chiamate delle procedure devono concordare con il numero, il tipo e l ordine dei parametri. Il Paragrafo 6.17 tratta le eccezioni a questa regola. 6.4 Procedure Function Le procedure Function sono simili alle procedure Sub, con una differenza importante: le procedure Function restituiscono un valore alla procedura chiamante, le procedure Sub no. L applicazione della Figura 6.3 usa la procedura Function Square per calcolare i quadrati dei numeri interi compresi fra 1 e 10.

7 PROCEDURE Figura 6.3: SquareInteger.vb 2 Procedura Function per calcolare i quadrati 3 4 Module modsquareinteger 5 6 Sub Main() 7 Dim i As Integer contatore 8 9 Console.WriteLine( Number & vbtab & Square & vbcrlf) calcola i quadrato di numeri interi da 1 a For i = 1 To Console.WriteLine(i & vbtab & Square(i)) 14 Next End Sub Main Esegue Function Square 19 soltanto se la funzione è esplicitamente chiamata 20 Function Square(ByVal y As Integer) As Integer 21 Return y ^ 2 22 End Function Square End Module modsquareinteger Number Square Figura 6.3 La procedura Function Square calcola il quadrato di numeri interi La struttura For (righe 12-14) visualizza i risultati dei quadrati dei primi 10 numeri interi. Ogni iterazione del ciclo calcola il quadrato della variabile di controllo i e visualizza il risultato nella finestra di comando. La procedura Function Square viene chiamata (riga 13) con l espressione Square(i). Quando il controllo del programma raggiunge questa espressione, viene chiamata la funzione Function Square (righe 20-22). A questo punto, il programma crea una copia del valore di i (l argomento) e il controllo passa alla prima riga di Function Square. La procedura Square riceve la copia del valore di i, che registra nel parametro y. La riga 21 è un istruzione Return, che termina l esecuzione della procedura e fornisce il risultato di y ^ 2 al caller. Il risultato viene restituito al punto della riga 13 dove è stata chiamata la procedura Square. La riga 13 visualizza il valore di i e il valore fornito da Square nella finestra di comando. Questo processo si ripete 10 volte.

8 152 CAPITOLO 6 Il formato della definizione di una procedura Function è il seguente: Function nome-procedura(lista-parametri) ) As tipo-risultato dichiarazioni e istruzioni End Function I termini nome-procedura, lista-parametri, dichiarazioni e istruzioni hanno lo stesso significato dei corrispondenti termini nella definizione di una procedura Sub. Nell intestazione della procedura Function, il termine tipo-risultato indica il tipo di dati del risultato che la procedura fornirà al programma che l ha chiamata. L istruzione Return espressione può essere inserita nel corpo di una procedura Function e restituisce il valore dell espressione al caller. Se necessario, Visual Basic tenta di convertire l espressione nel tipo-risultato della procedura Function. Le procedure Function restituiscono un solo valore. Quando viene eseguita l istruzione Return, il controllo ritorna immediatamente al punto in cui la procedura è stata chiamata. Errore tipico 6.4 Se l espressione di un istruzione Return non può essere convertita nel tipo-risultato della procedura Function, si verifica un errore durante l esecuzione (errore di runtime). Errore tipico 6.5 Se una procedura Function non fornisce un risultato (manca l istruzione Return), la procedura restituisce il valore di default, che spesso genera un errore di output. 6.5 Metodi Un metodo è una procedura qualsiasi che è contenuta all interno di una classe. Abbiamo già presentato vari metodi FCL (ovvero i metodi contenuti in classi che appartengono a FCL). I programmatori possono definire i loro metodi all interno di classi personalizzate, per esempio una classe utilizzata per definire un applicazione Windows. La Figura 6.4 riporta un applicazione Windows che usa due metodi per calcolare il maggiore di tre valori Double. Molte delle applicazioni finora presentate hanno facilitato l interazione con l utente utilizzando la finestra di comando (dove l utente può digitare un valore di input per il programma) o una finestra di dialogo (che presenta un messaggio all utente e gli consente di fare clic sul pulsante OK per confermare i dati della finestra). Nel Capitolo 4 abbiamo introdotto le applicazioni Windows creando un programma che visualizzava le informazioni in una label di un form. Sebbene la finestra di comando e le finestre di dialogo siano strumenti validi per ricevere l input dall utente e visualizzare l output, tuttavia le loro capacità sono limitate: la finestra di comando può ricevere una sola riga di input alla volta dall utente e la finestra di dialogo può visualizzare soltanto un messaggio. È normale ricevere più input alla volta (come i tre valori di questo esempio) o visualizzare contemporaneamente più blocchi di dati. Per introdurre un interfaccia di programmazione più sofisticata, il programma della Figura 6.4 usa la gestione degli eventi dell interfaccia GUI (ovvero la capacità di reagire a una variazione dello stato dell interfaccia GUI, come quando l utente fa clic su un pulsante).

9 PROCEDURE 153 La classe FrmMaximum usa un interfaccia GUI che è formata da tre TextBoxes (txtfirst txtfirst, txtsecond e txtthird) per l input dell utente, un pulsante (cmdmaximum cmdmaximum) per svolgere i calcoli e quattro Label, fra cui lblmaximum, per visualizzare i risultati. Abbiamo creato questi componenti visivamente, mediante Toolbox, e abbiamo cambiato le loro proprietà nella finestra Properties. Le righe 7-21 sono dichiarazioni che indicano il nome di ogni componente. Sebbene queste righe di codice facciano parte del codice generato da Visual Studio.NET, le abbiamo riportate per indicare gli oggetti che fanno parte del form (come sempre, il codice completo di questo programma può essere scaricato dal sito Web indicato nella Prefazione del libro). 1 Figura 6.4: Maximum.vb 2 Trova il massimo di tre numeri di input 3 4 Public Class FrmMaximum 5 Inherits System.Windows.Forms.Form 6 7 richiede i tre valori di input 8 Friend WithEvents lblone As System.Windows.Forms.Label 9 Friend WithEvents lbltwo As System.Windows.Forms.Label 10 Friend WithEvents lblthree As System.Windows.Forms.Label visualizza il risultato 13 Friend WithEvents lblmaximum As System.Windows.Forms.Label legge tre numeri 16 Friend WithEvents txtfirst As System.Windows.Forms.TextBox 17 Friend WithEvents txtsecond As System.Windows.Forms.TextBox 18 Friend WithEvents txtthird As System.Windows.Forms.TextBox legge gli input e calcola il risultato 21 Friend WithEvents cmdmaximum As System.Windows.Forms.Button codice generato da Visual Studio.NET acquisisce i valori dai box di testo, avvia Maximum 26 Private Sub cmdmaximum_click(byval sender As System.Object, _ 27 ByVal e As System.EventArgs) Handles cmdmaximum.click Dim value1, value2, value3 As Double value1 = txtfirst.text 32 value2 = txtsecond.text 33 value3 = txtthird.text lblmaximum.text = Maximum(value1, value2, value3) 36 End Sub cmdmaximum_click 37 Figura 6.4 Il metodo che determina il massimo di tre numeri (continua)

10 154 CAPITOLO 6 38 trova il massimo di tre valori 39 Function Maximum(ByVal valueone As Double, _ 40 ByVal valuetwo As Double, ByVal valuethree As Double) Return Math.Max(Math.Max(valueOne, valuetwo), valuethree) 43 End Function Maximum End Class FrmMaximum Figura 6.4 Il metodo che determina il massimo di tre numeri La riga 5 indica che la classe FrmMaximum eredita (Inherits Inherits) le proprietà dalla classe System.Windows.Forms.Form. Ricordiamo che tutti i form derivano da System.Windows. Forms.Form. Una classe può ereditare gli attributi e i comportamenti (dati e metodi) da un altra classe, se il nome della classe viene specificato a destra della parola chiave Inherits. Il Capitolo 9 tratta dettagliatamente l ereditarietà. FrmMaximum contiene due metodi definiti dal programmatore. Il metodo Maximum (righe 39-43) riceve tre parametri Double e fornisce il valore massimo di questi parametri. Notate che la definizione di questo metodo somiglia alla definizione di una procedura Function in un modulo. Il programma include anche il metodo cmdmaximum_click (righe 26-36). Quando l utente fa doppio clic su un componente, come Button, in modalità progetto, l IDE genera un metodo che gestisce un evento (gestore di eventi). Un evento rappresenta un azione dell utente, per esempio fare clic su un pulsante (Button Button) o modificare un valore. Un gestore di eventi è un metodo che viene eseguito quando si verifica un determinato evento. In questo caso, il metodo cmdmaximum_click gestisce l evento in cui l utente fa clic sul pulsante cmdmaximum. I programmatori scrivono il codice per svolgere determinati compiti quando si verificano tali eventi. Impiegando gli eventi e gli oggetti, i programmatori possono creare applicazioni che consentono di interagire in modo più sofisticato con l utente rispetto a quanto finora visto. I nomi dei gestori degli eventi creati dall IDE iniziano con il nome dell oggetto, seguito dal simbolo di sottolineatura e dal nome dell evento. Nel Capitolo 12 spiegheremo le tecniche che consentono a un programmatore di creare i propri gestori di eventi. Quando l utente fa clic sul pulsante cmdmaximum, viene eseguita la procedura cmdmaximum_click (righe 26-36). Le righe leggono i valori contenuti nei tre box di testo utilizzando la proprietà Text. I valori vengono convertiti implicitamente nel tipo Double e memorizzati nelle variabili value1, value2 e value3.

11 PROCEDURE 155 La riga 35 chiama il metodo Maximum (righe 39-43) con gli argomenti value1, value2 e value3. I valori di questi argomenti vengono poi memorizzati nei parametri valueone, valuetwo e valuethree nel metodo Maximum. Questo metodo fornisce il risultato dell espressione nella riga 42, che effettua due chiamate del metodo Max della classe Math. Il metodo Max calcola il massimo dei suoi due argomenti Double; la riga 42 prima confronta valueone e valuetwo e poi il valore fornito a valuethree dalla prima chiamata del metodo. Le chiamate dei metodi, come Math.Max, che sono definite in una classe di FCL devono includere il nome della classe e l operatore punto (.), detto anche operatore di accesso ai membri. Le chiamate dei metodi definiti nella classe che contiene le chiamate, invece, richiedono soltanto che sia specificato il nome del metodo. Quando il controllo del programma ritorna al metodo cmdmaximum_click, la riga 35 assegna il valore fornito dal metodo Maximum alla proprietà Text di lblmaximum, che così viene visualizzato all utente. Notate che, quando digitate la parentesi aperta dopo il nome di un metodo o di una procedura, Visual Studio visualizza una finestra che contiene i nomi e i tipi degli argomenti della procedura. Questa è la caratteristica Parameter Info dell IDE (Figura 6.5). La finestra Parameter Info semplifica notevolmente il codice, perché identifica le procedure accessibili e i loro argomenti. La finestra Parameter Info visualizza anche le informazioni delle procedure definite dai programmatori e tutti i metodi contenuti in FCL. Buona abitudine 6.4 Per rendere più significative le informazioni fornite dalla finestra Parameter Info, assegnate ai parametri dei nomi che descrivono bene le loro funzioni. Visual Basic dispone anche della caratteristica IntelliSense, che visualizza tutti i membri di una classe. Per esempio, quando il programmatore digita l operatore punto (.) dopo il nome di una classe (Math Math, nella Figura 6.6), IntelliSense fornisce un elenco di tutti i metodi disponibili nella classe. La classe Math contiene numerosi metodi che consentono al programmatore di svolgere molte delle più comuni operazioni matematiche. Il prospetto della Figura 6.7 riporta alcuni metodi FCL della classe Math. Le variabili x e y di questo prospetto sono di tipo Double, tuttavia molti metodi hanno versioni che accettano valori di altro tipo come argomenti. La classe Math definisce anche due costanti matematiche: Math.PI e Math.E. La costante Math.PI ( ) è il rapporto fra la circonferenza di un cerchio e il suo diametro. La costante Math.E ( ) è la base dei logaritmi naturali (calcolati con il metodo Math.Log). La finestra Parameter Info Figura 6.5 La finestra Parameter Info dell IDE di Visual Studio.NET

12 156 CAPITOLO 6 La finestra IntelliSense Figura 6.6 La finestra IntelliSense dell IDE di Visual Studio.NET Errore tipico 6.6 È un errore di sintassi chiamare un metodo della classe Math senza anteporre al metodo il nome della classe Math e l operatore punto (.). Ingegneria del software 6.9 Non è necessario aggiungere un riferimento assembly per utilizzare i metodi della classe Math in un programma, in quanto questa classe si trova nel namespace System, che viene implicitamente aggiunto a tutte le applicazioni della console. 6.6 Promozione degli argomenti Un altra importante caratteristica delle definizioni delle procedure è la coercizione degli argomenti, che consiste nel forzare un argomento a diventare del tipo appropriato per essere passato a una procedura. Visual Basic supporta le conversioni di ampliamento e di riduzione. La conversione di ampliamento si verifica quando un tipo di dati viene trasformato in un altro tipo (che di solito può contenere più dati) senza perdita di dati. La conversione di riduzione si verifica quando c è il rischio di perdere dati durante la trasformazione da un tipo di dati a un tipo che può contenere meno dati. La Figura 6.8 elenca le conversioni di ampliamento supportate da Visual Basic. Per esempio, il metodo Sqrt della classe Math può essere chiamato con un argomento intero, anche se il metodo è definito nella classe Math in modo da ricevere un argomento Double. L istruzione Console.Write(Math.Sqrt(4)) valuta correttamente Math.Sqrt(4) e visualizza il valore 2. Visual Basic promuove (converte) il valore intero 4 nel valore Double 4.0 prima che il valore venga passato a Math.Sqrt. In questo caso, il valore dell argomento non corrisponde esattamente al tipo di parametro nella definizione del metodo, quindi viene effettuata una conversione di ampliamento implicita che trasforma il valore nel tipo appropriato, prima che il metodo venga chiamato. Visual Basic effettua anche conversioni di riduzione degli argomenti che vengono passati alle procedure. Per esempio, se la variabile di stringa number contiene il valore 4, il metodo Math.Sqrt(number) fornisce correttamete il valore 2. Tuttavia, alcune conversioni di ridu-

13 PROCEDURE 157 Metodo Descrizione Esempio Abs(x) Calcola il valore assoluto di x Abs(23.7) è 23.7 Abs(0) è 0 Abs( 23.7) è 23.7 Ceiling(x) Arrotonda x all intero più piccolo Ceiling(9.2) è 10.0 non minore di x Ceiling( 9.8) è 9.0 Cos(x) Calcola il coseno di x (x in radianti) Cos(0.0) è 1.0 Exp(x) Calcola la potenza e x Exp(1.0) è approssimativamente pari a Exp(2.0) è approssimativamente pari a Floor(x) Arrotonda x all intero più grande Floor(9.2) è 9.0 non maggiore di x Floor( 9.8) è 10.0 Log(x) Calcola il logaritmo naturale Log( ) è (in base e) di x approssimativamente pari a 1.0 Log( ) è approssimativamente pari a 2.0 Max(x, y) Fornisce il valore massimo fra x e y Max(2.3, 12.7) è 12.7 (ha le versioni per i valori Single, Max( 2.3, 12.7) è 2.3 Integer e Long) Min(x, y) Fornisce il valore minimo fra x e y Min(2.3, 12.7) è 2.3 (ha le versioni per i valori Single, Min( 2.3, 12.7) è 12.7 Integer e Long) Pow(x, y) Calcola x elevato a y (x y ) Pow(2.0, 7.0) è Pow(9.0,.5) è 3.0 Sin(x) Calcola il seno di x (x in radianti) Sin(0.0) è 0.0 Sqrt(x) Calcola la radice quadrata di x Sqrt(9.0) è 3.0 Sqrt(2.0) è Tan(x) Calcola la tangente di x (x in radianti) Tan(0.0) è 0.0 Figura 6.7 Metodi della classe Math zione possono fallire, provocando degli errori logici e di runtime. Per esempio, se number contiene il valore ciao e viene passato al metodo Math.Sqrt, si verifica un errore di runtime. Nel prossimo paragrafo esamineremo alcune precauzioni che può prendere il programmatore per evitare questi problemi. Errore tipico 6.7 Quando si effettua una conversione di riduzione (per esempio, da Double a Integer), la trasformazione di un valore da un tipo di dato primitivo a un altro tipo di dato primitivo potrebbe modificare il valore. Inoltre, la conversione da un valore intero a un valore floating-point e poi di nuovo a un valore intero può introdurre nel risultato degli errori di arrotondamento.

14 158 CAPITOLO 6 Tipi di dati Boolean Byte Char Date Decimal Double Integer Long Object Short Single String Tipi di conversioni Object Short, Integer, Long, Decimal, Single, Double o Object String o Object Object Single, Double o Object Object Long, Decimal, Single, Double o Object Decimal, Single, Double o Object nessuno Integer, Long, Decimal, Single, Double o Object Double o Object Object Figura 6.8 Conversioni di ampliamento di Visual Basic La promozione degli argomenti si applica non soltanto ai valori dei dati primitivi che vengono passati come argomenti ai metodi, ma anche alle espressioni che contengono i valori di due o più tipi di dati. Queste espressioni sono chiamate espressioni di tipo misto. In un espressione di tipo misto ogni valore viene promosso al tipo più alto dell espressione (in altre parole, la conversione di ampliamento continua finché i valori non saranno dello stesso tipo). Per esempio, se singlenumber è di tipo Single e integernumber è di tipo Integer, quando Visual Basic calcola l espressione singlenumber + integernumber il valore di integernumber viene convertito nel tipo Single e poi sommato a single- Number, generando un risultato di tipo Single. Sebbene i tipi di dati originali dei valori siano mantenuti, viene creata una versione temporanea di ogni valore da utilizzare nell espressione e i tipi di dati delle versioni temporanee vengono modificati in modo appropriato. 6.7 Conversione dei tipi di dati Visual Basic offre varie opzioni per controllare il modo in cui il compilatore dovrà gestire i tipi di dati. Queste opzioni possono aiutare i programmatori a evitare gli errori derivanti dalle conversioni di riduzione degli argomenti, rendendo il codice più leggibile e sicuro. La prima opzione è Option Explicit, che è impostata a On per default (nel senso che è stata abilitata nei programmi Visual Basic creati nei Capitoli 2-5). Option Explicit forza il programmatore a dichiarare esplicitamente tutte le variabili prima che siano utilizzate nel programma. Forzando le dichiarazioni esplicite, si eliminano gli errori ortografici e altri errori subdoli che possono verificarsi se Option Explicit non è attivata. Per esempio, se Option Explicit è impostata a Off, il compilatore interpreta i nomi delle variabili che hanno errori ortografici come nuove dichiarazioni di variabili, generando così degli errori difficili da identificare.

15 PROCEDURE 159 Un altra opzione, che per default è impostata a Off, è Option Strict. Visual Basic fornisce Option Strict come strumento per migliorare la leggibilità dei programmi e per ridurre il tempo di debugging. Se è impostata a On, Option Strict forza il compilatore a controllare tutte le conversioni degli argomenti e richiede al programmatore di svolgere una conversione esplicita per tutte le conversioni di riduzione che potrebbero causare la perdita dei dati (conversione da Double a Integer) o la conclusione del programma (conversione di una variabile di tipo String, come ciao, a Integer). I metodi della classe Convert cambiano i tipi di dati in modo esplicito. Il nome del metodo di conversione è formato dalla parola chiave To seguita dal nome del tipo di dati in cui il metodo dovrà convertire il suo argomento. Per esempio, per memorizzare la stringa immessa in input dall utente nella variabile number di tipo Integer (rappresentata in Visual Basic.NET come tipo Int32, un numero intero a 32 bit) con Option Strict impostata a On, utilizziamo l istruzione number = Convert.ToInt32(Console.ReadLine()) Quando Option Strict è impostata a Off, Visual Basic svolge implicitamente queste conversioni di tipo, nel senso che il programmatore potrebbe non rendersi conto che sta per essere effettuata una conversione di riduzione. Se i dati che stanno per essere convertiti non sono compatibili con il nuovo tipo di dati, si verifica un errore di runtime. Option Strict richiama l attenzione del programmatore sulle conversioni di riduzione, in modo che possano essere eliminate del tutto o gestite in modo appropriato. Nel Capitolo 11 descriveremo le tecniche per gestire gli errori provocati dal fallimento delle conversioni di riduzione degli argomenti. Ingegneria del software 6.10 Le conversioni esplicite consentono ai programmi di essere eseguiti in modo più efficiente, perché non è necessario determinare il tipo di dati da modificare prima di effettuare la conversione. Da questo punto in poi, tutti gli esempi avranno Option Strict impostata a On. Option Strict può essere attivata attraverso l IDE facendo clic con il pulsante destro del mouse sul nome del progetto in Solution Explorer. Dal menu risultante, selezionate Properties per aprire la finestra di dialogo Property Pages rappresentata nella Figura 6.9. Dall albero delle directory, che si trova a sinistra in questa finestra di dialogo, selezionate Build dall elenco Common Properties. Al centro della finestra di dialogo c è una casella a discesa chiamata Option Strict. Per default, questa opzione è impostata a Off. Selezionate On dalla casella a discesa e fate clic sul pulsante Apply. Se Option Strict è impostata a On nella finestra Property Pages, i suoi effetti si applicano globalmente all intero progetto. Il programmatore può anche abilitare Option Strict all interno di un singolo file di codice, digitando Option Strict On all inizio del codice, prima delle dichiarazioni e delle istruzioni Imports. 6.8 Valori e riferimenti Nel prossimo paragrafo descriveremo le tecniche per passare gli argomenti alle procedure come valori o come riferimenti. Per capire questo, occorre prima fare una distinzione fra i tipi di dati in Visual Basic.

16 160 CAPITOLO 6 Figura 6.9 La finestra di dialogo Property Pages con Option Strict impostata a On I tipi di dati di Visual Basic possono essere classificati come valori primitivi o come riferimenti a valori primitivi. Una variabile di tipo valore primitivo contiene i dati effettivi. Di solito, il valore primitivo viene utilizzato per un singolo dato, come un valore Integer o Double. Invece, una variabile di tipo riferimento contiene l indirizzo di una locazione della memoria dove sono registrati i dati. La locazione in memoria può contenere più dati. I dati di tipo riferimento sono globalmente detti oggetti e sono descritti nei Capitoli 8, 9 e 10. Entrambi i tipi di dati (valore e riferimento) includono tipi predefiniti e tipi creati dal programmatore. I tipi di valori predefiniti includono i tipi numeri interi (Byte Byte, Short, Integer e Long), i tipi floating-point (Single e Double) e i tipi Boolean, Date, Decimal e Char. I tipi di riferimenti predefiniti includono Object e String (anche se il tipo String spesso si comporta più come un valore, come vedremo nel prossimo paragrafo). I tipi di valori che possono essere costruiti dal programmatore includono le strutture (Structure Structure) e le enumerazioni (Enum Enum). I tipi di riferimenti che possono essere creati dal programmatore includono le classi, le interfacce e le classi delegate. I tipi di dati definiti dal programmatore sono descritti nei Capitoli 8, 9 e 14. La tabella nella Figura 6.10 elenca i tipi di dati primitivi che formano i blocchi di costruzione per tipi di dati più complessi, come le classi. Se Option Explicit è impostata a On, tutte le variabili devono avere un tipo di dati prima di essere utilizzate in un programma. La tabella fornisce per ogni tipo di valore la dimensione in bit (un byte è formato da 8 bit) e l intervallo dei valori consentiti. Per favorire la portabilità, la Microsoft ha scelto di utilizzare gli standard internazionali sia per i formati dei caratteri (Unicode) sia per i numeri floatingpoint (IEEE 754). I valori digitati direttamente nel codice del programma si chiamano literal. Ogni literal corrisponde a uno dei tipi di dati primitivi. Abbiamo già visto i valori literal per i tipi di dati

17 PROCEDURE 161 Tipo Dimensione (bit) Valori (*) Standard Boolean 16 True o False Char 16 Un carattere Unicode Unicode Byte 8 Da 0 a 255 Date 64 Dal 1 gennaio 0001 al 31 dicembre 9999 Da 0:00:00 a 23:59:59 Decimal 128 Da 1.0E 28 a 7.9E+28 Short 16 Da 32,768 a 32,767 Integer 32 Da 2,147,483,648 a 2,147,483,647 Long 64 Da 9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 Single 32 Da ±1.5E 45 a ±3.4E+38 IEEE 754 Double 64 Da ±5.0E 324 a ±1.7E+308 IEEE 754 Object 32 Dato di qualsiasi tipo String Da 0 a circa 2 miliardi di caratteri Unicode Unicode (*) Nella notazione anglosassone, il punto (.) serve a separare la parte intera dalla parte decimale di un numero, mentre la virgola (,) serve a separare le migliaia della parte intera. Figura 6.10 Tipi di dati primitivi di Visual Basic più comuni, come String, Integer e Double. Tuttavia, alcuni tipi di dati di Visual Basic usano delle notazioni speciali per creare i valori literal. Per esempio, per creare un valore literal di tipo Char, basta aggiungere la lettera c dopo un singolo carattere di tipo String. L istruzione Dim character As Char = Z c dichiara la variabile character di tipo Char e la inizializza con la lettera Z. Analogamente, è possibile creare i valori literal di specifici numeri interi, aggiungendo a un valore il carattere S (per Short), I (per Integer) o L (per Long). Per creare literal floating-point, basta accodare al valore floating-point il carattere F (per Single) o R (per Double). Il carattere D può essere utilizzato per creare literal Decimal. Visual Basic consente anche di creare literal floating-point nella notazione scientifica: digitate il numero floating-point seguito dal character E e da un esponente positivo o negativo di una potenza di 10. Per esempio, 1.909E 5 corrisponde al valore Questa notazione è utile per specificare valori floating-point che sono troppo grandi o troppo piccoli da scrivere nella notazione fixed-point. La Figura 6.11 elenca i caratteri di tipo adottati da Visual Basic e i corrispondenti esempi di literal per ogni tipo di dato. Tutti i valori literal devono essere compresi negli intervalli dei corrispondenti tipi di dati riportati nella Figura 6.10.

18 162 CAPITOLO 6 Tipo di dato Carattere di tipo Esempio Char c u c Single F 9.802E+31F Double R 6.04E 187R Decimal D D Short S 3420S Integer I 867I Long L L Figura 6.11 Literal con i caratteri di tipo 6.9 Passare gli argomenti Gli argomenti possono essere passati alle procedure in due modi: come valori o come riferimenti. Quando un argomento viene passato come valore, il programma crea una copia del valore dell argomento e la passa alla procedura chiamata. Quando l argomento viene passato come valore, le modifiche apportate alla copia della procedura chiamata non influiscono sul valore della variabile originale. Se, invece, l argomento viene passato come riferimento, il caller consente alla procedura chiamata di accedere e modificare direttamente i dati originali. La Figura 6.12 dimostra come passare gli argomenti di tipo valore come valori e come riferimenti (il Capitolo 7 descrive come passare gli argomenti di tipo riferimento come valori e come riferimenti). Il programma passa tre variabili di tipo valore (number1 number1, number2 e number3) in vari modi alle procedure SquareByValue (righe 39-45) e SquareByReference (righe 48-54). La parola chiave ByVal nell intestazione della procedura di SquareByValue (riga 39) indica che gli argomenti di tipo valore devono essere passati come valori. Quando la variabile number1 viene passata a SquareByValue (riga 13), una copia del valore memorizzato in number1 (2) viene passata alla procedura. Quindi, il valore di number1 nella procedura che effettua la chiamata (Main Main) non viene modificato quando il parametro number viene elevato al quadrato nella procedura SquareByValue (riga 42). La procedura SquareByReference usa la parola chiave ByRef (riga 48) per ricevere il suo parametro di tipo valore come riferimento. Quando Main chiama SquareByReference (riga 23), viene passato un riferimento al valore memorizzato in number2, che consente a SquareByReference di accedere direttamente al valore memorizzato nella variabile originale. Quindi, il valore memorizzato in number2 dopo l esecuzione di SquareByReference è uguale al valore finale del parametro number. Quando gli argomenti sono racchiusi fra parentesi tonde, una copia del valore dell argomento viene passato alla procedura, anche se l intestazione della procedura include la parola chiave ByRef. Quindi, il valore di number3 non cambia dopo che è stato passato a SquareByReference (riga 33) fra parentesi. Passare gli argomenti di tipo valore con la parola chiave ByRef è utile quando occorre che le procedure possano modificare direttamente i valori degli argomenti. Tuttavia, passare gli argomenti come riferimenti può compromettere la sicurezza dei dati, perché la procedura chiamata può modificare i dati del caller.

19 PROCEDURE 163 Una variabile tipo riferimento passata con la parola chiave ByVal viene passata effettivamente come riferimento, in quanto il valore che viene copiato è il riferimento per l oggetto. Sebbene Visual Basic consenta ai programmatori di utilizzare la parola chiave ByRef con i parametri tipo riferimento, di solito, non è necessario fare questo, tranne con il tipo String. Sebbene, tecnicamente, gli argomenti String siano riferimenti, tuttavia non possono essere modificati direttamente quando sono passati con la parola chiave ByVal, a causa di alcuni piccoli dettagli del tipo di dati String, che saranno descritti nel Capitolo Figura 6.12: ByRefTest.vb 2 Passare gli argomenti come riferimenti 3 4 Module modbyreftest 5 6 calcola il quadrato di tre valori; visualizza i risultati 7 Sub Main() 8 Dim number1 As Integer = Console.WriteLine( Passing a value-type argument by value: ) 11 Console.WriteLine( Before calling SquareByValue, & _ 12 number1 is {0}, number1) 13 SquareByValue(number1) passa number1 come valore 14 Console.WriteLine( After returning from SquareByValue, & _ 15 number1 is {0} & vbcrlf, number1) Dim number2 As Integer = Console.WriteLine( Passing a value-type argument & _ 20 by reference: ) 21 Console.WriteLine( Before calling SquareByReference, & _ 22 number2 is {0}, number2) 23 SquareByReference(number2) passa number2 come riferimento 24 Console.WriteLine( After returning from & _ 25 SquareByReference, number2 is {0} & vbcrlf, number2) Dim number3 As Integer = Console.WriteLine( Passing a value-type argument & _ 30 by reference, but in parentheses: ) 31 Console.WriteLine( Before calling SquareByReference & _ 32 using parentheses, number3 is {0}, number3) 33 SquareByReference((number3)) passa number3 come valore 34 Console.WriteLine( After returning from & _ 35 SquareByReference, number3 is {0}, number3) End Sub Main quadrato di un argomento passato come valore (ByVal) 40 Sub SquareByValue(ByVal number As Integer) Figura 6.12 Applicazione di ByVal e ByRef per passare gli argomenti (continua)

20 164 CAPITOLO 6 41 Console.WriteLine( After entering SquareByValue, & _ 42 number is {0}, number) 43 number *= number 44 Console.WriteLine( Before exiting SquareByValue, & _ 45 number is {0}, number) 46 End Sub SquareByValue quadrato di un argomento passato come riferimento (ByRef) 49 Sub SquareByReference(ByRef number As Integer) 50 Console.WriteLine( After entering SquareByReference & _ 51, number is {0}, number) 52 number *= number 53 Console.WriteLine( Before exiting SquareByReference & _ 54, number is {0}, number) 55 End Sub SquareByReference End Module modbyreftest Passing a value-type argument by value: Before calling SquareByValue, number1 is 2 After entering SquareByValue, number is 2 Before exiting SquareByValue, number is 4 After returning from SquareByValue, number1 is 2 Passing a value-type argument by reference: Before calling SquareByReference, number2 is 2 After entering SquareByReference, number is 2 Before exiting SquareByReference, number is 4 After returning from SquareByReference, number2 is 4 Passing a value-type argument by reference, but in parentheses: Before calling SquareByReference using parentheses, number3 is 2 After entering SquareByReference, number is 2 Before exiting SquareByReference, number is 4 After returning from SquareByReference, number3 is 2 Figura 6.12 Applicazione di ByVal e ByRef per passare gli argomenti Collaudo e messa a punto 6.3 Quando gli argomenti sono passati come valori, le modifiche della copia della procedura chiamata non influenzano il valore della variabile originale. Questo evita potenziali effetti collaterali che potrebbero ostacolare lo sviluppo di corretti e affidabili sistemi software. Passate sempre gli argomenti di tipo valore come valori, a meno che non vogliate che la procedura chiamata possa modificare direttamente i dati del caller. Ingegneria del software 6.11 Sebbene le parole chiave ByVal e ByRef possano essere utilizzate per passare le variabili tipo riferimento come valori o come riferimenti, la procedura chiamata può manipolare direttamente la variabile tipo riferimento del caller in entrambi i casi. Di conseguenza, raramente è appropriato utilizzare ByRef con le variabili tipo riferimento. Questo particolare argomento sarà analizzato nel Capitolo 7.

21 PROCEDURE Durata degli identificatori Nei precedenti capitoli abbiamo utilizzato gli identificatori per vari scopi, per esempio come nomi di variabili, classi e procedure definite dai programmatori. Gli identificatori contenuti in un programma possiedono altri attributi, tra cui la durata e la visibilità. La durata o ciclo di vita di un identificatore è il periodo durante il quale l identificatore esiste nella memoria. Alcuni identificatori esistono soltanto per un breve periodo di tempo, altri vengono ripetutamente creati e distrutti; altri ancora esistono per l intera esecuzione di un programma. La visibilità di un identificatore è la porzione del programma dove l identificatore può essere oggetto di riferimenti. Alcuni identificatori possono essere referenziati all interno dell intero programma, mentre altri soltanto in specifiche porzioni del programma. Questo paragrafo prende in esame la durata degli identificatori, mentre il prossimo parlerà della loro visibilità. Ingegneria del software 6.12 Quando un istruzione Return fornisce le informazioni di una procedura Function, le variabili di tipo valore sono sempre restituite come valori (una copia dei valori originali), mentre le variabili di tipo riferimento sono sempre restituite come riferimenti (viene restituito un riferimento a un oggetto). Gli identificatori che rappresentano delle variabili locali in una procedura (variabili e parametri dichiarati nel corpo della procedura) hanno una durata automatica. Le variabili con durata automatica vengono create quando il controllo del programma raggiunge la procedura dove sono dichiarate, esistono per tutto il tempo in cui è attiva la procedura e vengono distrutte quando la procedura termina (le variabili di una procedura possono essere dichiarate anche con la parola chiave Static; in questo caso, la variabile viene creata e inizializzata durante la prima esecuzione della procedura, che mantiene il suo valore fra le successive chiamate). Da questo momento in poi, faremo riferiremo a queste variabili usando il termine variabili automatiche o variabili locali. Le variabili dichiarate all interno di un modulo o di una classe, ma all esterno della definizione di una procedura, esistono finché la classe o il modulo che le contengono sono in memoria. Le variabili dichiarate in un modulo esistono durante l esecuzione del programma. Per default, una variabile dichiarata in una classe, come la classe Form per un applicazione Windows, è una variabile di istanza. Nel caso della classe Form, questo significa che la variabile viene creata quando la classe Form viene caricata in memoria ed esiste finché Form non sarà chiusa. Le variabili di istanza di una classe sono descritte nel Capitolo 8. Ingegneria del software 6.13 La durata automatica è un esempio del principo dei privilegi minimi, che stabilisce che ogni componente di un sistema deve godere dei diritti e dei privilegi che sono strettamente necessari per svolgere il suo compito. Questo consente di ridurre i rischi di errori accidentali nei sistemi. Perché mantenere in memoria variabili che non sono richieste? 6.11 Regole di visibilità La visibilità di una variabile, di un riferimento o metodo è la parte di programma in cui è possibile accedere all identificatore. Un identificatore può avere visibilità nella classe, nel modulo nel namespace e nel blocco.

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

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

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

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

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

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

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

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

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie Facoltà di Scienze Motorie CHE COS È UN FOGLIO ELETTRONICO Una tabella che contiene parole e numeri che possono essere elaborati applicando formule matematiche e funzioni statistiche. Esame di Informatica

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

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

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro 6 Giugno 2007 Felice Iavernaro (Univ.

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

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

Gestione Rapporti (Calcolo Aree)

Gestione Rapporti (Calcolo Aree) Gestione Rapporti (Calcolo Aree) L interfaccia dello strumento generale «Gestione Rapporti»...3 Accedere all interfaccia (toolbar)...3 Comandi associati alle icone della toolbar...4 La finestra di dialogo

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

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

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

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

Introduzione al Foglio Elettronico

Introduzione al Foglio Elettronico Microsoft Excel Introduzione al Foglio Elettronico Il Foglio Elettronico Si presenta come una grande tabella su un foglio di carta Le celle contengono differenti dati Numeri Testo Date Ecc I dati possono

Dettagli

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive Università degli Studi di Torino - Facoltà di Medicina Veterinaria Laboratorio di epidemiologia delle malattie infettive Scuola Specializzazione in Sanità Animale, Allevamento e Produzioni Zootecniche

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

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

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

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

Visual Basic.NET La Gestione degli Errori di Federico BARBATI

Visual Basic.NET La Gestione degli Errori di Federico BARBATI Generalità Visual Basic.NET La Gestione degli Errori di Federico BARBATI La gestione degli errori, è una parte fondamentale di un codice ben progettato. Fino ad oggi, gli errori nelle applicazioni scritte

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

Novità di Access 2010

Novità di Access 2010 2 Novità di Access 2010 In questo capitolo: Gestire le impostazioni e i file di Access nella visualizzazione Backstage Personalizzare l interfaccia utente di Access 2010 Creare database utilizzando modelli

Dettagli

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002 Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE

Dettagli

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

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

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

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

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

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

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 9

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 9 Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 9 Anno accademico 2006-07 Titolare corso: Prof. Costanza Torricelli Docente: Dott.ssa Marianna Brunetti Variabili

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database Microsoft Access Introduzione alle basi di dati Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale limitato Meccanismi di sicurezza, protezione di dati e gestione

Dettagli

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante Tiipii dii Datii iin Viisuall Basiic Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante l'esecuzione di un'applicazione. Alle variabili è associato un nome, utilizzato

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

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

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

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

Workland CRM. Workland CRM Rel 2570 21/11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX

Workland CRM. Workland CRM Rel 2570 21/11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX Attività Attività --> FIX In alcuni casi, in precedenza, sulla finestra trova attività non funzionava bene la gestione dei limiti tra date impostati tramite il menu a discesa (Oggi, Tutte, Ultima Settimana,

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

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

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

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

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

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

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

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

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

4. Un ambiente di sviluppo per Java

4. Un ambiente di sviluppo per Java pag.15 4. Un ambiente di sviluppo per Java Esistono in commercio molti ambienti di sviluppo utilizzati dai programmatori Java, in particolare si tratta di editor complessi che mettono a disposizione tools

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

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

MODULO 4: FOGLIO ELETTRONICO (EXCEL) MODULO 4: FOGLIO ELETTRONICO (EXCEL) 1. Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei Personal computer. Essi

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools Una breve introduzione operativa a STGraph Luca Mari, versione 5.3.11 STGraph è un sistema software per creare, modificare ed eseguire modelli di sistemi dinamici descritti secondo l approccio agli stati

Dettagli

STRUMENTI. Impostare una presentazione I programmi di presentazione

STRUMENTI. Impostare una presentazione I programmi di presentazione STRUMENTI Impostare una presentazione I programmi di presentazione I programmi per la creazione di documenti multimediali basati su diapositive (o lucidi) consentono di presentare, a un pubblico più o

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

I database relazionali (Access)

I database relazionali (Access) I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale

Dettagli

5.6.1 REPORT, ESPORTAZIONE DI DATI

5.6.1 REPORT, ESPORTAZIONE DI DATI 5.6 STAMPA In alcune circostanze può essere necessario riprodurre su carta i dati di tabelle o il risultato di ricerche; altre volte, invece, occorre esportare il risultato di una ricerca, o i dati memorizzati

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Manuale di KSystemLog. Nicolas Ternisien

Manuale di KSystemLog. Nicolas Ternisien Nicolas Ternisien 2 Indice 1 Usare KSystemLog 5 1.1 Introduzione......................................... 5 1.1.1 Cos è KSystemLog?................................ 5 1.1.2 Funzionalità.....................................

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

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

PowerPoint 2007 Le funzioni

PowerPoint 2007 Le funzioni PowerPoint 2007 Le funzioni Introduzione Cos è un ipertesto L' ipertesto è un testo organizzato in link, o collegamenti ad altre parti del testo e/o altri testi, in modo da consentire all utente di scegliere

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

Applicazioni grafiche

Applicazioni grafiche Applicazioni grafiche I grafici all interno di un form sono realizzati attraverso gli oggetti del namespace System.Drawing. Graphics. Il namespace è incluso automaticamente nel progetto, quindi non è necessaria

Dettagli

Formattazione e Stampa

Formattazione e Stampa Formattazione e Stampa Formattazione Formattazione dei numeri Formattazione del testo Veste grafica delle celle Formattazione automatica & Stili Formattazione dei numeri Selezionare le celle, poi menu:

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

IL LINGUAGGIO Visual Basic

IL LINGUAGGIO Visual Basic Caratteristiche del linguaggio VB Linguaggio basato sugli eventi IL LINGUAGGI Visual Basic I programmi non sono procedurali, poiche non seguono una sequenza operativa. gni programma si basa infatti su

Dettagli

FUNZIONI DI IMPAGINAZIONE DI WORD

FUNZIONI DI IMPAGINAZIONE DI WORD FUNZIONI DI IMPAGINAZIONE DI WORD IMPOSTARE LA PAGINA Impostare la pagina significa definire il formato del foglio e vari altri parametri. Per impostare la pagina occorre fare clic sul menu File e scegliere

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

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

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

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico) Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico) 1 Aprire Access Appare una finestra di dialogo Microsoft Access 2 Aprire un

Dettagli

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,

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

Concetti Fondamentali

Concetti Fondamentali EXCEL Modulo 1 Concetti Fondamentali Excel è un applicazione che si può utilizzare per: Creare un foglio elettronico; costruire database; Disegnare grafici; Cos è un Foglio Elettronico? Un enorme foglio

Dettagli

Alla scoperta della nuova interfaccia di Office 2010

Alla scoperta della nuova interfaccia di Office 2010 Alla scoperta della nuova interfaccia di Office 2010 Una delle novità più eclatanti della versione 2007 era la nuova interfaccia con la barra multifunzione. Office 2010 mantiene questa filosofia di interfaccia

Dettagli

Leggere un messaggio. Copyright 2009 Apogeo

Leggere un messaggio. Copyright 2009 Apogeo 463 Leggere un messaggio SyllabuS 7.6.3.3 Per contrassegnare un messaggio selezionato puoi fare clic anche sulla voce di menu Messaggio > Contrassegna messaggio. Marcare, smarcare un messaggio I messaggi

Dettagli

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia Scuola Digitale Manuale utente Copyright 2014, Axios Italia 1 SOMMARIO SOMMARIO... 2 Accesso al pannello di controllo di Scuola Digitale... 3 Amministrazione trasparente... 4 Premessa... 4 Codice HTML

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

MANUALE EDICOLA 04.05

MANUALE EDICOLA 04.05 MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra

Dettagli

OSSIF WEB. Manuale query builder

OSSIF WEB. Manuale query builder OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI

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

Obiettivi del corso. Creare, modificare e formattare un semplice database costituito da tabelle, query, maschere e report utilizzando Access 2000.

Obiettivi del corso. Creare, modificare e formattare un semplice database costituito da tabelle, query, maschere e report utilizzando Access 2000. ECDL Excel 2000 Obiettivi del corso Creare, modificare e formattare un semplice database costituito da tabelle, query, maschere e report utilizzando Access 2000. Progettare un semplice database Avviare

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