Piccolo corso su ROOT e analisi dati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Piccolo corso su ROOT e analisi dati"

Transcript

1 Piccolo corso su ROOT e analisi dati D. Cester v /2013 Indice 1 Richiami di C/C Funzioni; passaggio di parametri Puntatori Strutture (struct) Lettura e scrittura di files Files di testo Files binari Classi e oggetti Introduzione a ROOT Che cos'è ROOT La riga di comando e le macro Lettura e scrittura di files ROOT Le strutture dati Trees, branches e leaves N-tuple Oggetti e metodi di uso generale TFile TTree TNtuple TCanvas Istogrammi 1D Istogrammi 2D Grafici XY Funzioni matematiche Appendix: compiling ROOT under Linux...16

2 1 Richiami di C/C Funzioni; passaggio di parametri La struttura tipica di una funzione è la seguente: tipo0 funzione(tipo1 param1, tipo2 param2,...) { } tipo0 variabile0; /* operazioni varie */ return variabile0; dove l'analogia con le funzioni matematiche a più parametri è evidente: a fronte di una serie di parametri in ingresso, viene eseguita una serie di operazioni che al termine produce un risultato numerico. Le funzioni si usano in massima parte per separare parti di codice che possono essere usate più volte nello stesso programma, possono essere condivise fra più programmi o semplicemente per chiarezza di organizzazione nel caso di programmi complessi. Velocemente accenniamo al problema della visibilità: ogni funzione ha in memoria un proprio spazio per scrivere le variabili, e generalmente non può accedere alle variabili del programma principale o delle altre funzioni, anche se hanno lo stesso nome, dal momento che appartengono a spazi diversi. Se una variabile del programma principale si chiama energia, è possibile definire una variabile energia anche dentro una funzione: le due variabili saranno completamente indipendenti e le modifiche fatte all'una non si riflettono sull'altra. Il maggiore limite delle funzioni è che restituiscono al massimo un singolo valore: per l'analisi matematica ad una variabile questo è generalmente sufficiente, mentre diventa rapidamente un limite per l'analisi di misure fisiche dove in genere si voglio estrarre vari dati contemporaneamente (posizione x/y/z, energia...). Ci sono tre strade per superare questo limite: 1. scrivere una funzione per ogni valore che si vuole ricavare (complicando l'analisi) 2. far vedere alle funzioni le variabili esterne (con i puntatori) 3. rendere più potente il passaggio dei dati in uscita (con le struct)

3 1.2 Puntatori Dal punto di vista del calcolatore, per salvare un dato in una variabile abbiamo bisogno di due numeri: il valore da salvare, e l'indirizzo di memoria a cui salvarlo, bit dopo bit. Il tipo della variabile specifica il numero fisso di bit che il valore dovrà occupare, a partire dall'indirizzo specificato. Il numero 5 ad esempio si scrive 101 in codice binario; il computer però salverà se il tipo di dato è di 8 bit (char), mentre salverà se il tipo di dato è di 16 bit (short). Se il tipo è int, da 32 bit: Generalmente le variabili si usano con interesse verso il valore che esse contengono, lasciando che il calcolatore gestisca in modo automatico l'indirizzo a cui piazzare i bit; è però possibile anche ottenere e manipolare direttamente l'indirizzo di una variabile, anteponendo il simbolo & al nome: int a = 5; // una variabile normale che occupa 32 bit cout << &a << endl; // l'indirizzo a cui è scritto il valore '5' Usare le variabili in questo modo standard porta presto ad emergere i limiti nel flusso dei dati cui si accennava in precedenza; per questo nel linguaggio C sono stati introdotti i puntatori. Mentre una variabile normale è associata ad un valore, e per recuperare l'indirizzo serve una simbologia particolare (la &), un puntatore contiene direttamente l'indirizzo di memoria. Anche nel caso dei puntatori, bisogna dichiarare un tipo che specifichi quanti bit di memoria occupa il dato. int v è una variabile normale: v contiene il valore &v rappresenta l'indirizzo di memoria a cui si trova v int *p è un puntatore p contiene l'indirizzo di memoria a cui si trova p (*p) è il valore L'uso dei puntatori permette di superare i limiti di visibilità delle funzioni: se usiamo un puntatore come parametro di una funzione, stiamo passando alla funzione l'indirizzo di memoria di una variabile del programma principale; la funzione potrà quindi leggere e scrivere direttamente da quella posizione, di fatto condividendo la variabile con il resto del software. Se vogliamo che una funzione restituisca più valori, invece di usare il tipo in uscita che è uno solo possiamo passare in ingresso tanti puntatori quanti sono i valori desiderati; la funzione riempirà le locazioni di memoria con i risultati, ed il programma potrà proseguire con i dati aggiornati. Esempi: esempio_puntatori.c, esempio_analisi_puntatori.c 1.3 Strutture (struct) Una struct è un insieme di variabili che sono raggruppate sotto un unico nome; generalmente queste variabili corrispondono a diverse misure di uno stesso evento fisico: se i diversi valori vanno trattati sempre insieme, e magari c'è bisogno di passarli da una parte all'altra di un programma, spesso è comodo raggrupparli in una struct. Una struct si definisce elencando le singole variabili che la compongono; ad esempio:

