Lezione 2: Grafici e istogrammi con ROOT
|
|
- Guido Grande
- 7 anni fa
- Visualizzazioni
Transcript
1 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
2 Sommario Brevissimi richiami sul C++ Cos'è ROOT? Scrivere una macro in ROOT Creare un istogramma in ROOT Creare un grafico in ROOT 2/35
3 Due parole prima di iniziare NON sono un esperto di C++ (nè di alcun altro linguaggio di programmazione...) NON sono un esperto di ROOT NON occorre che diventiate esperti di C++ NON occorre che diventiate esperti di ROOT In queste lezioni non andremo oltre le competenze minime di C++ e di ROOT che occorrono per gestire l'analisi dei dati raccolti nelle semplici esperienze di laboratorio 3/35
4 Brevissimi richiami sul C++
5 Alcune regole generali [Ci concentriamo sulle regole utili ad usare il C++ nell'ambito di ROOT] Il C++ è case-sensitive ( Pippo è diverso da pippo ) Ogni variabile va dichiarata, e possibilmente inizializzata Per ogni variabile, avete accesso anche al suo indirizzo di memoria (puntatore), e spesso è comodo lavorare con i puntatori delle variabili piuttosto che con le variabili stesse Ogni blocco di istruzioni va compreso fra parentesi graffe: {... } Al termine di ogni istruzione va posto il carattere punto e virgola ; 5/35
6 Operatori utili Operatori matematici: + * / Operatori composti: += (a += b a = a+b) = (a = b a = a b) *= (a *= b a = a*b) /= (a /= b a = a/b) ++ (a++ a = a+1) (a a = a 1) Operatori relazionali: == (uguale a)!= (diverso da) > (maggiore di) < (minore di) >= (maggiore o uguale a) <= (minore o uguale a) Operatori logici: && (AND) (OR) 6/35
7 Tipi di variabile predefiniti Poche regole, senza alcuna pretesa di completezza: Usiamo il tipo double (o Double_t in ROOT) per variabili numeriche non intere Usiamo il tipo int (o Int_t in ROOT) per variabili numeriche intere Usiamo il tipo bool (o Bool_t in ROOT) per variabili di tipo Booleano (vero/falso) Potete inizializzare le variabili al momento stesso della dichiarazione. Per esempio: Double_t a = ; Int_t b = 4 ; Bool_t c = 0 ; 7/35
8 Array Per definire una variabile come array di valori, si deve specificare la dimensione fra parentesi quadre: Double_t a[26] ; Int_t b[2] ; Bool_t c[82] ; Il contenuto dell'array può essere inizializzato tutto insieme al momento della definizione, oppure elemento per elemento: Double_t a[3] = {2.998e8, 6.626e 34, 6.67e 11} ; Int_t b[2] ; b[0] = 19 ; b[1] = 23 ; Consiglio: inizializzate sempre tutti gli array. Per inizializzare a zero basta usare: a[...] = {0} 8/35
9 Stringhe di caratteri Le stringhe di caratteri possono essere trattate come array di caratteri. Per definirle e inizializzarle si possono usare varie alternative: Char_t a[4] = ciao ; Char_t a[] = ciao ; Char_t *a = ciao ; Char_t a[4] = {'c', 'i', 'a', 'o'} ; Char_t a[4] ; sprintf(a, ciao ) ; 9/35
10 Cicli Ciclo for: esegue un blocco di istruzioni un numero definito di volte (in questo caso 100) for (Int_t i = 0; i < 100; i++) {... ;... ; } Ciclo while: esegue un blocco di istruzioni fino a quando una condizione è vera while (i < 100) {... ;... ; } 10/35
11 Strutture di controllo La più importante è la condizione di controllo if...else : esegue un certo blocco di istruzioni se è verificata la condizione tra parentesi if (a > b) {... ;... ; } else if (a < b) {... ;... ; } else {... ;... ; Eseguito quando a == b } 11/35
12 Output su schermo Per l'output su schermo si può usare la funzione printf(...) printf ( ciao ) ; Scrive ciao printf ( ciao\n ) ; Scrive ciao e va a capo printf ( %d\n, a) ; Scrive il valore di a (se a è un intero) printf ( %g\n, a) ; Scrive il valore di a (se a è un double) printf ( %s\n, a) ; Scrive il valore di a (se a è una stringa di caratteri) 12/35
13 Classi Nel C++ è possibile definire nuovi tipi di variabili. Un nuovo tipo di variabile è chiamato CLASSE, e va definito secondo regole precise Se si vuole usare un oggetto (variabile) appartenente ad una classe non predefinita, la definizione va inclusa all'inizio del programma NON ci interessa sapere come creare nuove classi, perché sfrutteremo sempre classi aggiuntive già pronte da usare Le uniche cose che dobbiamo sapere sugli oggetti di una classe sono: come vanno creati quali operazioni possiamo fare con/su di essi 13/35
14 Classi Per esempio, se si è creata la classe Istogramma, un oggetto di questa classe va dichiarato come: Istogramma hist ; Oppure come puntatore: Istogramma *hist ; D'ora in poi useremo questa opzione Le operazioni che è possibile fare con/sugli oggetti della classe sono specificate nella sua definizione. Ciascuna operazione è associata a un metodo della classe, che: ha un nome ben preciso accetta una lista di argomenti (anche vuota) esegue una serie di istruzioni restituisce un output (opzionale) 14/35
15 Classi La classe Istogramma potrebbe ad esempio possedere un metodo chiamato Riempi(Double_t A), che: accetta come argomenti un numero decimale A identifica il bin dell'istogramma nel quale è compreso il valore A aumenta di un'unità il contenuto del bin non restituisce alcun output Istogramma *hist ; hist -> Riempi(0.9) ; Qui andranno inserite le istruzioni per definire il range dell'istogramma e la suddivisione in bin (tramite altri metodi) 15/35
16 Classi La classe Istogramma potrebbe ad esempio possedere un metodo chiamato Riempi(Double_t A), che: accetta come argomenti un numero decimale A identifica il bin dell'istogramma nel quale è compreso il valore A aumenta di un'unità il contenuto del bin non restituisce alcun output Istogramma *hist ; La combinazione tratto-maggiore (freccia) esegue il metodo specificato alla sua destra sull'oggetto presente alla sua sinistra hist -> Riempi(0.9) ; 16/35
17 ROOT
18 ROOT ROOT è un framework per l'analisi dati basato sul linguaggio C++ Per quanto ci riguarda, esso si compone di: un interprete (anche interattivo) di comandi C++ una collezione di classi utili per l'analisi dati (e non solo!) Trovate tutte le informazioni e la risposta a tutti i possibili dubbi su: ROOT è fra i pacchetti predefiniti in alcune recenti distribuzioni di Linux!!! 18/35
19 ROOT Per avviare ROOT digitate root nel terminale: 19/35
20 ROOT L'interprete dei comandi C++ è già pronto. Possiamo provare a digitare qualche comando C++ 20/35
21 ROOT Le macro L'interprete dei comandi C++ può essere più utilmente usato per processare interi blocchi di istruzioni, anziché una singola istruzione alla volta I blocchi di istruzioni vengono scritti in un programma chiamato MACRO, memorizzato su un file esterno Il nostro obbiettivo è imparare a scrivere delle MACRO che possano essere eseguite da ROOT per eseguire l'analisi dei nostri dati Le macro che useremo hanno una struttura fissata: le istruzioni sono raggruppate in metodi ogni metodo possiede un nome, una lista di argomenti, una serie di istruzioni e restituisce (opzionalmente) un output 21/35
22 ROOT Una macro semplice semplice void PrimaProva(Int_t a) { for (Int_t i=0; i<10; i++) { Int_t b = a*i; printf("%d\n", b); } } Qualche commento: la macro è costituita da un solo metodo, che accetta un intero come variabile input il metodo è di tipo void, cioè non restituirà alcun argomento Per caricare la macro in root:.l <nome-del-file> Una volta caricata, digitare il nome del metodo specificando il valore dell'argomento fra parentesi, e premere INVIO 22/35
23 ROOT Una macro un po' meno semplice void PrimaProva(Double_t a) { for (Int_t i=0; i<10; i++) { Double_t b = Funzione(a*i); printf("%g\n", b); } } Double_t Funzione(Double_t argument) { return 3.0*argument + 4.2; } Qualche commento: la macro è costituita da due metodi una volta caricata la macro, possiamo eseguire entrambi i metodi, independentemente il primo metodo fa uso del secondo: il calcolo di b risulta in questo modo decentrato 23/35
24 ROOT Struttura generale di una macro Non ci sono particolari prescrizioni sulla scrittura di una macro di ROOT a parte il rispetto della sintassi del C++ Tipicamente, tuttavia, nelle macro si distingue fra: metodo principale : un metodo void, cioè che esegue operazioni senza restituire alcun risultato (spesso il suo nome è quello stesso del file della macro). È il metodo che viene eseguito dopo aver caricato la macro metodi ausiliari : metodi dedicati all'esecuzione di particolari operazioni richieste all'interno del motodo principale La presenza dei metodi ausiliari permette di avere dei moduli di codice dedicati ad operazioni specifiche riutilizzabili da macro a macro!!! 24/35
25 ROOT Le classi ROOT mette a disposizione una grande quantità di classi, per la definizione degli oggetti da usare nella nostra analisi Tutto quello che dovete sapere per creare un oggetto appartenente ad una classe è: come si chiama la classe come si usa il metodo di creazione dell'oggetto come si usano i metodi per operare sull'oggetto Nelle prossime slide impareremo a usare due classi di ROOT: la classe per gli istogrammi e la classe per i grafici 25/35
26 Gestire istogrammi in ROOT
27 Creare un istogramma Per la gestione degli istogrammi useremo la classe TH1D. Per creare un istogramma occorre specificare: nome dell'oggetto titolo dell'istogramma numero di bin valore minimo della variabile valore massimo della variabile Come modello, potete assumere l'istruzione: TH1D *hist = new TH1D("Histogram", "My Title", 10, -3.0, 7.0) ; che crea un [puntatore ad un] oggetto di classe TH1D avente Histogram come nome, My Title come titolo (in un immane sforzo di fantasia!) e diviso in 10 bin fra -3.0 e /35
28 Riempire e disegnare un istogramma Una volta creato l'istogramma, lo vogliamo riempire con i valori dalle misurazioni. Per esempio, se abbiamo ottenuto il valore -1.5, questo ricade nell'intervallo del quinto bin: dunque vogliamo che il contenuto del quinto bin venga aumentato di una unità La classe TH1D fa tutto in automatico. Il metodo corrispondente si chiama Fill, e chiede come argomento il valore da inserire, in formato Double_t: hist -> Fill(1.5) ; Possiamo ovviamente riempire l'istogramma quante volte vogliamo, inserendo tutti i valori ottenuti nelle misurazioni. Quando avete terminato la fase di riempimento, potete disegnare l'istogramma con il metodo Draw: hist -> Draw() ; 28/35
29 Istogrammi Riassunto void MacroIstogramma() { TH1D *hist = new TH1D("Histogram", "My Title", 10, -3.0, 7.0) ; hist -> Fill(1.5) ; hist -> Fill(1.1) ; hist -> Fill(-2) ; hist -> Fill(4.8) ; hist -> Fill(6.2) ; hist -> Fill(0.3) ; hist -> Fill(1.2) ; hist -> Fill(-2.3) ; hist -> Draw() ; } 29/35
30 Gestire grafici in ROOT
31 Creare un grafico (metodo 1) Per la gestione dei grafici useremo la classe TGraphErrors. Per creare un grafico occorre specificare: numero di punti del grafico array contenente le coordinate x di ciascun punto array contenente le coordinate y di ciascun punto array contenente gli errori sulla x di ciascun punto array contenente gli errori sulla y di ciascun punto! NOTA BENE per gli istogrammi, prima si crea l'oggetto (vuoto) e poi lo si riempie con i dati per i grafici, con il metodo 1 i dati devono essere a disposizione in array numerici PRIMA della creazione del grafico 31/35
32 Creare un grafico (metodo 1) Ecco un esempio completo per la creazione di un grafico con cinque punti: void MacroGrafico() { const Int_t npoints = 5 ; Double_t x[npoints] = {0.1, 0.6, 1.8, 2.4, 3.1} ; Double_t y[npoints] = {0.09, 0.47, 0.93, 1.12, 1.21} ; Double_t errx[npoints] = {0.05, 0.07, 0.10, 0.12, 0.13} ; Double_t erry[npoints] = {0.05, 0.05, 0.08, 0.09, 0.10} ; TGraphErrors *graph = new TGraphErrors(nPoints, x, y, errx, erry) ; graph -> SetName("Graph") ; graph -> SetTitle("My Title") ; graph -> Draw("ap") ; } 32/35
33 Creare un grafico (metodo 1) Ecco un esempio completo per la creazione di un grafico con cinque punti: void MacroGrafico() { const Int_t npoints = 5 ; Double_t x[npoints] = {0.1, 0.6, 1.8, 2.4, 3.1} ; Double_t y[npoints] = {0.09, 0.47, 0.93, 1.12, 1.21} ; Double_t errx[npoints] = {0.05, 0.07, 0.10, 0.12, 0.13} ; Double_t erry[npoints] = {0.05, 0.05, 0.08, 0.09, 0.10} ; TGraphErrors *graph = new TGraphErrors(nPoints, x, y, errx, erry) ; graph -> SetName("Graph") ; graph -> SetTitle("My Title") ; graph -> Draw("ap") ; } 33/35
34 Creare un grafico (metodo 2) Un metodo alternativo per creare un grafico consiste nel: creare un grafico vuoto aggiungere i punti uno ad uno [Potete ovviamente anche aggiungere un punto ad un grafico creato con il metodo 1 ] Ecco come si imposta il primo punto del grafico visto nella slide predente: TGraphErrors *graph = new TGraphErrors() ; graph -> SetPoint(0, 0.1, 0.09) ; graph -> SetPointError(0, 0.05, 0.05) ; Il primo argomento dei due metodi identifica il punto che state creando. Iniziate sempre dal punto numero 0. Lo stesso metodo permette di modificare le coordinate o gli errori di un punto già impostato 34/35
35 Creare un grafico Istruzioni complementari Qualche commento sul codice per la creazione del grafico (per entrambi i metodi ) Le istruzioni: graph -> SetName("Graph") ; graph -> SetTitle("My Title") ; permettono di specificare rispettivamente il nome e il titolo del grafico (nel caso dell'istogramma sono specificati alla creazione dell'oggetto) L'istruzione: graph -> Draw("ap") ; specifica che nel disegno dovranno comparire gli assi del grafico (lettera a ) e i punti (lettera p ). Non so perché, ma l'opzione predefinita (Draw senza argomenti) NON prevede il disegno degli assi e dei punti!!! 35/35
36 Backup Slides
37 Variabili e puntatori Nel C++ si può accedere all'indirizzo di memoria di una variabile tramite il suo puntatore. Il puntatore è identificato da una stringa di caratteri, per esempio 0x80cb700 Se A è una variabile, il suo puntatore si ottiene chiedendo &A Se A è il puntatore di una variabile, la variabile si ottiene chiedendo *A SE A = ALLORA &A = 0x80cb700 SE B = &A ALLORA *B = Se definiamo: Double_t *A = allora A è un puntatore, perché la variabile è *A 37/35
Lezione 3: File di input, File di output
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
DettagliLezione 4: Funzioni di Fit
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
DettagliAssegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
DettagliIl primo programma C++
Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliErrori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliVBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
DettagliArray. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere
DettagliProgrammare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione
Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi
Dettagli9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
DettagliC array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.
Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi.
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliValori Alfanumerici. Informatica di Base -- R.Gaeta 1
Valori Alfanumerici Finora abbiamo utilizzato solo valori numerici; Se vogliamo usare valori alfanumerici (caratteri e numeri), usiamo le stringhe; In Logo le stringhe si delimitano con le parentesi quadre;
DettagliEsercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
DettagliSTRUTTURE DI CONTROLLO DEL C++
STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliSviluppo di programmi
Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://www.ing.unibs.it/gastaldi/ Indice 1 M-file di tipo Script e Function Script Function 2 Gestione
Dettagli4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
DettagliCORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS
CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS Comandi da terminale Il comando sleep fa attendere un comando prima dell'esecuzione. Prova il comando: $ sleep 3s && echo Ciao Mondo! $ Comandi da terminale
DettagliIntroduzione al C++ (continua)
Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x
DettagliIng. Lorenzo Vismara
Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#
DettagliTipi di dato, variabili, istruzioni
Tipi di dato, variabili, istruzioni Esercizio 1 Implementare un servizio che estrae due numeri random tra 1 e 100, stampa a video i due numeri ed esegue le seguenti operazioni: se almeno uno dei due numeri
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 7: Istruzioni ed Operatori Booleani Vittorio Scarano Corso di Laurea in Informatica Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo Operatori relazionali
DettagliLezione 1. Argomenti della lezione: Introduzione a ROOT
Pagina 1 di 7 Lezione 1 Argomenti della lezione: Introduzione a ROOT Informazioni generali Schermata iniziale Comandi di ROOT CINT Convenzioni Variabili Globali Classi, Metodi e Costruttori Disegnare funzioni
DettagliLaboratorio di Informatica
Record Laboratorio di Informatica Ingegneria Meccanica Lezione 9, 6 dicembre 2007 versione 18 dicembre 2007 Renato Menicocci Array: collezione di dati omogenei
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 4 Operatori e introduzione a funzioni Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Soluzioni ad alcuni esercizi Alcuni commenti sugli
DettagliLaboratorio di informatica Ingegneria meccanica
Laboratorio di informatica Ingegneria meccanica Lezione 7 19 novembre 2007 Concetto di modulo di un programma (1) Lo sviluppo di programmi complessi avviene tipicamente per composizione di moduli, ognuno
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliConcetti base programmazione. Antonio Gallo
Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,
DettagliProgrammazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.
Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XII, parte I ) Gestione dell input Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail
DettagliProf. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI
Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()
Dettaglihttp://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
DettagliPROGRAMMAZIONE: I sottoprogrammi
PROGRAMMAZIONE: I sottoprogrammi Prof. Enrico Terrone A. S: 2008/09 Definizione Un sottoprogramma è un blocco di istruzioni a sé stante con un proprio nome. Il main (= sottoprogramma principale) è un caso
DettagliProgrammare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione
Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
DettagliEsercizi in Python. Docente: Domenico Daniele Bloisi
Esercizi in Python Docente: Domenico Daniele Bloisi http://profs.scienze.univr.it/~bloisi/asl/asl.html Esercizio 1 Utilizzare il linguaggio di programmazione Python per stampare a video la scritta "prima
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
DettagliIntroduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso
Introduzione al C Lezione 1 Elementi Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso C Mercoledì 19 Giovedì
DettagliL assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Abbiamo visto È conveniente definire una macchina astratta C Lo stato della macchina ci
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
Dettagliint main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;
Problema: CALCOLARE LA SOMMA DEI FATTORIALI DEI PRIMI 100 NUMERI NATURALI 0!+1!+2! + 99! #include int fattoriale(int); Calcolo fattoriale int main(){ int numero; /* numero di cui voglio calcolare
DettagliAmbienti di Programmazione per il Software di Base
Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base
DettagliInformatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 1) In un diagramma di flusso, la rappresentazione di un ciclo WHILE include sicuramente almeno:
DettagliOperazioni su file di caratteri
Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si
DettagliLe classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
DettagliC: primi elementi. Lezione 4
C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX
DettagliIntroduzione Programmazione Java
Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea
DettagliPassaggio di valori alle procedure
Passaggio di valori alle procedure Si distingue tra procedure di sistema e procedure definite dall utente. Es. forward 70: il 70 è un valore passato all argomento della procedura forward di sistema; Anche
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 24 settembre 2007 Outline 1 M-file di tipo Script e Function Script Function 2 Elementi di programmazione
DettagliModulo 2: Strutture fondamentali della programmazione Java
Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti
DettagliAppunti di informatica. Lezione 8 anno accademico Mario Verdicchio
Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione
DettagliLezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione
Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 9 Lezione 9 1 Il linguaggio C Istruzioni di input/output Arrays La funzione printf() La funzione printf() consente di mostrare sullo standard output (normalmente
DettagliIntroduzione a Visual Basic Lezione 2 Cicli e anomalie
a Visual Basic Lezione 2 Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Perché i cicli? Un esempio concreto Finora abbiamo visto
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare
DettagliUniversità degli Studi di Ferrara Corso di Laurea in Chimica - A.A
Università degli Studi di Ferrara Corso di Laurea in Chimica - A.A. 2018-2019 Programmazione Lezione 12A Esercizi in MATLAB Docente: Lorenzo Caruso lorenzo.caruso@unife.it Nelle lezioni precedenti Matlab:
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliFondamenti di Informatica. Ingegneria elettronica
Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse
DettagliLa gestione dei caratteri in C
in C In C i caratteri sono gestiti mediante variabili di tipo char (interi a 8 bit) Ad ogni carattere corrisponde un codice numerico ASCII (American Standard Code for Information Interchange) Un esempio
DettagliLezione 1: Organizzare i dati in grafici e istogrammi
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
DettagliUn esempio di if annidati
Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XIV, parte I ) Costrutto di selezione switch Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di
DettagliCorso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani
www.sapienzafinanziaria.com Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani Lezione n. 2 Edizione marzo 2015 Operatori condizionali e i cicli www.sapienzafinanziaria.com
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
DettagliMatlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1
Matlab 5 Funzioni Slide basate sul corso di C. Blundo A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 1 Funzioni Le funzioni sono utili quando occorre ripetere una serie di comandi più
DettagliI Dati Strutturati ed il Linguaggio C
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Dati Strutturati Esigenze Vettori
DettagliQualsiasi programma in C++ segue lo schema: Variabili
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 3 Analisi dettagliata di un programma /* commento */ Possono estendersi su più linee apparire in qualsiasi parte del programma. Alternativamente
DettagliLaboratorio Programmazione Anno Lezione 3
Laboratorio Programmazione Anno 2012-2013 Lezione 3 Scripting Fino ad ora, per fare esercizi, abbiamo utilizzato l ambiente interattivo di python. È possibile creare dei file contenenti (lunghe) sequenze
DettagliCostanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
DettagliUniversità degli Studi di Milano
Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 3 Input/Output elementare. Operatori, espressioni e istruzioni FABIO SCOTTI Laboratorio di programmazione
DettagliProgrammazione in Java (I modulo) Lezione 4
Programmazione in Java (I modulo) Lezione 4 Costanti Chiamiamo costanti tutti i valori numerici (interi o con la virgola), i caratteri e le stringhe. Esempio: 2, 3.7, 'y, buongiorno Le costanti numeriche
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 8 14/11/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 8 14/11/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
Dettagli2 Operatori matematici e costrutto if
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni
DettagliLezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
Dettaglii Vettori Alessandra Giordani Lunedì 15 aprile
i Vettori Alessandra Giordani agiordani@disi.unitn.it Lunedì 15 aprile 2013 http://disi.unitn.it/~agiordani/ Dichiarazione di un Array La dichiarazione di un array di n elementi di tipo T causa l'allocazione
DettagliInformatica B Esercitazione 1
Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Dipartimento di Elettronica e Informazione Informatica B Esercitazione 1 Introduzione al C Andrea Galbiati galbiati@elet.polimi.it
DettagliLaboratorio 1. 20/21 febbraio 2019
Laboratorio 1. 20/21 febbraio 2019 Attivitá Professionalizzante A.A. 2018/19 Premessa Si lavora a coppie, sui PC del laboratorio. Al termine degli esercizi, ogni copia scrive un breve report e me lo invia
DettagliPuntatori e array. Violetta Lonati
Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array
DettagliIntroduzione 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
DettagliCalcolare il massimo di una lista
Calcolare il massimo di una lista Lunedì abbiamo definito un algoritmo per calcolare il valore massimo fra gli elementi di una lista predefinita di interi. In particolare, abbiamo: deciso di rappresentare
Dettagli#include <stdio.h> main() { - 1 -
Un primo esempio di programma Ogni programma C deve contenere una funzione speciale chiamata main che indica il punto in cui inizia l esecuzione del programma. La funzione main è unica all interno di ogni
DettagliIntroduzione a Git, Parte 2 - Quali sono le funzioni principali di Git
Introduzione a Git, Parte 2 - Quali sono le funzioni principali di Git Nella prima puntata di Introduzione a Git abbiamo visto cos è un sistema di controllo versione e perché Git è tra i sistemi più usati
DettagliInformatica per Statistica Riassunto della lezione del 21/10/2011
Informatica per Statistica Riassunto della lezione del 1/10/011 Igor Melatti Costrutti del linguaggio C: ripasso Si consideri il programma C alla Figura 1 ci sono due dichiarazioni di funzioni, insertion
DettagliLinguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»
Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite
Dettagli