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.

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Scopo di questo approfondimento Lo scopo di questo approfondimento è rispondere alla domanda: e se nella vita mi troverò a dover utilizzare un linguaggio

Dettagli

Input / Output attraverso stream. I/O in C vs. I/O in C++

Input / Output attraverso stream. I/O in C vs. I/O in C++ Alessio Bechini - Corso di - Input / Output attraverso stream (anno accademico 2002-2003) Utilizzo di stream per I/O I/O in C vs. I/O in C++ La libreria C standard per l I/O viene acceduta con stdio.h

Dettagli

INTERAZIONE CON L UTENTEL

INTERAZIONE CON L UTENTEL IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

Corso di Programmazione ad oggetti

Corso di Programmazione ad oggetti Corso di Programmazione ad oggetti Il sistema di I/O del C++ a.a. 2008/2009 Claudio De Stefano 1 Il Modello di Von Neumann Il Modello di Von Neumann prevede che la CPU carichi in maniera sequenziale i

Dettagli

USO DI EXCEL COME DATABASE

USO DI EXCEL COME DATABASE USO DI EXCEL COME DATABASE Le funzionalità di calcolo intrinseche di un foglio di lavoro ne fanno uno strumento eccellente per registrarvi pochi dati essenziali, elaborarli con formule di vario tipo e

Dettagli

Lezione 16: L architettura LC-3

Lezione 16: L architettura LC-3 Lezione 16: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 15 Maggio 2013 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

Modulo: Fogli elettronici

Modulo: Fogli elettronici Corso: Abilità Informatiche Modulo: Fogli elettronici Pagina 1 di 18 Autori del Modulo: Bruno fadini; Pino Cepparulo Presentazione del Modulo: Versione Italiano Il modulo, corrispondente al modulo 4 dell'ecdl

Dettagli

Ca ra tteristiche dei sistem i GN U/L inux. Struttura di un sistema GNU/Linux Il filesystem La shell

Ca ra tteristiche dei sistem i GN U/L inux. Struttura di un sistema GNU/Linux Il filesystem La shell Struttura di un sistema GNU/Linux Il filesystem La shell 1 GNU/Linux è un sistema operativo, cioè un insieme di programmi che collaborano fra di loro rendendo utilizzabile un calcolatore, infatti senza

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

Oracle PL/SQL. Motivazioni

Oracle PL/SQL. Motivazioni Oracle PLSQL Motivazioni Supponiamo che nella gestione del database Azienda ci venga chiesto di apportare le modifiche necessarie a far sì che ad ogni impiegato possa essere assegnato, alla fine di ogni

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

MYSQL. Avviare MySQL Per avviare il server MySQL basta lanciare il Servizio Mysql presente (aggiunto) tra i servizi di sistema.

MYSQL. Avviare MySQL Per avviare il server MySQL basta lanciare il Servizio Mysql presente (aggiunto) tra i servizi di sistema. Documento creato da Andrea www.ceccherini.net Per informazioni : andrea@ceccherini.net MYSQL MySQL è un database piuttosto popolare, reso ancor più interessante da almeno due fattori: primo, la sua gratuità;

Dettagli

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE Training per esperti TECNICHE AVANZATE DI I/O SU FILE Spesso, la decisione di dividere in processi differenti la produzione dei dati dall uso degli stessi viene presa perché occorre scrivere i dati su

Dettagli

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard) Capitolo 6 Input/output su file BOZZA 6.1 Stream e file L input/output in C ++, in particolare quello su file, avviene tramite stream. stream. Uno stream è un astrazione di un canale di comunicazione,

Dettagli

Appunti di Informatica 1. Gianluca Rossi

Appunti di Informatica 1. Gianluca Rossi Appunti di Informatica 1 Gianluca Rossi Versione maggio 2011 Indice 1 Algoritmi, macchine e linguaggi di programmazione 3 1.1 La macchina di Von Neumann........................ 5 1.2 Dal linguaggio macchina

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

Shell di Linux e Comandi Utente