4 struct inc_data_t { }; unsigned int unsigned int unsigned short int counter; timetag; samples[4096]; Le struct, una volta definite, si utilizzano come fossero un tipo (int, float...): int inc_data_t contatore; inc_data; Esiste anche la notazione sintetica in cui una variabile di tipo struct viene dichiarata insieme alla struct stessa: struct inc_data_t { /* vari campi... */ } inc_data; Le variabili interne ad una struct si raggiungono usando un punto; il punto è sostituito da una freccina nel caso la struct sia dichiarata come puntatore: // struct e puntatore ad una struct: evento_t evento; evento.tempo = 200; // puntatore: evento_t *evento; evento->tempo = 200; Esempi: esempio_analisi_struct.c 1.4 Lettura e scrittura di files Files di testo Esempio di scrittura su file di testo: ofstream outfile; outfile.open(fname_txt,ios::trunc); // la freccia al posto del punto outfile << value1 << "\t" << value2 << endl; outfile.close(); Esempio di lettura da file di testo: ifstream infile; infile.open(fname_txt); infile >> ch >> inc_data.counter >> inc_data.timetag; infile.close();

5 1.4.2 Files binari Esempio di scrittura su file binario: ofstream outfile; outfile.open(fname_bin,ios::binary); outfile.write((char*)&ch, 2); outfile.close(); Esempio di lettura da file binario: ifstream infile; infile.open(fname_bin,ios::in ios::binary); infile.read((char*)&variable, 4); infile.close(); Esempi: txt2bin.c, bin2txt.c 1.5 Classi e oggetti Una classe è un tipo di dato ancora più complesso delle struct: non solo può contenere diversi valori al suo interno, ma è possibile includere anche le funzioni che operano su quei valori; queste funzioni prendono il nome di metodi. Un oggetto è una variabile che ha una classe come tipo. Un esempio tipico in ROOT è la classe istogramma TH1F: dato che un istogramma è un grafico delle frequenze, i valori contenuti nella classe istogramma sono gli intervalli delle frequenze e le frequenze stesse. Questo elenco di valori potrebbe essere contenuto anche da una semplice struct; ma la classe che rappresenta gli istogrammi include già i metodi per riempire gli istogrammi, modificare gli intervalli, disegnare il diagramma delle frequenze, e così via. In pratica, così come possiamo definire una variabile energia di tipo float, possiamo dichiarare un oggetto histo della classe TH1F: float TH1F energia; histo; Senza essere costretti a scrivere noi da zero le funzioni che ci interessano, la classe TH1F fornisce già molti metodi utili, ad esempio: histo.fill(valore) trova l'intervallo in cui cade 'valore' ed aumenta di 1 la frequenza relativa; oppure histo.getmaximum() calcola la frequenza più alta, o ancora histo.getentries() calcola il numero di eventi su cui abbiamo calcolato la frequenza. In sostanza una volta dichiarato un oggetto di una data classe, abbiamo a disposizione sia

6 dei contenitori strutturati per i dati, che una serie di funzioni per operare su di essi. Nota: gli oggetti possono essere dichiarati sia come variabili che come puntatori: TH1F histo(parametri); // variabile TH1F *histo = new TH1F(parametri); // puntatore nel caso di programmi semplici il comportamento pratico è identico per i due casi. Come accade per le struct, se l'oggetto è un puntatore la freccia -> sostituisce il punto.

