Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    37

    File incluso nel sorgente: errore di lettura

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

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    37
    credo di si ( il testo del problema e' lo stesso, quindi credo anche il file)

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    37
    si, ma non credo possa imparare qualcosa nel copiare. ho provato a svolgerlo senza guardare la soluzione, anche perchè il file me lo hanno passato ed anche il testo del problema. Il compito svolto no. Io ho scritto questo codice e chiedo a voi di dirmi dove sbaglio, cosa c'è che non va. Penso sia meglio che di fare copia e incolla

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Mica ti suggerivo di fare copia-incolla ma di tentare di valutare quel codice e il tuo codice per capire da solo il problema. Del resto cosa impari se gli errori del tuo codice te li dice il forum?

    In ogni caso, c'è una funzione

    calcolo_periodo

    che chiami con

    calcola_periodo

    Poi, perché un argomento è T se T è una costante?

    E ancora ... come mai dichiari

    float *traiettoria;

    se traiettoria è esistente ed è il vettore che devi usare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    37
    ti ringrazio, oregon. Non mi ero accorto di aver scritto prima calcolo e poi calcola -.-'
    Comunque, apportando queste correzioni il programma viene compilato ma la schermata in esecuzione viene chiusa improvvisamente ( e si mostra vuota).

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cioè ? Adesso il codice qual è?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    37
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    #include "massa_molla.h"
    
    
    #define x0 20
    #define T 0.01
    
    void stampa_vettore ( float *v, int);
    float calcolo_periodo (float *v, int);
    
    int main (void) {
        float *traiettoria;
        float periodo;
        
    
        
    stampa_vettore( traiettoria, MAX_CAMPIONI);
    periodo = calcolo_periodo(traiettoria, MAX_CAMPIONI);
          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)
    {
          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;      
    }

    Non ho capito il discorso della traiettoria..

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti avevo scritto già che questo

    float *traiettoria;

    lo devi eliminare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.