Punti 2D e Serie Temporali

Questo post è parte del programma di tutoraggio per Fondamenti di Programmazione, DEMACS, University of Calabria.

Si vuole creare un programmino in C++ per generare, manipolare e analizzare delle serie temporali (time series). Una serie temporale può essere espressa come una sequenza di punti in uno spazio 2D. Per esempio, la seguente sequenza

(0,23), (1,42), (2,-3), (3,11), (4,5)

rappresenta una serie temporale di 5 osservazioni (dall’istante temporale 0 all’istante temporale 4). La sua rappresentazione visuale è la seguente:

Esempio serie temporale

Il programmino deve permettere di:

L’implementazione è distinta in diverse parti (da fare insieme a tutoraggio oppure da soli) e non tutte le parti sono attualmente disponibili. Saranno disponibili man mano durante gli incontri di tutoring.

Parte 1: la classe Point2D.h

La classe Punto2D.h modella un punto in 2D. Nello specifico, un punto p è rappresentato da due coordinate (x,y). Nella implementazione da effettuare, x è una coordinata intera, mentre y può essere definita come intera (int) o razionale (float o double).

In particolare, la classe deve prevedere le seguenti funzionalità:

Parte 2: la classe TimeSeries.h

La classe TimeSeries.h rappresenta una serie temporale (nell’accezione data poco sopra). In particolare, la classe deve contenere una serie di punti contigui e deve dare la possibilità di aggiungerne di nuovi o rimuoverli. Attenzione: la contiguità deve essere sempre mantenuta. Con contiguità si intende che, dati due punti in posizione i e i+1 con coordinate (a,b), (c,d), essi sono contigui se e solo se c = a+1.

Esempio di serie temporale corretta (la contiguità è mantenuta):

(0, 3), (1, 4), (2, 2), (3, -2), (4, -6)

Esempio di serie temporale non corretta (la contiguità non è mantenuta):

(0, 3), (1, 4), (3, 5), (4, -2), (5, -6)

La classe deve prevedere le seguenti funzionalità:

Comments

comments powered by Disqus