7 2 Introduzione a ROOT In questa sezione si prende familiarità con ROOT e gli oggetti che mette a disposizione. 2.1 Che cos'è ROOT ROOT è un ambiente (framework) per l'analisi dati; i suoi componenti principali sono le librerie che definiscono gli oggetti, e l'interprete C (chiamato CINT). Insieme consentono di scrivere programmi per l'analisi dati utilizzando il linguaggio standard C/C++ e avendo a disposizione una quantità di automatismi statistici e grafici. 2.2 La riga di comando e le macro Una volta lanciato, ROOT presenta un prompt, o riga di comando, simile alla console dei sistemi Unix-like. Questa console accetta alcuni comandi di sistema, nonché i vari comandi C/C++ che coinvolgono gli oggetti di ROOT e le operazioni con essi. Alcuni comandi interni a ROOT:.x nomemacro.c(params) esegue nomemacro.c con i parametri fra parentesi.l nomelibreria carica la libreria nomelibreria.ls.q esce da ROOT elenca gli oggetti attualmente in memoria I vari comandi che operano sugli oggetti possono essere uniti a comporre le macro: una macro è in pratica un programma in C (o C++) che opera sugli oggetti di ROOT. Dato che è molto scomodo immettere un programma riga per riga, ci limiteremo a considerare l'uso delle macro, tenendo presente che ogni operazione può essere fatta (con minime correzioni) anche da riga di comando. Questa rimane utile nei casi in cui ad esempio si voglia disegnare al volo un singolo oggetto già in memoria senza dover far girare daccapo una macro. La struttura essenziale di una macro è costituita da una sola funzione avente lo stesso nome del file; ad esempio prova_macro.c dovrà contenere la funzione prova_macro(), eventualmente con parametri. Questa funzione, analoga al main() del C, è scritta in linguaggio C/C++ di cui rispetta (con poche eccezioni) le convenzioni. Il file può contenere anche altre funzioni esterne alla principale, così come la dichiarazione di struct e variabili; le regole di visibilità locale e globale sono in buona parte le stesse del C.

8 Quasi tutti gli esempi che seguono riguardano l'uso di macro. 2.3 Lettura e scrittura di files ROOT Esempio di scrittura di oggetti su file ROOT: TFile *output_file = new Tfile(fileName,"RECREATE"); output_file->cd(); generic_object->write(); output_file->close(); Esempio di lettura di oggetti da file ROOT: TFile *input_file = new Tfile(fileName,"READ"); TTree *input_tree = (Ttree*)input_file->Get("datatree"); // (!) cast esplicito --^ input_file->close(); Esempi: root2txt.c, root2bin.c 2.4 Le strutture dati ROOT utilizza le stesse strutture dati di base del linguaggio C/C++. Quasi tutti i tipi di dato sono definiti più di una volta con nomi diversi, ad esempio int e Int_t; questo per motivi legati all'utilizzo dello stesso codice su sistemi molto diversi. RIferimenti: Trees, branches e leaves Un tree ( albero ) è una struttura dati gerarchica, come sottintende il nome. Un tree si divide in branches ( rami ) ognuno dei quali contiene svariate leaves ( foglie ); infine ogni leaf è composta di diversi valori, secondo quanto dichiarato al momento della costruzione del tree. Un esempio di tree, con un possibile significato fisico dei vari livelli, è in figura; rappresenta la struttura dati a Tree del programma Slimport: ad ogni Branch corrisponde un rivelatore, ognuno dei quali contiene diversi eventi. La decisione su come strutturare la gerarchia è arbitraria, almeno per quanto riguarda ROOT. Nel caso di Slimport il numero di rivelatori corrisponde al numero di canali di una scheda di acquisizione, ed è fisso per ogni run, mentre il numero di eventi dipende dall'efficienza del singolo rivelatore, e può variare anche di diversi ordini di grandezza. Potrebbe accadere però che in altri tipi di acquisizione si voglia attuare una divisione per evento, ognuno dei quali può avere hit in alcuni o tutti i rivelatori, a seconda della cinematica; in quel caso i branch saranno associati agli eventi, e le leaf ai rivelatori. In ogni caso, l'importante è che i dati abbiano una struttura regolare che si ripete per ogni evento. NOTA: i vari branch non devono per forza avere lo stesso numero di eventi; dipende da come vengono riempiti. A seconda della fisica in gioco può essere utile riempire sempre tutti i branch, eventualmente con eventi vuoti, oppure riempire solo quelli corrispondenti a degli eventi reali. A seconda dei vari casi la gerarchia del tree potrà rendere più o meno immediata