Shell di Linux e Comandi Utente Shell di Linux e Comandi Utente Sistemi Operativi Roberto Aringhieri DTI Crema - Università degli Studi di Milano Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri p.1/23 Outline Accesso

Dettagli

1. Soluzione esercizio XYZ SpA

1. Soluzione esercizio XYZ SpA 1. Soluzione esercizio XYZ SpA 2. Oggetti fstream e loro uso Si vuole realizzare un piccolo sistema informativo a supporto dell'attività dell'ufficio dipendenti della società XYZ SpA. Tale società opera

Dettagli

WELCOME. Go to the link of the official University of Palermo web site www.unipa.it; Click on the box on the right side Login unico

WELCOME. Go to the link of the official University of Palermo web site www.unipa.it; Click on the box on the right side Login unico WELCOME This is a Step by Step Guide that will help you to register as an Exchange for study student to the University of Palermo. Please, read carefully this guide and prepare all required data and documents.

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

Pillole di Bazaar. user manual

Pillole di Bazaar. user manual Pillole di Bazaar user manual consolidata pubblica v.1.0 del 20 ott 2009 autori: luciano de falco alfano Sommario Sommario...1 Obiettivi e contesto...1 Un esempio di flusso di lavoro...2 Un po' di terminologia...3

Dettagli

Laboratorio di PROGRAMMAZIONE - a.a. 2010/2011

Laboratorio di PROGRAMMAZIONE - a.a. 2010/2011 Laboratorio di PROGRAMMAZIONE - a.a. 2010/2011 02 - Creazione della macchina virtuale 18 Ottobre 2010 Srdjan Matic Laboratorio di PROGRAMMAZIONE - a.a. 2010/2011 1 / 30 Installazione di JDK [LINUX] Srdjan

Dettagli

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

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

Dettagli

Parte 13. Documentazione. [Frida Kahlo Nucleus Of Creation, 1945] 13.1 - AA. 2012/13

Parte 13. Documentazione. [Frida Kahlo Nucleus Of Creation, 1945] 13.1 - AA. 2012/13 Parte 13 Documentazione - AA. 2012/13 [Frida Kahlo Nucleus Of Creation, 1945] 13.1 13.2 Documentazione La documentazione in campo informatico, comprende il materiale utile alla comprensione delle caratteristiche

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

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

Dettagli

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

Dettagli

PC Crash Course: OBIETTIVI

PC Crash Course: OBIETTIVI PC Crash Course: OBIETTIVI 1. PC: uno strumento 2. Microsoft Windows XP: alcuni concetti chiave della interfaccia grafica 3. File System: file, direttori, link, 4. Il prompt dei comandi 5. Un occhiata

Dettagli

Il software (su un computer)

Il software (su un computer) Il software (su un computer) L insieme dei programmi che un elaboratore può eseguire Scopo della lezione Descrivere il software di base e le sue funzionalità principali ovvero: la gestione della memoria

Dettagli

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

Dettagli

Utenti e File System

Utenti e File System Utenti e File System C. Baroglio a.a. 2002-2003 1 Gestione degli utenti Unix è un sistema multiutente ovvero più utenti possono lavorare su di una stessa macchina, anche contemporaneamente. Tutti gli utenti

Dettagli

MICROSOFT ACCESS. Fabrizio Barani 1

MICROSOFT ACCESS. Fabrizio Barani 1 MICROSOFT ACCESS Premessa ACCESS è un programma di gestione di banche dati, consente la creazione e modifica dei contenitori di informazioni di un database (tabelle), l inserimento di dati anche mediante

Dettagli

Metodi Computazionali della Fisica Secondo Modulo: C++

Metodi Computazionali della Fisica Secondo Modulo: C++ Metodi Computazionali della Fisica Secondo Modulo: C++ Settima Lezione Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 1 / 25 Utilizzo delle classi di ROOT GUI

Dettagli

L informatica comprende:

L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Problema e metodologie di progetto Linguaggio C: Introduzione Monica Mordonini Problema e Algoritmo

Dettagli

INDICE. DATEX il manuale edizione aprile 2011

INDICE. DATEX il manuale edizione aprile 2011 DATEX MANUALE INDICE INDICE... 1 INTRODUZIONE... 2 PRINCIPALI CARATTERISTICHE... 3 IL PRIMO COLLEGAMENTO... 4 INTERFACCIA... 5 DEFINIZIONE DELLE OPERAZIONI E DEI PROFILI... 6 INGRESSO CON PASSWORD NEL

Dettagli

sdforexcontest2009 Tool

sdforexcontest2009 Tool sdforexcontest2009 Tool Guida all istallazione e rimozione. Per scaricare il tool del campionato occorre visitare il sito dell organizzatore http://www.sdstudiodainesi.com e selezionare il link ForexContest

Dettagli

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

Dettagli

Lab 01 Sistemi Operativi

Lab 01 Sistemi Operativi Informatica Grafica Ingegneria Edile-Architettura a.a. 2010/2011 Lab 01 Sistemi Operativi Lab01 1 Obiettivi Durante l'esercitazione vedremo come il sistema operativo si occupa di gestire: 1. i processi

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

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

Cos è una rete. La rete Locale

Cos è una rete. La rete Locale GUIDA RETI Reti 1 Reti 2 Reti Reti...1 Cos è una rete...4 La rete Locale...4 Internet...5 Comunicare attraverso la rete...6 Ping...6 Ftp...7 Telnet...7 Posta Elettronica...8 Pine...8 Esercitazione...11

Dettagli

Corso basilare di programmazione

Corso basilare di programmazione Parte vi Corso basilare di programmazione Introduzione............................................ 947 Programma didattico.................................. 947 Strumenti per la compilazione..........................

Dettagli

Lezione 12. Ingegneria del codice

Lezione 12. Ingegneria del codice Lezione 12 Ingegneria del codice 2 Ingegneria del codice Insieme di metodologie e pratiche per la produzione di codice di qualità Leggibilità Robustezza Manutenibilità 3 Ingegneria del codice In questi

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Sistema Operativo di un Router (IOS Software)

Sistema Operativo di un Router (IOS Software) - Laboratorio di Servizi di Telecomunicazione Sistema Operativo di un Router (IOS Software) Slide tratte da Cisco Press CCNA Instructor s Manual ed elaborate dall Ing. Francesco Immè IOS Un router o uno

Dettagli

Il Software. Scopo della lezione

Il Software. Scopo della lezione Il Software 1 Scopo della lezione Descrivere il software di base e le sue funzionalità principali la gestione della memoria centrale per l esecuzione di piu` programmi simultaneamente il file system come

Dettagli

Access - Lezione 02. Basi di dati. Parte seconda. (Per andare direttamente su un argomento, fare clic con il mouse sul titolo nell indice sottostante)

Access - Lezione 02. Basi di dati. Parte seconda. (Per andare direttamente su un argomento, fare clic con il mouse sul titolo nell indice sottostante) Access - Lezione 02 Basi di dati Parte seconda (Per andare direttamente su un argomento, fare clic con il mouse sul titolo nell indice sottostante) 1.0 Operazioni di base 1.1 Impostare e pianificare un

Dettagli

GNU/Linux 101. intro to system administration. SaLUG! @ Manifatture KNOS 22 Gennaio 2015. This work is licensed under a

GNU/Linux 101. intro to system administration. SaLUG! @ Manifatture KNOS 22 Gennaio 2015. This work is licensed under a GNU/Linux 101 intro to system administration SaLUG! @ Manifatture KNOS 22 Gennaio 2015 This work is licensed under a Creative Commons by-nc-sa 4.0 International License by ALCA Società Cooperativa About

Dettagli

PL/SQL Uso di un linguaggio procedurale per un database

PL/SQL Uso di un linguaggio procedurale per un database PL/SQL Uso di un linguaggio procedurale per un database Roberto Basili Corso di Basi Di Dati 1 a.a. 2000-2001 Abstract Questa breve dispensa descrive piu etesamente i contenuti della esercitazione del

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

Sistemi Operativi. Lez. 16 File System: aspetti implementativi

Sistemi Operativi. Lez. 16 File System: aspetti implementativi Sistemi Operativi Lez. 16 File System: aspetti implementativi Layout disco Tutte le informazioni necessarie al file system per poter operare, sono memorizzate sul disco di boot MBR: settore 0 del disco,

Dettagli

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

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

Dettagli

LabMecFit. versione beta. by S.Frasca Dipartimento di Fisica Università Sapienza Roma

LabMecFit. versione beta. by S.Frasca Dipartimento di Fisica Università Sapienza Roma LabMecFit versione beta by S.Frasca Dipartimento di Fisica Università Sapienza Roma LabMecFit è un programma che permette di elaborare i dati prodotti da DataStudio. I dati devono essere salvati da DataStudio

Dettagli

È richiesta la connessione a internet per i componenti software necessari.

È richiesta la connessione a internet per i componenti software necessari. Toolchain per ARM in ambiente GNU/Linux Stefano Salvatori - marzo 2013 Introduzione Nella guida che segue verrà presentata la procedura d'installazione di una toolchain completa per microcontrollori basati

Dettagli

16.3.1 Alberi binari di ricerca

16.3.1 Alberi binari di ricerca 442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni di

Dettagli

Note sull ambiente di lavoro utilizzato ai Laboratori di Fondamenti di Informatica I

Note sull ambiente di lavoro utilizzato ai Laboratori di Fondamenti di Informatica I Università di Pisa Corso di Laurea in Ingegneria Informatica Note sull ambiente di lavoro utilizzato ai Laboratori di Fondamenti di Informatica I a cura di Marco Cococcioni a.a. 2013-2014 Un po di terminologia

Dettagli

1. MODALITA' DI LAVORO SUL FOGLIO ELETTRONICO.

1. MODALITA' DI LAVORO SUL FOGLIO ELETTRONICO. 1. MODALITA' DI LAVORO SUL FOGLIO ELETTRONICO. Excel esegue una analisi della riga introdotta o modificata in una cella per stabilire se si tratta di un valore e di che tipo (numero semplice, data, formula,

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

Foglio di calcolo. Numero Valuta Testo Data e Ora Percentuale

Foglio di calcolo. Numero Valuta Testo Data e Ora Percentuale Foglio di calcolo Foglio di calcolo Foglio organizzato in forma matriciale: migliaia di righe e centinaia di colonne In corrispondenza di ciascuna intersezione tra riga e colonna vi è una CELLA Una cella

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

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

Lezione T11 Virtual File System

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

Dettagli

Sistemi operativi I: Windows. Lezione I

Sistemi operativi I: Windows. Lezione I Sistemi operativi I: Windows Lezione I Scopo della lezione Richiamare le principali funzionalità di un sistema operativo Esemplificarle descrivendo la loro implementazione in Windows Introdurre alcuni

Dettagli

Indice. settembre 2008 Il File System 2

Indice. settembre 2008 Il File System 2 Il File System Indice 4. Il File System 5. Vantaggi del FS 6. Protezione 7. Condivisione 8. I file - 1 9. I file - 2 10. Attributi dei file 11. Directory 12. Livelli di astrazione - 1 13. Livelli di astrazione

Dettagli

Caratteristiche principali. la struttura open source (escluse alcune versioni intermedie) il suo basarsi su kernel Linux.

Caratteristiche principali. la struttura open source (escluse alcune versioni intermedie) il suo basarsi su kernel Linux. Android s.o. Androidè un sistema operativo per dispositivi mobili costituito da uno stack software che include: un sistema operativo di base, i middleware per le comunicazioni le applicazioni di base.

Dettagli

Lezione 5 Introduzione a Microsoft Excel Parte Seconda

Lezione 5 Introduzione a Microsoft Excel Parte Seconda Lezione 5 Introduzione a Microsoft Excel Parte Seconda Utilizzo delle funzioni... 1 Utilizzo di intervalli nelle formule... 2 Riferimenti di cella e di intervallo... 5 Indirizzi assoluti, relativi e misti...

Dettagli

Sicurezza su linux... e considerazioni varie. Gianluca Antonacci email: giaaan@tin.it

Sicurezza su linux... e considerazioni varie. Gianluca Antonacci email: giaaan@tin.it Sicurezza su linux... e considerazioni varie Gianluca Antonacci email: giaaan@tin.it Sommario Protezione del PC: firewall e antivirus - configurazione di Firestarter - configurazione di ClamAV Indicizzazione

Dettagli

Software di base. Corso di Fondamenti di Informatica

Software di base. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Software di base Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

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

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico

Dettagli

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. install.linux@home. 16/02/2007 install.linux@home Marco Marchisotti

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. install.linux@home. 16/02/2007 install.linux@home Marco Marchisotti I.S. Sobrero Dipartimento di Informatica Utilizzo install.linux@home 1 La shell La shell di Linux è a linea di comando. Appare obsoleta e difficile da usare, ma in realtà è molto più potente e versatile

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

Getting started. Creare una applicazione in Modbus Rtu con moduli IOlog SS3000

Getting started. Creare una applicazione in Modbus Rtu con moduli IOlog SS3000 Getting started Creare una applicazione in Modbus Rtu con moduli IOlog SS3000 Revisioni del documento Data Edizione Commenti 22/06/2010 1.0 - Sielco Sistemi srl via Roma, 24 I-22070 Guanzate (CO) http://www.sielcosistemi.com

Dettagli

Esercitazione: Il DBMS MySQL

Esercitazione: Il DBMS MySQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Il DBMS MySQL Marco Console Aspetti Organizzativi Marco Console Sito: www.dis.uniroma1.it/~console

Dettagli

Il computer: primi elementi

Il computer: primi elementi Il computer: primi elementi Tommaso Motta T. Motta Il computer: primi elementi 1 Informazioni Computer = mezzo per memorizzare, elaborare, comunicare e trasmettere le informazioni Tutte le informazioni

Dettagli

Il software. Il software. Dott. Cazzaniga Paolo. Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it

Il software. Il software. Dott. Cazzaniga Paolo. Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it Il software Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it Outline 1 Il software Outline Il software 1 Il software Algoritmo Sequenza di istruzioni la cui esecuzione consente di risolvere uno

Dettagli

Corsi di Informatica per Anziane e Anziani. Excel V1.0, 09/11/2012. Bruno Boni Castagnetti, Nicoletta Giorda, Franco Marra

Corsi di Informatica per Anziane e Anziani. Excel V1.0, 09/11/2012. Bruno Boni Castagnetti, Nicoletta Giorda, Franco Marra Sindacato Pensionati Corsi di Informatica per Anziane e Anziani Excel V1.0, 09/11/2012 Bruno Boni Castagnetti, Nicoletta Giorda, Franco Marra EXCEL Premessa Due parole su EXCEL Applicazioni di EXCEL Imparare

Dettagli

Forse la periferica più importante di un elaboratore File system:

Forse la periferica più importante di un elaboratore File system: Forse la periferica più importante di un elaboratore File system: Un insieme di funzionalità per astrarre i dati grezzi presenti in memoria di massa e interpretare questi ultimi in termini di files e cartelle

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

Appunti Corso Linux 2011 Lez. 6

Appunti Corso Linux 2011 Lez. 6 Utenti, Gruppi e Permessi elenco degli utenti - /etc/passwd Appunti Corso Linux 2011 Lez. 6 In un sistema Linux (ma anche Unix, *BSD, Mac) gli utenti locali del sistema operativo sono registrati in un

Dettagli

Uso del computer e gestione dei file

Uso del computer e gestione dei file Uso del computer e gestione dei file 2.1 L AMBIENTE DEL COMPUTER 1 2 Primi passi col computer Avviare il computer Spegnere correttamente il computer Riavviare il computer Uso del mouse Caratteristiche

Dettagli

Portale Materiali Grafiche Tamburini. Grafiche Tamburini Materials Portal

Portale Materiali Grafiche Tamburini. Grafiche Tamburini Materials Portal Portale Materiali Grafiche Tamburini Documentazione utente italiano pag. 2 Grafiche Tamburini Materials Portal English user guide page 6 pag. 1 Introduzione Il Portale Materiali è il Sistema Web di Grafiche

Dettagli

Informatica di Base. Il software

Informatica di Base. Il software di Base 1 Sistemi informatici Hardware Microprocessore Memoria Periferiche di input e output Software Software di sistema Programmi applicativi 2 Il sw applicativo Il sw applicativo è costituito dall insieme

Dettagli

Se state utilizzando la shell bash, ovvero la shell di riferimento per questo manuale, il terminale visualizzerà il seguente output:

Se state utilizzando la shell bash, ovvero la shell di riferimento per questo manuale, il terminale visualizzerà il seguente output: CAPITOLO 5 LA SHELL BASH Pietro Buffa Con questo capitolo comincia il nostro viaggio nel mondo delle Command Line Interface (CLI), ovvero le interfacce testuali a linea di comando tipiche dei sistemi UNIX

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

4. UTILZZO DI EXCEL RELATIVAMENTE AI FOGLI ELETTRONICI, LE TABELLE E I DATI SUL WEB

4. UTILZZO DI EXCEL RELATIVAMENTE AI FOGLI ELETTRONICI, LE TABELLE E I DATI SUL WEB This project funded by Leonardo da Vinci has been carried out with the support of the European Community. The content of this project does not necessarily reflect the position of the European Community

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che

Dettagli

DOS-Gestione delle Directory e comandi

DOS-Gestione delle Directory e comandi DOS-Gestione delle Directory e comandi In ambiente MS-DOS è doveroso saper gestire file e cartelle in modo rapido. Vediamo ora come sono organizzati i file. Un file è un qualsiasi insieme di informazioni

Dettagli

CORSO PRATICO WinWord

CORSO PRATICO WinWord CORSO PRATICO WinWord AUTORE: Renato Avato 1. Strumenti Principali di Word Il piano di lavoro di Word comprende: La Barra del Titolo, dove sono posizionate le icone di ridimensionamento: riduci finestra

Dettagli

Password Safe 1.92b. Introduzione. Dettagli Tecnici. Istruzioni d uso. Egizio Raffaele

Password Safe 1.92b. Introduzione. Dettagli Tecnici. Istruzioni d uso. Egizio Raffaele Password Safe 1.92b Introduzione Dettagli tecnici Istruzioni d uso Egizio Raffaele Introduzione Password Safe 1.92b è stato progettato per mantenere le password in un database criptato protetto da Safe

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

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 : Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo

Dettagli

Il sistema operativo UNIX/Linux. Gli script di shell

Il sistema operativo UNIX/Linux. Gli script di shell Il sistema operativo UNIX/Linux Gli script di shell Introduzione Le shell permettono La gestione di comandi su linea di comando La shell comprende automaticamente quando il costrutto termina e lo esegue

Dettagli

Programma di Informatica 2ªB. Anno scolastico 2013/2014

Programma di Informatica 2ªB. Anno scolastico 2013/2014 Istituto d Istruzione Liceo Scientifico G.Bruno Muravera (CA) Programma di Informatica 2ªB Anno scolastico 2013/2014 Docente Prof. ssa Barbara Leo Libri di Testo e Materiali didattici Il testo di informatica

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

Il mio primo giorno in Laboratorio di Calcolo...

Il mio primo giorno in Laboratorio di Calcolo... Il mio primo giorno in Laboratorio di Calcolo... Disclaimer: alcune delle istruzioni che seguono potrebbero ledere la dignità di qualche lettore. Tuttavia l'esperienza acquisita negli anni passati ci ha

Dettagli

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch drag & drop visual programming appinventor realizzazione app per Google Android OS appinventor è un applicazione drag & drop visual programming Contrariamente ai linguaggi tradizionali (text-based programming

Dettagli