Lezione 3: File di input, File di output

Documenti analoghi
Lezione 2: Grafici e istogrammi con ROOT

Mirko Mariotti. March 9, 2009

Primi passi col linguaggio C

Prova di Laboratorio di Programmazione

Anno 4 Matrice inversa

Guida introduttiva al PHP

Appunti sui Fogli Elettronici. Introduzione. D. Gubiani. 19 Luglio 2005

Gestione di files Motivazioni

File di script. I File di Script Corso 2D - R.Virili 1

Istituto Scolastico Paritario Vincenza Altamura Scuola Primaria. Anno scolastico 2016/2017 Progettazione Didattica Disciplinare per la classe III

ELABORAZIONE TESTI (WORD) seconda parte. Laboratorio di Informatica AA 2009/2010

FREEFEM++ Marcello Bellomi. 18 Aprile Università di Verona FREEFEM++

Introduzione a Visual Studio 2005

Istituto Scolastico Paritario Vincenza Altamura. Scuola Primaria. Anno scolastico 2015/2016 Progettazione Didattica Disciplinare per la classe III

Programmazione web lato client con JavaScript. Marco Camurri 1

Lettura da tastiera e scrittura su monitor

MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL

Sistemi Operativi 1. Mattia Monga. a.a. 2012/13. Dip. di Informatica Università degli Studi di Milano, Italia

Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Sviluppo di programmi

Fit con Root. Stefano Lacaprara

Fortran in pillole : prima parte

Text files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro

Operazioni di Input/Output

Stringhe e allocazione dinamica della memoria

Modularizzazione del software

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Tipi di linea. Tipi di Linea - R.Virili 1

Cosa sono le maschere

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Microsoft Excel II parte Import di dati & Funzioni predefinite

Lezione 3: Programmazione della Shell di Unix

EXCEL software Excel .xlxs, La cella intestazione della colonna intestazione di righe l indirizzo della cella testo numeri formule

Modulo 4 Esercitazione Nr 2 Office 2007

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Esercizi. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

Laboratorio di Elementi di Bioinformatica

LA PREDISPOSIZIONE DELLA NOTA INTEGRATIVA

Variabili e Istruzioni

Video Scrittura (MS Word) Prima Parte

INDICE. Vista Libretto Pt. Coordinate 2. Inserimento e modifica dei punti di coordinate note 4. Inserimento e modifica dei punti di orientamento 5

Shell BASH. Variabili Redirezione

perror: individuare l errore quando una system call restituisce -1

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

EXCEL: FORMATTAZIONE E FORMULE

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Primi passi con JFlex

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

Tipi di pulsante, caselle di controllo e altri controlli sulla barra degli strumenti Moduli

1. MyAir. Analizzare anche i criteri funzionali

UD 3.2b: Programmazione in Pascal (1)

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

Informatica e Bioinformatica: AND, OR, NOT

Laboratorio di Algoritmi e Strutture Dati

Indovina la lettera...

Primo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

Introduzione al Foglio Elettronico

Excel. I fogli di calcolo Le funzioni base Gli strumenti. 1

Excel Base- Lezione 5

Laboratorio Informatica

Problema: calcolare il massimo tra K numeri

Imparare a utilizzare le formule e le funzioni

Come creare un modulo per Joomla?

Fare calcoli e grafici con Excel

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Fogli Elettronici: MS Excel

Strutture di Controllo

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Copiare le caratteristiche di formattazione da un testo ad un altro.

Guida pratica alla creazione di pagine web

MATRICI (ARRAY) IN MATLAB/OCTAVE

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Calcolare con il computer: Excel. Saro Alioto 1

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

Come creare un modulo con Google Drive

Costrutti condizionali e iterativi

Il generatore di numeri casuali

CORSO DI INFORMATICA. CL3 - Biotecnologie

Data Import e Probabilità. Renato Mainetti

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Sviluppare un programma in FORTRAN

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

Il terminale o Prompt dei comandi e modifica della path versione XP

Microsoft Excel consente di impostare diversi livelli di protezione per controllare gli utenti che possono accedere ai dati di Excel e modificarli.

Programma di navigazione internet: Internet Explorer

Ulteriori comandi sui file

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Questo materiale è reperibile a questo indirizzo: PAS

I file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd

EXCEL: FORMATTAZIONE E FORMULE

ingresso/uscita da file

Il sistema operativo UNIX/Linux. Soluzione di problemi mediante script Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Transcript:

Corso di Laboratorio I Laurea Specialistica Dott. Corrado Cicalò a.a. 2009/2010 Introduzione all'analisi dei dati sperimentali con il framework ROOT Università di Cagliari & INFN Università di Cagliari Corso di Laurea Specialistica in Fisica

Sommario Aprire e leggere un file di testo File ROOT di input File ROOT di output 2/13

Aprire e leggere un file di testo