9 la successiva analisi. La lettura e scrittura dei tree avviene tramite delle struct appositamente dichiarate che riflettono la struttura interna dei branch. In pratica ad ogni branch viene associata una struct, ed ogni volta che viene letta (o scritta) una leaf, i dati corrispondenti vengono caricati (o letti) nei vari campi della struct. Dichiarazione di un TTree La dichiarazione di un TTree è molto semplice: TFile *output_file = new TFile( filename,"recreate"); TTree *datatree = new TTree("internalName","Tree description"); perchè dichiarare anche un TFile? Se un TTree viene dichiarato da solo, esso è residente in memoria, mentre se viene dichiarato mentre un TFile è aperto (non importa a quante istruzioni di distanza) allora è considerato residente su file; nel secondo caso si può sfruttare la funzione di recovery in caso di blocco del programma/macro, perdendo pochi o nulli dati prima del crash. Inoltre un TTree residente su disco ha limitazioni in memoria molto meno stringenti ( GB su disco contro 4-8 GB di RAM - in media). La residenza di un TTree può essere modificata utilizzando il metodo SetDirectory(n) dove n corrisponde all'identificativo della destinazione: 0 rappresenta la memoria, ogni altro oggetto che può contenere un TTree (come i TFile) ha il suo valore univoco e un metodo per recuperarlo. I programmatori di ROOT consigliano caldamente di dichiarare un TTree solo dopo aver aperto un TFile. Esempio: creazione e salvataggio di un TTree residente in memoria: TTree *datatree = new TTree("internalName","Tree description");

10 [...] TFile *output_file = new TFile(fileName,"RECREATE"); output_file->cd(); // rende il TFile la destinazione corrente datatree->write(); datatree->setdirectory(0); // riporta in memoria il tree output_file->close(); Esempio: creazione e salvataggio di un TTree residente su disco: TFile *output_file = new TFile(fileName,"RECREATE"); TTree *datatree = new TTree("internalName","Tree description"); [...] datatree->write(); [...] output_file->close(); Dichiarazione dei Branches Un modo comodo per dichiarare i Branch è partendo dal Tree: TBranch *branch = existing_tree->branch(branchname, address, leaflist, bufsize); dove branchname è il nome interno del Branch address è l'indirizzo di una struttura leaflist è l'elenco delle foglie bufsize può essere omesso Per leggere e riempire i TBranch si utilizzano delle strutture dati, nel nostro caso le struct, che corrispondono alla struttura interna del branch; i dati di una singola leaf non sono infatti accessibili singolarmente, ma vanno trasferiti in blocco. Ad esempio: struct evt_data_t { UInt_t UInt_t evcounter; timestamp; UShort_t samples[8]; } out_data; TBranch *branch = tree->branch("evbranch", &out_data.evcounter, "counter/i:time:samples[8]/s");

11 out_data.evcounter =... out_data.timestamp =... out_data_samples[k] =... branch->fill(); per la scrittura di un nuovo branch, e struct evt_data_t { UInt_t UInt_t evcounter; timestamp; UShort_t samples[8]; } inc_data; TBranch *branch = input_tree->getbranch("evbranch"); branch->setaddress(&inc_data.evcounter); branch->getentry(i); cout << out_data.evcounter; nel caso di lettura. La leaflist è un elenco testuale (fra virgolette) delle variabili che compongono ogni singola leaf; ogni variabile è indicata dal nome e dal tipo, secondo il formato nome/tipo:nome/tipo:... etc. I nomi possono essere diversi da quelli della struct associata, i tipi e la sequenza invece devono combaciare. Se due variabili consecutive hanno lo stesso tipo, il tipo della seconda può essere omesso: così count/i:tempo/i:valore/f può diventare count/i:tempo:valore/f. NOTA: l'indirizzo della struct nella dichiarazione del TBranch (quello preceduto da &) deve corrispondere alla prima variabile della struct; le variabili della struct e quella della leaflist devono avere lo stesso ordine e lo stesso tipo, anche se non necessariamente lo stesso nome. La documentazione di TBranch è un ottimo riferimento per i vari tipi di variabili nella leaflist e la loro corrispondenza con i tipi di dato presenti in ROOT. Esempi: Riferimenti: scrivitree.c, leggitree.c N-tuple Una N-tupla è un tree ridotto a contenere solamente dati di tipo float. La N-tupla viene dichiarata insieme all'elenco delle variabili, che corrisponde alla leaflist dei branch; per riempire un evento della N-tupla si passano tutte le variabili dichiarate in elenco. In fase di lettura, ogni variabile della N-tupla deve essere associata ad una variabile normale tramite il metodo SetBranchAddress; ad ogni chiamata di GetEntry le variabili associate vengono riempite con i dati.

