From 9b0c46bccc6ee3f0cce020dc42678e8b975787c8 Mon Sep 17 00:00:00 2001 From: PanSi21 Date: Thu, 30 Jan 2025 02:34:55 +0100 Subject: [PATCH] test ed studio LAB2 --- LAB2/.vscode/settings.json | 49 +++++++++++++++++++++++++++++ LAB2/Lezione2/complesso.cc | 53 ++++++++++++++++++++++++++++++++ LAB2/Lezione2/complesso.h | 20 ++++++++++++ LAB2/Lezione2/main_00 | Bin 0 -> 17600 bytes LAB2/Lezione2/main_00.cpp | 34 +++++++++++++++++++++ LAB2/Lezione2/ref | Bin 0 -> 19792 bytes LAB2/Lezione2/ref.cpp | 61 +++++++++++++++++++++++++++++++++++++ LAB2/intro.md | 47 ++++++++++++++++++++++++++++ LAB2/ref | Bin 0 -> 16640 bytes LAB2/ref.cpp | 27 ++++++++++++++++ LAB2/test | Bin 0 -> 16096 bytes LAB2/test1.cpp | 32 +++++++++++++++++++ 12 files changed, 323 insertions(+) create mode 100644 LAB2/.vscode/settings.json create mode 100644 LAB2/Lezione2/complesso.cc create mode 100644 LAB2/Lezione2/complesso.h create mode 100755 LAB2/Lezione2/main_00 create mode 100644 LAB2/Lezione2/main_00.cpp create mode 100755 LAB2/Lezione2/ref create mode 100644 LAB2/Lezione2/ref.cpp create mode 100644 LAB2/intro.md create mode 100755 LAB2/ref create mode 100644 LAB2/ref.cpp create mode 100755 LAB2/test create mode 100644 LAB2/test1.cpp diff --git a/LAB2/.vscode/settings.json b/LAB2/.vscode/settings.json new file mode 100644 index 0000000..9c1574a --- /dev/null +++ b/LAB2/.vscode/settings.json @@ -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" + } +} \ No newline at end of file diff --git a/LAB2/Lezione2/complesso.cc b/LAB2/Lezione2/complesso.cc new file mode 100644 index 0000000..74e6780 --- /dev/null +++ b/LAB2/Lezione2/complesso.cc @@ -0,0 +1,53 @@ +#include "complesso.h" +#include +#include + +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; +} diff --git a/LAB2/Lezione2/complesso.h b/LAB2/Lezione2/complesso.h new file mode 100644 index 0000000..2a4ef50 --- /dev/null +++ b/LAB2/Lezione2/complesso.h @@ -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 \ No newline at end of file diff --git a/LAB2/Lezione2/main_00 b/LAB2/Lezione2/main_00 new file mode 100755 index 0000000000000000000000000000000000000000..1f01643264e5a0be96ed7d926497848d7ab8671e GIT binary patch literal 17600 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 +#include + +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; +} \ No newline at end of file diff --git a/LAB2/Lezione2/ref b/LAB2/Lezione2/ref new file mode 100755 index 0000000000000000000000000000000000000000..f00b8741f67e1a866ea8b69a68721f4e075eb9f7 GIT binary patch literal 19792 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 A>;M1& literal 0 HcmV?d00001 diff --git a/LAB2/Lezione2/ref.cpp b/LAB2/Lezione2/ref.cpp new file mode 100644 index 0000000..78f3b4e --- /dev/null +++ b/LAB2/Lezione2/ref.cpp @@ -0,0 +1,61 @@ +#include +#include + +// 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(); +} diff --git a/LAB2/intro.md b/LAB2/intro.md new file mode 100644 index 0000000..8d7f752 --- /dev/null +++ b/LAB2/intro.md @@ -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 + +![linea](immagini/linea.png) + +## 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 + +![linea](immagini/linea.png) + +## 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 \ No newline at end of file diff --git a/LAB2/ref b/LAB2/ref new file mode 100755 index 0000000000000000000000000000000000000000..9b2c420fab91241c6353a6b88d48d4d35ceae359 GIT binary patch literal 16640 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 literal 0 HcmV?d00001 diff --git a/LAB2/ref.cpp b/LAB2/ref.cpp new file mode 100644 index 0000000..c9d8ff4 --- /dev/null +++ b/LAB2/ref.cpp @@ -0,0 +1,27 @@ +#include +#include + +// 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 ); + + +} diff --git a/LAB2/test b/LAB2/test new file mode 100755 index 0000000000000000000000000000000000000000..dbe364264bd32b15cc4e53359bafe4ea9a819267 GIT binary patch literal 16096 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 TX^y_Izy4u^Zi~mkBdY%avND(s literal 0 HcmV?d00001 diff --git a/LAB2/test1.cpp b/LAB2/test1.cpp new file mode 100644 index 0000000..c80a3c1 --- /dev/null +++ b/LAB2/test1.cpp @@ -0,0 +1,32 @@ +#include + +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; +}