Metodi Computazionali della Fisica Secondo Modulo: C++



Похожие документы
Introduzione a ROOT. 1. Informazioni generali

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Corso sul linguaggio Java

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

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

Creare un applicazione con Qt Creator in pochi semplici passi

Introduzione al Python

Peripheral Interface Controller PIC MCU Families (Microchip)

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

Corso Eclipse. Prerequisiti. 1 Introduzione

Drupal. E vai con un po' di Drupal for Dummies... :D. Copyright by hachreak

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Tale attività non è descritta in questa dispensa

Introduzione a Visual Studio 2005

Prova Scritta del 19/07/10

Il compilatore Dev-C++

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Portale Materiali Grafiche Tamburini. Grafiche Tamburini Materials Portal

Analisi di massima: L utente dovrà inserire un numero limite, e tramite vari calcoli verrà stampato a video la sequenza.

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa

Codifica: dal diagramma a blocchi al linguaggio C++

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Compatibilità del Portale Piaggio con Internet Explorer 10 e 11. Internet Explorer 10

Indice. Materiale di riferimento. Struttura di un programma in C++ Introduzione al C++ (CAP 1) Alberto Garfagnini e Marco Mazzocco A.A.

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Compilatori GNU in Linux: gcc e g++

Il sistema operativo UNIX/Linux. Gli script di shell

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

I moduli Python. Marco Barisione. Cosa sono i moduli. Come scrivere un modulo. Importare un modulo (1) Importare un modulo (2) Importare un modulo (3)

Introduzione al Linguaggio C

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

1. Soluzione esercizio XYZ SpA

Using the QGIS Browser

Eclipse. Avviare un progetto e compilare un semplice programma

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Grammatica di base: Pointers

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

Eclipse - Nozioni Base

Corso Eclipse. Prerequisiti. 3 Window Builder

I TUTOR. Massimiliano Cattafi Ilaria Laurenti

Sicurezza dei Sistemi Informatici Esercitazioni OpenSSL

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

Le command line di Java

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

Connessione ad internet

Laboratorio di Programmazione Gruppo III, Ml-ZZ. Alberto Finzi

Programmare script e Add-Ons per Blender 3D 2.5

Lezione 10: Librerie e compilazione separata

Office Web Components in programmi C# da

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

Laboratorio di Algoritmi e Strutture Dati

PHPUnit Ricettario Del Programmatore Scontroso

Le stringhe. Le stringhe

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Università degli Studi di Brescia

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Progetto di Ingegneria del Software 2. SWIMv2

Guida introduttiva alle librerie grafiche GTK+

COMPILAZIONE DI UN APPLICAZIONE. 1) Compilare il file (o i file se più d uno) che contengono il testo del programma. compilatore

GerbView. 25 novembre 2015

XML e PHP. Gestire XML con PHP. Appendice

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

strutturare dati e codice

2. Guida all uso del software IrfanView

Introduzione all uso del Software Cisco Packet Tracer

Aprire MPLAB. Cliccare sull icona presente sul Desktop

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni:

TESTARE E CREARE APPLICAZIONI TESTUALI JAVA PER ANDROID CON ANDROID

Programmazione in Java e gestione della grafica. Lezione 19

SOMMARIO. Programmazione orientata agli eventi. Programmazione orientata agli eventi. Programmazione orientata agli eventi

Modelli Computazionali per Sistemi Complessi

Esercitazione su Windows. Introduzione al calcolatore Introduzione a Windows

Introduzione al MATLAB c Parte 2

Una prima applicazione in C per l utilizzo delle socket

Lezione II: Web server e ambiente di lavoro

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Corso di Reti di Calcolatori L-A

ASD Lab 1. Alessio Guerrieri UniTN. Alessio Guerrieri (UniTN) ASD Lab / 27

Rendere Python un linguaggio di scripting migliore

Lezione 6: Form 27/04/2012

Definizione del Termine Main Frame. Perche si sta facendo un progetto di Re- Hosting? Quali sono i vantaggi dell utilizzo di Micro Focus?

Introduzione al linguaggio C Gli array

Le operazioni di allocazione e deallocazione sono a carico del sistema.

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Транскрипт:

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 con Python Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 2 / 25