12 Dichiarazione e scrittura di una N-tupla TNtuple nt = new TNtuple("internalname", "title", "var1:var2:var3"); var1 =...; var2 =...; var3 =...; nt->fill(value1,value2,value3...); Lettura di una N-tupla TNtuple *nt= (TNtuple*)input_file->Get("ntuple_name"); // repeat for each variable: nt->setbranchaddress("varname",&variable); // loop on entries: nt->getentry(numentry); Riferimenti: 2.5 Oggetti e metodi di uso generale ROOT fornisce una quantità sterminata di oggetti utilizzabili; di seguito vedremo i più comuni, utili per l'analisi dati in laboratorio. NOTA: non è fornita una documentazione completa dei metodi presentati, solo un cenno alla loro esistenza TFile Costruttore: TFile( filename.root,"options"); Metodi di uso comune: iszombie() cd() Get() Close() verifica che esista/sia stato correttamente aperto seleziona il file per la scrittura restituisce un oggetto generico chiude il file Riferimenti: TTree Costruttore: TTree *tree = new TTree("internalname","Extended name of the tree"); Metodi di uso comune: Branch() dichiara un branch associato al tree

13 Print() Write() stampa a terminale la struttura del tree scrive il tree sulla destinazione attiva Riferimenti: TNtuple Costruttore: TNtuple(const char* name, const char* title, const char* varlist) Metodi di uso comune: GetEntries() restituisce il numero di entrate SetBranchAddress() associa un branch ad una variabile Print() stampa a terminale la struttura della N-tupla Fill() inserisce una entrata GetEntry() legge una entrata e la carica nelle variabili associate Riferimenti: TCanvas Gli oggetti grafici di ROOT hanno bisogno di un supporto su cui essere disegnati, appunto la canvas ( tela ). Una TCanvas può essere divisa in più settori indipendenti; prima di disegnare un oggetto è buona norma specificare la canvas su cui andrà disegnato (o almeno dichiararne una che sarà poi usata di default). Costruttori: TCanvas canv( internal_name, title ); canv.cd(); TCanvas *canv = new TCanvas( internal_name, title ); canv->cd(); Metodi di uso comune: cd() Clear() Close() seleziona la canvas svuota la canvas chiude la canvas Divide(cols,rows) divide la canvas in rows righe e cols colonne. Le singole celle possono essere rese attive con cd(n) dove n=0 indica la canvas madre e n=1..rows*cols sono le varie celle. Print() stampa la canvas (eventualmente su file) SetLogx() imposta la scala logaritmica sull'asse X (Y, Z) Riferimenti:

14 2.5.5 Istogrammi 1D Costruttore: TH1F("internalname","title",numBins,lowerValue,upperValue); Metodi di uso comune: Add() somma un altro istogramma, moltiplicato per un fattore Clone() copia l'istogramma Draw() disegna l'istogramma Fill() riempie l'istogramma con un dato FindBin() trova l'indice del bin corrispondente ad un dato valore FindFirstBinAbove() trova il primo bin sopra una certa soglia FindLastBinAbove() trova l'ultimo bin sopra una certa soglia GetBinCenter() restituisce il centroide del bin GetBinContent() restituisce il contenuto (altezza) del bin GetEntries() restituisce il numero di ingressi GetMaximum() restituisce l'altezza massima dei bin GetMaximumBin() restituisce l'indice del bin con altezza massima GetMinimum() restituisce l'altezza minima dei bin GetMinimumBin() restituisce l'indice del bin con altezza minima GetMean() restituisce il valor medio dell'istogramma GetMeanError() restituisce l'errore sul valor medio dell'istogramma GetNbinsX() restituisce il numero di bin sull'asse X GetXaxis() restituisce l'oggetto TAxis corrispondente all'asse X Integral() restituisce l'integrale in un certo intervallo di bin ResetStats() resetta le statistiche SetBinContent() modifica il contenuto di un singolo bin SetLineColor() modifica il colore della linea SetTitle() modifica il titolo dell'istogramma Write() scrive l'istogramma Riferimenti:

