Ragazzi, avrei bisogno del vostro aiuto. Sono alle prese con un esercizio:
"Si consideri un sistema massa-molla, la cui traiettoria viene campionata con intervallo di tempo di T 0.01 s. La massa parte da uno stato di quiete x0=20. I dati campionati sono forniti nel vettore di float "traiettoria" , di lunghezza MAX_CAMPIONI, definito nel file "massa_molla.h" ( file che non posso inviarvi) da includere nel sorgente C.
Si stampi la traiettoria, indicando tempo e valore della posizione ( punto in cui chiedo il vostro aiuto); si calcoli il periodo e la frequenza di oscillazione del sistema ( punto svolto correttamente)".
Il programma che ho scritto è il seguente, ma non riesco a far leggere correttament e gli elementi contenuti nel file massa_molla e inoltre non so svolgere il primo punto. Spero possiate aiutarmi. Grazie
codice:
#include <stdio.h>
#include <stdlib.h>
#include "massa_molla.h"
#define x0 20
#define T 0.01
void stampa_vettore ( float *v, int size);
float calcola_periodo (float *v, int size, float T);
int main (void) {
float *traiettoria;
float periodo;
stampa_vettore( traiettoria, MAX_CAMPIONI);
periodo = calcola_periodo(traiettoria, MAX_CAMPIONI, 0.01);
printf("Periodo = %f\n", periodo);
printf("Frequenza = %f\n", 1/periodo);
system ("pause");
}
/* Funzioni */
void stampa_vettore( float *v, int size) {
int i;
for (i=0; i<size; i++) {
printf( "La traiettoria e' v[%d]=%f \n", i, v[i]);
}
}
float calcolo_periodo(float *v, int size, float T)
{
int i, min_index;
min_index = 0;
for (i = 1; i < size;i++) {
if (v[i] < v[min_index])
min_index = i;
}
return 2 * min_index * T;
}