Aprire un file di testo in input Può capitare (capita spesso!!!) che i risultati delle misure vengano scritti su file di testo prima di essere analizzati Problema: come aprire e leggere un file di testo all'interno di una macro di ROOT? Per l'apertura del file basta creare una viariabile di tipo ifstream, con il comando: ifstream myfile("nome-del-file") ;! Per la lettura dei valori contenuti nel file, occorre conoscere come sono distribuiti all'interno del file!!! Consideriamo solamente il caso più comune: nel file ci sono N righe, ciascuna contenente M valori separati da spazi 4/13

Leggere un file di testo in input Supponiamo di voler leggere una riga in cui siano scritti due valori decimali, separati da caratteri vuoti (spazi). Allora dobbiamo: 1) Dichiarare due variabili Double_t Double_t var1, var2 ; 2) Leggere la riga del file (già aperto nella slide precedente) con il comando myfile >> var1 >> var2 ; oppure: myfile >> var1 ; myfile >> var2 ; 5/13

Leggere un file di testo in input Per leggere un intero file, occorre leggere ciascuna riga con il comando visto nella slide precedente E' possibile usare vari metodi, due sono quelli più semplici. Se il file ha N righe, ciascuna con 2 valori: METODO 1 METODO 2 Double_t var1, var2 ; Double_t var1, var2 ; for (Int_t i=0; i<n; i++) { while (!myfile.eof() ) { myfile >> var1 >> var2 ; myfile >> var1 >> var2 ; } } Ad ogni iterazione, le variabili var1 e var2 assumeranno rispettivamente il primo e il secondo valore riportati nella (i+1)esima riga del file di testo. All'interno del ciclo, queste variabili possono essere usate per l'analisi (ad esempio per riempire un istogramma!) 6/13

Quante righe ha un file di testo? Per usare il codice della nella slide precedente (metodo 1) abbiamo bisogno di conoscere il numero di righe di cui è composto il file di testo in input Non c'è un metodo diretto, un possibile modo consiste nell'usare una serie di istruzioni che è conveniente inglobare in un unico metodo: Int_t GetNLines(Char_t *namefile) { gsystem -> Exec(Form("cat %s wc -l >> temp.temp", namefile)) ; ifstream myfile("temp.temp") ; Int_t nlines ; myfile >> nlines ; gsystem->exec("rm -rf temp.temp") ; return nlines ; } 7/13

Input/Output con file di ROOT

Input/Output con file di ROOT I file in formato.root NON servono per scrivere del testo Potete vederli come CONTENITORI per oggetti appartenenti a classi di ROOT (nel nostro caso, istogrammi e grafici) La gestione dei file di ROOT avviene tramite la creazione di oggetti di classe TFile Dovremo imparare come: definire un oggetto TFile per operazioni di output (scrittura) definire un oggetto TFile per operazioni di input (lettura) scrivere su un oggetto TFile di output leggere da un oggetto TFile di input 9/13

Usare i file ROOT di output Immaginate di aver creato un oggetto myhist di classe TH1D (istogramma) all'interno di una macro. Oltre a disegnarlo sul momento, potreste volerlo salvare per utilizzarlo successivamente. Come fare? 1) Definite un oggetto TFile per operazioni di output: TFile *fileoutput = new TFile("nomeFile.root", "recreate") ; 2) Scrivete l'oggetto myhist sul file appena aperto: fileoutput -> cd() ; myhist -> Write() ; Due commenti: l'opzione recreate fa in modo che il file fisico, se esiste, venga ri-creato!!! fileoutput -> cd() ; serve nel caso siano stati aperti diversi file di output 10/13

Usare i file ROOT di input Immaginate di aver salvato un oggetto di nome myhist e di classe TH1D (istogramma) nel file nomefile.root Per poter ri-utilizzare l'istogramma all'interno di una macro (per esempio, per modificarne il contenuto o solamente disegnarlo) dobbiamo: 1) Definite un oggetto TFile per operazioni di input: TFile *fileinput = new TFile("nomeFile.root", "read") ; 2) Leggete l'oggetto myhist dal file appena aperto: TH1D *myhist = (TH1D*) fileinput -> Get("myHisto") ; A questo punto, potete utilizzare myhist per qualsiasi operazione all'interno della macro 11/13

Input/Output con file di ROOT: commenti sparsi L'opzione recreate è comoda ma potenzialmente pericolosa: se il file esiste già, lo sostituisce con quello nuovo L'opzione read impedisce che il file aperto possa essere modificato Se cercate di aprire un file inesistente, avrete errori cercando di utilizzare l'oggetto. Per verificare l'effettiva apertura del file, utilizzate il metodo IsOpen() che restituisce un valore Booleano 0 o 1 (falso o vero) Se non specificate l'opzione di aprtura, viene usata come predefinita l'opzione read Altre opzioni di apertura: update (se il file esiste, ne aggiorna il contenuto; se non esiste, lo crea), create o new (se il esiste NON lo apre; se non esiste, lo crea) 12/13

Appendice: visualizzare il contenuto dei file ROOT Per leggere gli oggetti scritti nei file di input, dovete conoscerne la classe e il nome. Se non li conoscete, potete visualizzare al volo il contenuto del file usando l'interprete C++ di ROOT: Gli oggetti leggibili sono identificati dall'indicatore KEY all'inizio della riga 13/13

Backup Slides