15 2.5.6 Istogrammi 2D Costruttore: TH2F("name","title",numBinsX,lowerX,upperX,numBinsY,lowerY,upperY); Metodi di uso comune: Praticamente gli stessi di TH1F; maggiori opzioni per Draw(). Riferimenti: Grafici XY Costruttori: TGraph(); // see more options on web reference Metodi di uso comune: Clear() svuota il TGraph Draw() disegna il grafico GetMaximum() restituisce il valore massimo GetMinimum() restituisce il valore minimo GetN() restituisce il numero di punti InsertPoint() aggiunge un punto al grafico RemovePoint() rimuove un punto dal grafico Riferimenti: Funzioni matematiche Riferimenti:

16 3 Appendix: compiling ROOT under Linux I strongly recommend to install ROOT from official sources rather than using the official packages of your distribution; they are often out-of-date or incomplete. This guide has been tested up to version 5.34/23 on several versions of Ubuntu. Download ROOT from root.cern.ch; you will also need the following packages: make gcc g++ binutils dpkg-dev libx11-dev libxpm-dev libxft-dev libxext-dev (list taken from Extract the ROOT archive, enter the newly created directory and execute: $./configure $ make (If you have a multi-core system you can speed up the compilation with make -jn where N is the number of cores in your CPU). Before you actually can install ROOT you have to set up system variables; open (or create) hidden file.bashrc in your user home directory (or /etc/bash.bashrc) to affect all user profiles) and add the following lines at the end: # ROOT environment source /usr/local/root/bin/thisroot.sh then go as root user, set ROOT environment variable, install and switch back to your user: $ sudo su $ export ROOTSYS=/usr/local/root $ make install $ exit Now close and reopen all your terminals. You might want to add the line alias root='root -l' to ~/.bashrc or to /etc/bash.bashrc to suppress ROOT splash screen at startup.

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

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1 Dipartimento di Sistemi e Informatica Università degli Studi di Firenze Dev-C++ Ing. Michele Banci 27/03/2007 1 Utilizzare Dev-C++ Tutti i programmi che seranno realizzati richiedono progetti separati

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

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

UBUNTU SERVER. Installazione e configurazione di Ubuntu Server. M. Cesa 1

UBUNTU SERVER. Installazione e configurazione di Ubuntu Server. M. Cesa 1 UBUNTU SERVER Installazione e configurazione di Ubuntu Server M. Cesa 1 Ubuntu Server Scaricare la versione deisiderata dalla pagina ufficiale http://www.ubuntu.com/getubuntu/download-server Selezioniare

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011]

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011] Peg Perego Service Site Peg Perego [Dicembre 2011] 2 Esegui il login: ecco la nuova Home page per il portale servizi. Log in: welcome to the new Peg Perego Service site. Scegli il servizio selezionando

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica L uso delle funzioni in C++ Claudio De Stefano - Corso di Fondamenti di Informatica 1 Funzioni Nel C++ è possibile scomporre problemi complessi in moduli più semplici

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

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

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

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Flops. Ad esempio nel caso del prodotto classico tra matrici, vengono eseguite 2*N 3 operazioni, quindi ad esempio:

Flops. Ad esempio nel caso del prodotto classico tra matrici, vengono eseguite 2*N 3 operazioni, quindi ad esempio: Flops FLOPS e' un'abbreviazione di Floating Point Operations Per Second e indica il numero di operazioni in virgola mobile eseguite in un secondo dalla CPU. (Top500 e il BlueGene) Ad esempio nel caso del

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Lab 02 Tipi semplici in C Obiettivo dell esercitazione Acquistare familiarità con i tipi di dato semplici supportati

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

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

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Guida rapida. Cos è GeoGebra? Notizie in pillole

Guida rapida. Cos è GeoGebra? Notizie in pillole Guida rapida Cos è GeoGebra? Un pacchetto completo di software di matematica dinamica Dedicato all apprendimento e all insegnamento a qualsiasi livello scolastico Riunisce geometria, algebra, tabelle,

Dettagli

Modulo 2 - Appendice 3 L'editor vi e cenni su sed

Modulo 2 - Appendice 3 L'editor vi e cenni su sed 1 Modulo 2 - Appendice 3 L'editor vi e cenni su sed Laboratorio di Sistemi Operativi I Anno Accademico 2008-2009 Copyright 2005-2007 Francesco Pedullà, Massimo Verola Copyright 2001-2005 Renzo Davoli,

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

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A Leggere attentamente questo manuale prima dell utilizzo e conservarlo per consultazioni future Via Don Arrigoni, 5 24020 Rovetta

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Il compilatore Dev-C++

