• Non ci sono risultati.

I/O da file e grafici

N/A
N/A
Protected

Academic year: 2021

Condividi "I/O da file e grafici"

Copied!
11
0
0

Testo completo

(1)

I/O da file e grafici

Stefano Lacaprara

Scopo della lezione:

Imparare a leggere e scrivere dati da/su un file Creare e visualizzare un grafico (x,y)

Fare un fit cul grafico di punti (x,y)

(2)

Scrivere su un file

Sapete gia' come si fa a scrivere su schermo

Per scriver su un file e' necessario creare uno 

“stream” diverso da cout , che indirizzi il flusso  su un file, e non su schermo

#include <iostream>

using namespace std;

cout << “hello, world!” << endl;

(3)

ofstream

Questo stream speciale si chiama “ofstream” (Output File  Stream)

E' una classe, occorre instanziare un oggetto di questa classe

#include <fstream>

using namespace std;

ofstream outFile(“mioFileOutput”);

if(outFile.good() ) 

    outFile << “hello, world!” << endl;

outFile.close();

Necessario include

Costruttore prende  un argomento,  il nome del file

Lo uso come “cout”

Quando ho finito chiudo il file

Controllo sia ok

(4)

Leggere da file

Sappiamo gia' come leggere da tastiera

Si usa lo stream speciale “cin”

Per leggere da file, si deve creare un oggetto della  classe ifstream e usarlo come uso cin

Se voglio leggere e scrivere sullo stesso file, uso 

un oggetto di tipo fstream

(5)

ifstream

#include <fstream>

using namespace std;

ifstream inFile(“mioFileintput”);

if(inFile.good()) {    float pi; 

   inFile >> pi ;

   cout << “Pi greco= ” <<pi  << endl;

}

inFile.close();

Necessario include

Costruttore prende  un argomento,  il nome del file

Lo uso come “cin”

Quando ho finito chiudo il file mioFileInput

  3.1415

Controllo sia ok

file esiste, e' leggibile, etx

File input

(6)

Piu' complicato...

mioFileInput 3.1415 2.7182

1.0 3.5

#include <fstream>

using namespace std;

ifstream inFile(“mioFileintput”);

if(inFile.good()) {    float pi,e,a,b; 

   inFile >> pi ;    inFile >> e;

   inFile >> a >> b;

}

inFile.close();

Leggo il primo numero

Il “cursore” si ferma allo spazio  o al fine riga

Il cursore e' qui

leggo il secondo numero

Leggo il terzo e il quarto numero

(7)

E se finisce il file?

#include <fstream>

using namespace std;

ifstream inFile(“mioFileintput”);

while (inFile.good()) {    float x; 

   inFile >> x ;

   if (inFile.eof()) break;

  cout << x << endl; 

}

inFile.close();

Loop

Dopo aver letto un numero, 

controllo che non sia finito il file

se si, esco e non uso il numero

(8)

Grafico

Ho letto N coppie di valori (x,y) e voglio metterli  su un grafico

Uso TGraph

TGraph TGraph(Int_t n, const Float_t* x, const Float_t* y) es:

float x[2]={1. , 2. };

float y[2]={4. , 6. };

TGraph gr(2, x,y);

(9)

TGraph

TGraph gr(2, x, y) ;

gr.SetMarkerStyle(20); // cambio il tipo di punto gr.SetMarkerColor(46); // cambio il colore

gr.DrawClone("AP"); // disegno A=con assi P=con 

“polymarker” (cioe' punti)

gr.Draw("APL"); // L = linea spezzata unisce punti

gr.Draw("APS"); // S = curva che passa per i punti 

(10)

Fit TGraph

Stessa identica interfaccia che per TH1F

Oppure si puo' fittare con una funzione definita  da noi, 

come abbiamo visto le altre volte per TH1F

 gr.Fit("pol1"); // FIT con pol1 (retta)

(11)

Grafico con errori

TGraphErrors

Basta definire due nuovi array con errori per x e  y (ex, ey)

Resto tutto uguale

TGraphErrors TGraphErrors(Int_t n, 

       const Double_t* x,       const Double_t* y,

       const Double_t* ex = 0,

     const Double_t* ey = 0)

Riferimenti

Documenti correlati

[r]

- che in connessione alla festività dell’Epifania nel territorio è diffusa la tradizione della combustione di falò rituali, qualora non vietati da misure straordinarie per

Ora però si stanno preparando per la Festa della Vite che si tiene nel mese di ottobre a Borgo, dove le vie sono strette e quindi la banda sta facendo le prove in fila per 3.. A

ARCHIVIO.C Il secondo programma deve gestire un archivio di persone che vengono memorizzate in un file INI diviso in due sezioni: nella prima sezione, “Struttura” , c’è un

 Utilizzare il contenuto del file raggi.txt per inizializzare un vettore cerchi di oggetti Cerchio.  Implementare la funzione membro operator&gt; per confrontare due oggetti

Converte l’immagine il cui nome del file è passato come argomento al programma da immagine a colori a immagine in bianco e nero.. Il tipo di rappresentazione non cambia

La prova si sosterrà nella data dell’appello e si accederà alla successiva prova orale con una valutazione di almeno 18/30.. Il risultato della prova scritta sarà

I seguenti studenti hanno raggiunto i 2/3 delle ore di frequenza richiesta, pertanto possono iscriversi agli appelli del corso... Elenco studenti che possono sostenere l’esame