Utilizzo delle classi di ROOT Una semplice ricetta prendete uno script di ROOT; aggiungete int main() all inizio e return 0; prima dell ultima parentesi; aggiungete gli header file del C++ che possono servire; aggiungete tutti gli header file corrispondenti alle classi di ROOT utilizzate (ad esempio, se usate TCanvas, #include "TCanvas.h"; aggiungete un link al sistema per aprire le finestre; compilate: g++ nomefile.cpp root-config --lib -I root-config --incdir Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 3 / 25

Utilizzo delle classi di ROOT Un semplice esempio: lo script { groot->reset(); Float_t xf[2000],dx[2000],fit[2000]; Float_t xt[2000],train[2000],errort[2000]; TCanvas *Test = new TCanvas("Test", "TestPlot",800,600); TGraph *grtrain = new TGraphErrors(TrainPoints,xt,train,dx,errort); TGraph *grvalid = new TGraphErrors(ValidPoints,xv,valid,dx,errorv); TGraph *grfit = new TGraph(DataPoints,xf,fit); TF1 *orig = new TF1("sin","0.5+0.4*sin(6.28*x)"); TH1 *Graph1 = new TH1F("Graph1",NULL,200,0.,1.0); } Test->Draw(); Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 5 / 25

Utilizzo delle classi di ROOT Un semplice esempio: il main #1 #include <iostream> #include <fstream> #include <cmath> #include "TSystem.h" #include "TApplication.h" #include "TCanvas.h" #include "TF1.h" #include "TGraph.h" #include "TGraphErrors.h" #include "TH1.h" #include "TLegend.h" #include "TLegendEntry.h" #include "TColor.h" using namespace std; int main(){ //groot->reset(); Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 7 / 25

Utilizzo delle classi di ROOT Un semplice esempio: il main #2 TApplication theapp("app", NULL, NULL); Float_t xf[2000],dx[2000],fit[2000]; Float_t xt[2000],train[2000],errort[2000]; Test->Draw(); //Test->Print("prova.png"); theapp.run(); } return 0; Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 9 / 25

Utilizzo delle classi di ROOT Un semplice esempio: note se serve solo l output su file, scommentate la riga Test->Print("prova.png"); (in questo caso non è necessario inizializzare una TApplication; prima di compilare, controllate i path per include e librerie con root-config --libs e root-config --incdir; Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 10 / 25

Utilizzo delle classi di ROOT Un semplice esempio: il risultato Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 11 / 25

GUI con Python Introduzione Python è un linguaggio di scripting; Python è ObjectOriented; Python è multipiattaforma; Python è semplice da usare; molti strumenti forniscono API per Python. Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 12 / 25

GUI con Python Un esempio: il codice #1 Utilizziamo le wxwidgets per Python per realizzare un pannello di controllo che compila un codice C++, scrive alcuni parametri di input su un file e lancia il fit: #!/usr/bin/python import wx,os,sys,string class MyFrame(wx.Frame): def init (self, parent, title): wx.frame. init (self, parent, -1, title, pos=(150, 150), size=(400, 800)) # Create the menubar menubar = wx.menubar() # and a menu menu = wx.menu() Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 14 / 25

GUI con Python Un esempio: il codice #2 # add an item to the menu, using \tkeyname automatically # creates an accelerator, the third param is some help text # that will show up in the statusbar menu.append(wx.id_exit, "E&xit\tAlt-X", "Exit this simple sample") # bind the menu event to an event handler self.bind(wx.evt_menu, self.ontimetoclose, id=wx.id_exit) # and put the menu on the menubar menubar.append(menu, "&File") self.setmenubar(menubar) self.createstatusbar() # Now create the Panel to put the other controls on. panel = wx.panel(self) Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 16 / 25

GUI con Python Un esempio: il codice #3 makebtn = wx.button(panel, -1, "Make") exebtn = wx.button(panel, -1, Execute ) closebtn = wx.button(panel, -1, "Close") actfunclist = [ Linear, Sigmoid, Sinusoidal ] radioactfunc = wx.radiobox( panel, -1, "Activation function for internal layers:", wx.defaultposition, wx.defaultsize, actfunclist, 1, wx.ra_specify_cols ) # bind the button events to handlers self.bind(wx.evt_button, self.onmakebutton, makebtn) self.bind(wx.evt_button, self.onrunbutton, exebtn) self.bind(wx.evt_button, self.ontimetoclose, closebtn) Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 18 / 25

GUI con Python Un esempio: il codice #4 sizer = wx.boxsizer(wx.vertical) sizer.add(text, 0, wx.all, 10) sizer.add(textl, 0, wx.all, 10) sizer.add(chlayers, 0, wx.all, 10) sizer.add(textn, 0, wx.all, 10) sizer.add(textnodes, 0, wx.all, 10) sizer.add(radioactfunc, 0, wx.all, 10) sizer.add(radioactfunclast, 0, wx.all, 10) sizer.add(makebtn, 0, wx.all, 10) sizer.add(exebtn, 0, wx.all, 10) sizer.add(closebtn, 0, wx.all, 10) Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 20 / 25

GUI con Python Un esempio: il codice #5 panel.setsizer(sizer) panel.layout() def OnRunButton(self, evt): """Event handler for the button click.""" print "Running the main..." out_file = open("init/mlp.par","w") out_file.write(myframe.nlayers +"!number_of_layers\n") out_file.write(myframe.nnodes +"!nodes_on_int_layers\n") out_file.write(repr(myframe.actfunc)+"!af\n") out_file.write(repr(myframe.actfunclast)+"!af_last_layer\n") out_file.close() os.system(./main ) Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 22 / 25

GUI con Python Un esempio: il codice #6 class MyApp(wx.App): def OnInit(self): frame = MyFrame(None, "Simple wxpython App") self.settopwindow(frame) print "Print statements go to this stdout window by default." frame.show(true) return True app = MyApp(redirect=True) app.mainloop() Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 24 / 25

GUI con Python Un esempio: il risultato Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 07/01/08 25 / 25