Il compilatore Dev-C++ Il compilatore Dev-C++ A cura del dott. Marco Cesati 1 Il compilatore Dev-C++ Compilatore per Windows: http://www.bloodshed.net/devcpp.html Installazione Configurazione Utilizzazione 2 1 Requisiti di sistema

Dettagli

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN per Expert NANO 2ZN Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie Expert NANO 2ZN Nome documento: MODBUS-RTU_NANO_2ZN_01-12_ITA Software installato: NANO_2ZN.hex

Dettagli

Fondamenti di Informatica T. Linguaggio C: File

Fondamenti di Informatica T. Linguaggio C: File Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it Introduzione ai Device Drivers in Linux E.Mumolo, DEEI mumolo@units.it 1 Device Drivers Moduli software che gestiscono le periferiche attraverso il file system Tutte le periferiche sono viste come file

Dettagli

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public:

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public: 1 Pila.h versione 6 struct Pila { private: int size; int defaultgrowthsize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialsize) ; Pila(); ~Pila() ; void copy(pila * to)

Dettagli

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla

Dettagli

Cos è Excel. Uno spreadsheet : un foglio elettronico. è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse

Cos è Excel. Uno spreadsheet : un foglio elettronico. è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse Cos è Excel Uno spreadsheet : un foglio elettronico è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse I dati contenuti nelle celle possono essere elaborati ponendo

Dettagli

Creare una pen drive bottabile con Zeroshell oppure installarlo su hard disk. by Gassi Vito info@gassielettronica.com

Creare una pen drive bottabile con Zeroshell oppure installarlo su hard disk. by Gassi Vito info@gassielettronica.com Creare una pen drive bottabile con Zeroshell oppure installarlo su hard disk by Gassi Vito info@gassielettronica.com Questa breve guida pratica ci consentirà installare Zeroshell su pen drive o schede

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project NB: E necessario: adoperare la sintassi più evoluta per le direttive di precompilazione 1, usando come contenitore

Dettagli

APRS su Linux con Xastir, installazione dai sorgenti

APRS su Linux con Xastir, installazione dai sorgenti APRS su Linux con Xastir Installazione dai sorgenti L installazione di Xastir Per installare Xastir non è richiesto essere un guru di Linux, anche se una conoscenza minima della piattaforma è necessaria.

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi II Semestre - Marzo/Giugno 2008 Matricole congr. 0 mod 3 File & Directory #include #include stat,fstat e lstat int stat (const char *pathname, struct stat *buf); int fstat (int

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

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

Appendice I. Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice

Appendice I. Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice . Principali procedure ed istruzioni per la gestione di files, l'analisi statistica di tipo descrittivo e la correlazione semplice Ordinamento di osservazioni: PROC SORT PROC SORT DATA=fa il sort è numerico

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

Test di comunicazione tra due LOGO! 0BA7: Master - Master

Test di comunicazione tra due LOGO! 0BA7: Master - Master Industry Test di comunicazione tra due LOGO! 0BA7: Master - Master Dispositivi utilizzati: - 2 LOGO! 0BA7 (6ED1 052-1MD00-0AB7) - Scalance X-208 LOGO! 0BA7 Client IP: 192.168.0.1 LOGO! 0BA7 Server IP:

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

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

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

Installazione LINUX 10.0

Installazione LINUX 10.0 Installazione LINUX 10.0 1 Principali passi Prima di iniziare con l'installazione è necessario entrare nel menu di configurazione del PC (F2 durante lo start-up) e selezionare nel menu di set-up il boot

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Equilibrio Termico tra Due Corpi

Equilibrio Termico tra Due Corpi Equilibrio Termico tra Due Corpi www.lepla.eu OBIETTIVO L attività ha l obiettivo di fare acquisire allo sperimentatore la consapevolezza che: 1 il raggiungimento dell'equilibrio termico non è istantaneo

Dettagli

PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers

PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers La procedura di installazione è divisa in tre parti : Installazione dell archivio MySql, sul quale vengono salvati

Dettagli

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com WWW.TINYLOC.COM CUSTOMER SERVICE T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com GPS/ RADIOTRACKING DOG COLLAR MANUALE DI ISTRUZIONI ACCENSIONE / SPEGNERE DEL TAG HOUND Finder GPS Il TAG HOUND

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

WINDOWS - Comandi rapidi da tastiera più utilizzati.

WINDOWS - Comandi rapidi da tastiera più utilizzati. WINDOWS - Comandi rapidi da tastiera più utilizzati. La prima colonna indica il tasto da premere singolarmente e poi rilasciare. La seconda e terza colonna rappresenta la combinazione dei i tasti da premere

