test ed studio LAB2
This commit is contained in:
parent
0b992089f3
commit
9b0c46bccc
12 changed files with 323 additions and 0 deletions
49
LAB2/.vscode/settings.json
vendored
Normal file
49
LAB2/.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"files.associations": {
|
||||
"atomic": "cpp",
|
||||
"*.tcc": "cpp",
|
||||
"deque": "cpp",
|
||||
"string": "cpp",
|
||||
"unordered_map": "cpp",
|
||||
"vector": "cpp",
|
||||
"iterator": "cpp",
|
||||
"memory_resource": "cpp",
|
||||
"optional": "cpp",
|
||||
"string_view": "cpp",
|
||||
"functional": "cpp",
|
||||
"istream": "cpp",
|
||||
"new": "cpp",
|
||||
"ostream": "cpp",
|
||||
"stdexcept": "cpp",
|
||||
"streambuf": "cpp",
|
||||
"system_error": "cpp",
|
||||
"tuple": "cpp",
|
||||
"array": "cpp",
|
||||
"bit": "cpp",
|
||||
"cctype": "cpp",
|
||||
"clocale": "cpp",
|
||||
"cmath": "cpp",
|
||||
"compare": "cpp",
|
||||
"concepts": "cpp",
|
||||
"cstdarg": "cpp",
|
||||
"cstddef": "cpp",
|
||||
"cstdint": "cpp",
|
||||
"cstdio": "cpp",
|
||||
"cstdlib": "cpp",
|
||||
"cwchar": "cpp",
|
||||
"cwctype": "cpp",
|
||||
"exception": "cpp",
|
||||
"algorithm": "cpp",
|
||||
"memory": "cpp",
|
||||
"numeric": "cpp",
|
||||
"random": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"utility": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"iostream": "cpp",
|
||||
"limits": "cpp",
|
||||
"numbers": "cpp",
|
||||
"typeinfo": "cpp"
|
||||
}
|
||||
}
|
||||
53
LAB2/Lezione2/complesso.cc
Normal file
53
LAB2/Lezione2/complesso.cc
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#include "complesso.h"
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
|
||||
complesso::complesso(double r, double i) : m_real(r),
|
||||
m_imag(i) {}
|
||||
|
||||
complesso::complesso(const complesso &orig) : m_real(orig.m_real),
|
||||
m_imag(orig.m_imag) {}
|
||||
|
||||
complesso::~complesso() {}
|
||||
|
||||
double
|
||||
complesso::modulo() {
|
||||
return sqrt(m_real * m_real + m_imag * m_imag);
|
||||
}
|
||||
|
||||
double
|
||||
complesso::parte_reale() const {
|
||||
return m_real;
|
||||
}
|
||||
|
||||
double
|
||||
complesso::parte_immaginaria() const {
|
||||
return m_imag;
|
||||
}
|
||||
|
||||
void complesso::stampami() {
|
||||
std::cout << this->m_real << " + " << this->m_imag << "i" << std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
complesso complesso::operator+(const complesso &addendo) {
|
||||
complesso somma(m_real, m_imag);
|
||||
somma.m_real = somma.m_real + addendo.m_real;
|
||||
somma.m_imag = somma.m_imag + addendo.m_imag;
|
||||
return somma;
|
||||
}
|
||||
|
||||
complesso &
|
||||
complesso::operator=(const complesso &orig) {
|
||||
m_real = orig.m_real;
|
||||
m_imag = orig.m_imag;
|
||||
return *this;
|
||||
}
|
||||
|
||||
complesso operator+(const complesso &uno, const double &due) {
|
||||
double real = uno.parte_reale() + due;
|
||||
double imag = uno.parte_immaginaria();
|
||||
complesso somma(real, imag);
|
||||
|
||||
return somma;
|
||||
}
|
||||
20
LAB2/Lezione2/complesso.h
Normal file
20
LAB2/Lezione2/complesso.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#ifndef complesso_h
|
||||
#define complesso_h
|
||||
|
||||
class Complesso {
|
||||
public:
|
||||
Complesso(const Complesso &orig);
|
||||
|
||||
void stampami();
|
||||
|
||||
Complesso operator+(const Complesso &addendo);
|
||||
Complesso &operator=(const Complesso &orig);
|
||||
|
||||
private:
|
||||
double m_real;
|
||||
double m_imag;
|
||||
};
|
||||
|
||||
Complesso operator+(const Complesso &uno, const double &due);
|
||||
|
||||
#endif
|
||||
BIN
LAB2/Lezione2/main_00
Executable file
BIN
LAB2/Lezione2/main_00
Executable file
Binary file not shown.
34
LAB2/Lezione2/main_00.cpp
Normal file
34
LAB2/Lezione2/main_00.cpp
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
c++ -o main_00 complesso.cc main_00.cpp
|
||||
*/
|
||||
|
||||
#include "complesso.h"
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
// test del constructor
|
||||
complesso numero_complesso_1(0., 0.);
|
||||
complesso numero_complesso_2(3., 4.);
|
||||
|
||||
std::cout << numero_complesso_1.modulo() << std::endl;
|
||||
std::cout << numero_complesso_2.modulo() << std::endl;
|
||||
|
||||
// test del copy constructor
|
||||
complesso numero_complesso_3(numero_complesso_2);
|
||||
|
||||
// test dell'operator+
|
||||
complesso numero_complesso_4 = numero_complesso_3 + numero_complesso_2;
|
||||
// complesso numero_complesso_4 = numero_complesso_3.operator+ (numero_complesso_2) ;
|
||||
numero_complesso_4.stampami();
|
||||
|
||||
// test dell'operator=
|
||||
complesso numero_complesso_5 = numero_complesso_4 + 5.;
|
||||
numero_complesso_5.stampami();
|
||||
|
||||
complesso numero_complesso_6 = numero_complesso_5 = numero_complesso_2;
|
||||
numero_complesso_5.stampami();
|
||||
numero_complesso_6.stampami();
|
||||
|
||||
return 0;
|
||||
}
|
||||
BIN
LAB2/Lezione2/ref
Executable file
BIN
LAB2/Lezione2/ref
Executable file
Binary file not shown.
61
LAB2/Lezione2/ref.cpp
Normal file
61
LAB2/Lezione2/ref.cpp
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
#include <stdio.h>
|
||||
#include <string>
|
||||
|
||||
// classe test
|
||||
class Meow {
|
||||
private:
|
||||
std::string m_NomeGatto;
|
||||
int m_Ripetizione;
|
||||
|
||||
public:
|
||||
Meow(const std::string &NomeGatto,const int &Ripetizioni)
|
||||
: m_NomeGatto(NomeGatto),
|
||||
m_Ripetizione(Ripetizioni) { // Scope Costructor
|
||||
puts("\nClasse inizializzata.");
|
||||
|
||||
puts("##########Costruttore###########");
|
||||
printf("Valore:\t\tm_NomeGatto: %s\n", m_NomeGatto.c_str());
|
||||
printf("Indirizzo:\tm_NomeGatto: %p\n", &m_NomeGatto);
|
||||
printf("Valore:\t\tm_Ripetizioni: %d\n", m_Ripetizione);
|
||||
printf("Indirizzo:\tm_Ripetizioni: %p\n", &m_Ripetizione);
|
||||
|
||||
// riferimento
|
||||
puts("##########Riferimento###########");
|
||||
printf("Valore:\t\tNomeGatto: %s\n", NomeGatto.c_str());
|
||||
printf("Indirizzo:\tNomeGatto: %p\n", &NomeGatto);
|
||||
printf("Valore:\t\tRipetizioni: %d\n", Ripetizioni);
|
||||
printf("Indirizzo:\tRipetizioni: %p\n", &Ripetizioni);
|
||||
}
|
||||
// END costructor
|
||||
|
||||
void stampami() {
|
||||
puts(".STAMPAMI() dentro classe");
|
||||
printf("n_NomeGatto: %s\n", m_NomeGatto.c_str());
|
||||
printf("m_Ripetizione: %d\n", m_Ripetizione);
|
||||
};
|
||||
|
||||
void CAMBIO() {
|
||||
m_NomeGatto = "GATTOMODIFICATO";
|
||||
m_Ripetizione = 21;
|
||||
puts("\nCAMBIO");
|
||||
printf("gatto_Valore: \t%s\n", m_NomeGatto.c_str());
|
||||
printf("gatto_Indiri: \t%p\n", &m_NomeGatto);
|
||||
printf("n_Valore: \t%d\n", m_Ripetizione);
|
||||
printf("n_Indirizzo: \t%p\n", &m_Ripetizione);
|
||||
}
|
||||
};
|
||||
|
||||
int main(int argc, char const *argv[]) {
|
||||
std::string gatto = "meow";
|
||||
int n = 3;
|
||||
|
||||
printf("1 Gatto: %s\n", gatto.c_str());
|
||||
printf("Indirizzo gatto: %p\n", &gatto);
|
||||
printf("1 N: %d\n", n);
|
||||
printf("Indirizzo N: %p\n", &n);
|
||||
|
||||
Meow gatto1(gatto, n);
|
||||
|
||||
gatto1.stampami();
|
||||
gatto1.CAMBIO();
|
||||
}
|
||||
47
LAB2/intro.md
Normal file
47
LAB2/intro.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# Laboratorio 2 - I Modulo
|
||||
|
||||
## Contenuto del corso di calcolo
|
||||
|
||||
* Questo corso ha lo scopo di insegnare alcuni strumenti
|
||||
di *programmazione* e di *calcolo per l’analisi statistica dei dati*
|
||||
* Ogni lezione è dedicata ad un argomento specifico,
|
||||
ed è composta da una parte introduttiva frontale
|
||||
seguita dallo svolgimento di diversi esercizi proposti al termine della prima parte
|
||||
* Utilizzeremo i seguenti strumenti:
|
||||
* Il linguaggio di programmazione [```C++```](http://www.cplusplus.com/) per risolvere i problemi assegnati
|
||||
* Il framework di analisi dati [```ROOT```](https://root.cern.ch/) (sviluppato al CERN per l'analisi dati)
|
||||
* NOTA BENE: Gli strumenti scelti per il corso sono semplicemente un mezzo per
|
||||
* imparare la **logica della programmazione**,
|
||||
* per esercitarsi nella **scrittura di algoritmi**
|
||||
* per svolgere **esercizi di analisi dati**
|
||||
* Gli esercizi svolti a lezione corridspondo al livello di difficoltà medio
|
||||
degli esercizi proposti nelle prove di esame
|
||||
|
||||

|
||||
|
||||
## Lezioni del corso
|
||||
|
||||
* [Prerequisiti](Prerequisiti/README.md): breve riassunto di prerequisiti che non saranno coperti durante il corso
|
||||
* [Ripasso](Ripasso/README.md) : ripasso di ```C```
|
||||
* [Lezione 1](Lezione_01/README.md) : strutturazione di un programma ed introduzione al ```C++```
|
||||
* [Lezione 2](Lezione_02/README.md) : programmazione ad oggetti: le classi
|
||||
* [Lezione 3](Lezione_03/README.md) : visualizzazione dei dati con ROOT
|
||||
* [Lezione 4](Lezione_04/README.md) : la generazione di numeri pseudo-casuali
|
||||
* [Lezione 5](Lezione_05/README.md) : programmazione ```template``` e Standard Template Library
|
||||
* [Lezione 6](Lezione_06/README.md) : zeri ed estremanti di funzioni
|
||||
* [Lezione 7](Lezione_07/README.md) : la distribuzione di Poisson
|
||||
* [Lezione 8](Lezione_08/README.md) : toy experiment ed integrazione con tecniche Montecarlo
|
||||
* [Lezione 9](Lezione_09/README.md) : disegno della funzione di verosimiglianza
|
||||
* [Lezione 10](Lezione_10/README.md) : stime di parametri: il massimo della verosimiglianza
|
||||
* [Lezione 11](Lezione_11/README.md) : stime di parametri: i minimi quadrati
|
||||
* [Lezione 12](Lezione_12/README.md) : stime di parametri: fit di istogrammi
|
||||
|
||||

|
||||
|
||||
## Argomenti di approfondimento
|
||||
|
||||
* [Approfondimento 1](Appendice_01/README.md) : algoritmi predefiniti nelle *Standard Template Library* (STL)
|
||||
* [Approfondimento 2](Appendice_02/README.md) : programmazione ad oggetti: l'ereditarietà ```public```
|
||||
* [Approfondimento 3](Appendice_03/README.md) : approfondimenti sulle ```STL```
|
||||
* [Approfondimento 4](Appendice_04/README.md) : il caso lineare dei minimi quadrati: una soluzione esplicita
|
||||
* [Approfondimento 5](Appendice_04/README.md) : il salvataggio su file di classi di ROOT
|
||||
BIN
LAB2/ref
Executable file
BIN
LAB2/ref
Executable file
Binary file not shown.
27
LAB2/ref.cpp
Normal file
27
LAB2/ref.cpp
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#include <iostream>
|
||||
#include <stdio.h>
|
||||
|
||||
// classe test
|
||||
class Meow {
|
||||
private:
|
||||
double m_real;
|
||||
double m_imag;
|
||||
|
||||
public:
|
||||
Meow(const Meow &orig):
|
||||
{};
|
||||
|
||||
void stampami();
|
||||
|
||||
Meow operator+(const Meow &addendo);
|
||||
Meow &operator=(const Meow &orig);
|
||||
};
|
||||
|
||||
|
||||
int main(int argc, char const *argv[]) {
|
||||
std::string gatto = "meow";
|
||||
|
||||
printf("1 Gatto: %s\n", gatto );
|
||||
|
||||
|
||||
}
|
||||
BIN
LAB2/test
Executable file
BIN
LAB2/test
Executable file
Binary file not shown.
32
LAB2/test1.cpp
Normal file
32
LAB2/test1.cpp
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int somma(int &a, int &b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
int &somma_ref(int &a, int &b) {
|
||||
return (a > b) ? a : b;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(int argc, char const *argv[]) {
|
||||
|
||||
int pippo = 10;
|
||||
int paperino = 50;
|
||||
|
||||
int &referenza = (*somma_ref);
|
||||
|
||||
referenza(pippo,paperino);
|
||||
|
||||
printf("somma: %d\n", somma(pippo,paperino));
|
||||
printf("somma_ref: %d\n", referenza );
|
||||
|
||||
pippo = 100;
|
||||
printf("somma_ref AAA: %d\n", referenza );
|
||||
|
||||
// 100
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue