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.

Introduzione a ROOT. 1. Informazioni generali

Introduzione a ROOT. 1. Informazioni generali Introduzione a ROOT 1. Informazioni generali ROOT è un ambiente visualizzazione e trattamento dati interattivo sviluppato al CERN (si veda il sito ufficiale http://root.cern.ch interamente sviluppato in

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

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

Introduzione al Linguaggio C

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

Dettagli

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. 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

Il foglio elettronico

Il foglio elettronico Il foglio elettronico Foglio di calcolo, Spreadsheet in inglese, Permette di elaborare DATI NUMERICI. E una TABELLA che contiene numeri che possono essere elaborati con FUNZIONI matematiche e statistiche.

Dettagli

http://root.cern.ch C++

http://root.cern.ch C++ http://root.cern.ch ROO C++ Èun com prog dedi Piano di lavoro ROOT é un framework per l analisi dati basato sul C++: E` un sistema estremamente flessibile, ma un po complesso da imparare, Introduzione

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

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 LINGUAGGIO C NOSTRO APPROCCIO AL C. Sempre con esempi che illustrano le caratteristiche del linguaggio. SCRIVERE ED ESEGUIRE IL PRIMO PROGRAMMA C

IL LINGUAGGIO C NOSTRO APPROCCIO AL C. Sempre con esempi che illustrano le caratteristiche del linguaggio. SCRIVERE ED ESEGUIRE IL PRIMO PROGRAMMA C IL LINGUAGGIO C Sviluppato agli inizi degli anni '70 nei Bell Laboratories per ricerca, ha caratteristiche che lo rendono ideale per uso scientifico. Si sviluppa e si diffonde parallelamente a Unix. È

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

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

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

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

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

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Capitolo 2 Variabili, Espressioni e Comandi Prof. Mauro Gaspari: gaspari@cs.unibo.it Valori e Tipi Un valore (= value) è una delle entità fondamentali che i programmi sono

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

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE 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

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

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

Dettagli

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

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

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

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

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

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica Corso di Laurea in Matematica Seminario C/C++ Costa Università degli Studi di Milano Dipartimento di Matematica 19 Ottobre 2011 Cos'é un'ide IDE = Integrated Development Environment Consiste in: Editor

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

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

Lavorare con MySQL Parte Prima.

Lavorare con MySQL Parte Prima. Lavorare con MySQL Parte Prima. Data la particolarità dell argomento, ho deciso di dividerlo in due lezioni. Nella prima, si parlerà diffusamente di MySQL, cos è un DBMS, cos è l SQL, i campi supportati

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

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

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

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

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

Microsoft Access - dispensa didattica ECDL Modulo 5 - a cura di Antonino Terranova PAG 1

Microsoft Access - dispensa didattica ECDL Modulo 5 - a cura di Antonino Terranova PAG 1 Microsoft Access - Determinare l input appropriato per il database...2 Determinare l output appropriato per il database...2 Creare un database usando l autocomposizione...2 Creare la struttura di una tabella...4

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

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

Le command line di Java

Le command line di Java Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,

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

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

Informatica. Il software (S.O.) e ancora sulle basi numeriche

Informatica. Il software (S.O.) e ancora sulle basi numeriche (S.O.) e ancora sulle basi numeriche http://159.149.98.238/lanzavecchia/docum enti/sscta.htm 1 Il sistema operativo Un insieme di programmi che gestiscono le risorse (cpu, memoria, dischi, periferiche)

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

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009 Sistemi Operativi Processi in Linux Igino Corona igino.corona@diee.unica.it 20 Ottobre 2009 Contenuti della lezione Come funzionano i programmi in Linux? Schema base di esecuzione di un programma Modalità

Dettagli

Introduzione a Visual Studio 2005

Introduzione a Visual Studio 2005 Fondamenti di Informatica e Laboratorio T-AB Ingengeria Elettronica e Telecomunicazioni a.a. 2008/2009 Introduzione a Visual Studio 2005 Outline Solutions e Projects Visual Studio e il linguaggio C Visual

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 elettronico. Foglio elettronico EXCEL. Utilizzo. Contenuto della cella. Vantaggi EXCEL. Prof. Francesco Procida procida.francesco@virgilio.

Foglio elettronico. Foglio elettronico EXCEL. Utilizzo. Contenuto della cella. Vantaggi EXCEL. Prof. Francesco Procida procida.francesco@virgilio. Foglio elettronico Foglio elettronico EXCEL Prof. Francesco Procida procida.francesco@virgilio.it Il foglio elettronico è un programma interattivo, che mette a disposizione dell utente una matrice di righe

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

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica GLI SCRIPT DI SHELL Lucidi a cura di B.De Carolis Shell Unix - Linux comandi Interfaccia di alto livello tra utente e SO. Il processore interpreta e mette in esecuzione comandi da: 1) standard input o

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

Alcune regole di base per scrivere un programma in linguaggio C

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

Dettagli

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso Programmazione 1 Capitolo 01: Concetti Elementari Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it

Dettagli

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010 Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012 Introduzione a Visual Studio 2005/2008/2010 1 Outline Solution e Project Visual Studio e linguaggio C Visual Studio schermata principale

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

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

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

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

Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell

Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell Daniele Pighin pighin@fbk.eu FBK Via Sommarive, 18 I-38050 Trento, Italy March 5, 2008 Outline 1 Sistema operativo e

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

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

È 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

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

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

Università degli Studi di Brescia

Università degli Studi di Brescia Contenuti professionalizzanti creazione e la gestione di siti web Web Programming Introduzione al corso Università degli Studi di Brescia Riccardo Cassinis Marzia Tassi Fabio Tampalini Il sito del corso

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

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

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza WARNING Questo canale è solo per studenti di Fisica il cui cognome inizia con le lettere A-D Laboratorio

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

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

Utilizzare il debugger di Visual Studio

Utilizzare il debugger di Visual Studio Appendice F Utilizzare il debugger di Visual Studio Obiettivi Essere in grado di impostare i breakpoint e di eseguire un programma nel debugger. Essere in grado di utilizzare il comando Continue per continuare

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

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

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

EDI Manuale Sistemista. EDI Manuale Sistemista

EDI Manuale Sistemista. EDI Manuale Sistemista EDI Manuale Sistemista Paragrafo-Pagina di Pagine 1-1 di 12 Versione 44 del 11/11/2011 SOMMARIO 1 A Chi è destinato... 1-3 2 Pre requisiti... 2-3 3 Obiettivi... 3-3 4 Durata della formazione... 4-3 5 Introduzione

Dettagli

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

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

Reti di Calcolatori PROTOCOLLO FTP. File. File Transfer Protocol Modello FTP Operazioni FTP Comandi del protocollo Esempi di Client FTP avanzati

Reti di Calcolatori PROTOCOLLO FTP. File. File Transfer Protocol Modello FTP Operazioni FTP Comandi del protocollo Esempi di Client FTP avanzati Reti di Calcolatori PROTOCOLLO FTP D. Talia RETI DI CALCOLATORI - UNICAL 8-1 File Modello FTP Operazioni FTP Comandi del protocollo Esempi di Client FTP avanzati D. Talia RETI DI CALCOLATORI - UNICAL 8-2

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

Terza lezione: Directory e File system di Linux

Terza lezione: Directory e File system di Linux Terza lezione: Directory e File system di Linux DIRECTORY E FILE SYSTEM Il file system di Linux e Unix è organizzato in una struttura ad albero gerarchica. Il livello più alto del file system è / o directory

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

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

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

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

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

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

Reti di Calcolatori PROTOCOLLO FTP

Reti di Calcolatori PROTOCOLLO FTP Reti di Calcolatori PROTOCOLLO FTP D. Talia RETI DI CALCOLATORI - UNICAL 8-1 File File Transfer Protocol Modello FTP Operazioni FTP Comandi del protocollo Esempi di Client FTP avanzati D. Talia RETI DI

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

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

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

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

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

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

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive Assembler di Spim Assembler di SPIM Il programma è organizzato in linee Ogni linea può contenere un commento che parte dal carattere # e si estende fino alla fine della linea Ogni linea che non sia bianca

Dettagli

Il sistema di elaborazione

Il sistema di elaborazione Il sistema di elaborazione Stefano Brocchi stefano.brocchi@unifi.it Stefano Brocchi Il sistema di elaborazione 1 / 37 Informatica Il termine informatica deriva dalle parole informazione e automatica Stefano

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

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

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