Dettagli

APPLICAZIONI SU PIU FILE

APPLICAZIONI SU PIU FILE APPLICAZIONI SU PIU FILE Serve poter sviluppare applicazioni su piú file: - alcune funzioni e alcune definizioni di dati in un file - altre funzioni e dati in file diversi Perché?? 1. Se il programma è

Dettagli

FUNZIONI AVANZATE DI EXCEL

FUNZIONI AVANZATE DI EXCEL FUNZIONI AVANZATE DI EXCEL Inserire una funzione dalla barra dei menu Clicca sulla scheda "Formule" e clicca su "Fx" (Inserisci Funzione). Dalla finestra di dialogo "Inserisci Funzione" clicca sulla categoria

Dettagli

Web conferencing software. Massimiliano Greco - Ivan Cerato - Mario Salvetti

Web conferencing software. Massimiliano Greco - Ivan Cerato - Mario Salvetti 1 Web conferencing software Massimiliano Greco - Ivan Cerato - Mario Salvetti Arpa Piemonte 2 Che cosa è Big Blue Button? Free, open source, web conferencing software Semplice ed immediato ( Just push

Dettagli

Accuratezza di uno strumento

Accuratezza di uno strumento Accuratezza di uno strumento Come abbiamo già accennato la volta scora, il risultato della misurazione di una grandezza fisica, qualsiasi sia lo strumento utilizzato, non è mai un valore numerico X univocamente

Dettagli

Lezione 15 File System

Lezione 15 File System Lezione 15 File System Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2014/2015 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

Scilab: I Polinomi - Input/Output - I file Script

Scilab: I Polinomi - Input/Output - I file Script Scilab: I Polinomi - Input/Output - I file Script Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Polinomi: Definizione... Un polinomio è un oggetto nativo in Scilab Si crea,

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

MANUALE DOS INTRODUZIONE

MANUALE DOS INTRODUZIONE MANUALE DOS INTRODUZIONE Il DOS è il vecchio sistema operativo, che fino a qualche anno fa era il più diffuso sui PC, prima dell avvento di Windows 95 e successori. Le caratteristiche principali di questo

Dettagli

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero ---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero delle variabili a cui possono essere assegnati gli indirizzi

Dettagli

AMBIENTE DEV PASCAL. Dev-Pascal 1.9.2. Finestra di apertura

AMBIENTE DEV PASCAL. Dev-Pascal 1.9.2. Finestra di apertura Dev-Pascal 1.9.2 1 Dev-Pascal è un ambiente di sviluppo integrato per la programmazione in linguaggio Pascal sotto Windows prodotto dalla Bloodshed con licenza GNU e liberamente scaricabile al link http://www.bloodshed.net/dev/devpas192.exe

Dettagli

Le system call: fork(), wait(), exit()

Le system call: fork(), wait(), exit() Le system call: fork(), wait(), exit() Di seguito viene mostrato un programma che fa uso di puntatori a funzione, nel quale si mette in evidenza il loro utilizzo. Programma A1 #include int add(a,b,c)

Dettagli

Setup e installazione

Setup e installazione Setup e installazione 2 Prima di muovere i primi passi con Blender e avventurarci nel vasto mondo della computer grafica, dobbiamo assicurarci di disporre di due cose: un computer e Blender. 6 Capitolo

Dettagli

Guida all utilizzo del dispositivo USB

Guida all utilizzo del dispositivo USB Guida all utilizzo del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1. Glossario... 3 2. Guida all utilizzo del dispositivo USB... 4 2.1 Funzionamento del

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Zeroshell come client OpenVPN

Zeroshell come client OpenVPN Zeroshell come client OpenVPN (di un server OpenVpn Linux) Le funzionalità di stabilire connessioni VPN di Zeroshell vede come scenario solito Zeroshell sia come client sia come server e per scelta architetturale,

Dettagli

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory.

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory. @ PC (Personal computer): Questa sigla identificò il primo personal IBM del 1981 a cura di R.Mangini Archiviazione: Il sistema operativo si occupa di archiviare i file. Background (sfondo): Cursore: Nei

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

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. Esempio 1. Soluzione: SPOSTA_1.BAT

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT Introduzione Un file batch è un file di testo di tipo ASCII che contiene una sequenza di comandi DOS. I file batch devono avere estensione.bat I comandi DOS all interno dei programmi batch sono eseguiti

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli