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; }

Rispondi quotando