C Problem Datentypen

  • Hey folgender Programmiertext: Ich hab Probleme bei der Errechnung von Daten...Es liegt wohl an den Datentypen...Aber ich weiß nicht wie ich das beheben soll!!!!!!

    #include <stdio.h>
    #include <math.h>
    #include <string.h>

    #define MESSSTRECKE 5.6 // Länge Messstrecke
    #define CNT 11200 // Anzahl Messwerte
    #define LC 0.8 //Grenzwellenlänge lambda c
    #define M_PI 3.14159265358979323846 // Pi


    int main()
    {
    int DatEin[CNT]; // Array für einzulesende Rohdaten
    int DatAus[CNT]; // Array für gefilterte Ergebnisdaten
    char cDatenkopf = 1, szTemp[128]; // Hilfs-cString
    FILE*pDatei; // I/O Stream (Dateizeiger)
    int ii; // allg. Zaehler
    int ii2;
    double dX = MESSSTRECKE/CNT; // Stuetzstellenabstand
    double iFenster = (double)LC/dX; // Breite des Gaussfensters als Stuetzstellenanzahl
    double gewichtung; // Gewichtungsfunktion h(x)
    double alpha; // Konstante
    double sum;


    // Einlesen der Rohdaten


    pDatei = fopen( "U:\\Messung01.txt", "r");
    if( pDatei == NULL)
    {
    printf( "Fehler beim Oeffnen der Rohdaten-Datei!\n");
    return( -10);
    }
    // Anfang der Daten nach Datenkopf suchen
    while( cDatenkopf)
    {
    if( !fscanf( pDatei, "%s", szTemp)) return( -11);
    if( !strcmp( szTemp, "[PROFILE]")) cDatenkopf = 0;
    printf( "%s\n", szTemp);
    }
    // Daten in Array einlesen
    for( ii = 0; ii < CNT; ii++) fscanf( pDatei, "%lf\n", &DatEin[ii]);
    fclose( pDatei);


    alpha=0.4697;


    printf( "\nProcessing %d DataPoints to File \"%s\" ...", CNT, "MessErg01.csv");


    //Einlaufphase
    for(ii=0;ii<iFenster;ii++)
    {
    DatAus[ii]=0; //Verfälschung
    }


    for(ii=iFenster;ii<CNT-iFenster;ii++)
    {
    //rücksetzen um für jeden Punkt neue Summenbildung zu ermöglichen
    sum=0;

    //Intervall mit Fehler kleiner 10 hoch -7
    for(ii2=-iFenster;ii2<iFenster;ii2++) //int ii2 macht Probleme
    {

    //Gewichtung an der Stelle "ii2"
    gewichtung = (1./(sqrt(alpha*LC)))*(exp(-M_PI *((float)ii2)/(sqrt((alpha*LC))))*((float)ii2)/(sqrt((alpha*LC)))); Hier funktioniert es nicht!!!!!!!!!!!!!!

    //printf("%d",gewichtung);
    //Mittelwertbildung
    sum=DatEin[ii+ii2]*gewichtung;
    }

    //Berechnung abspeichern
    DatAus[ii]=sum;
    }


    //Auslaufphase
    for(ii=CNT-iFenster;ii<CNT;ii++)
    {
    DatAus[ii]=0; //Verfälschung
    }

    // Schreiben der Ergebnisdaten
    pDatei = fopen( "U:\\MessErg01.csv", "w");
    if( pDatei == NULL)
    {
    printf( "Fehler beim Oeffnen der Ergebnisdatei!\n");
    return( -20);
    }
    for( ii = 0; ii < CNT - 2*iFenster; ii++)
    {
    fprintf( pDatei, "%lf\n", DatAus[ii]);
    }
    fclose( pDatei);

    printf( " ready.\n");
    return(0);
    }

    Hilfe!!! und bitte versätndlich erklären

  • a) Bitte CODE-Tags verwenden, damit Einrückungen im Code erhalten bleiben. Der Code ist ja unlesbar.

    b) Welches Problem besteht überhaupt konkret?

    c) Kannst du bitte ein möglichst kurzes Stück Code posten, das zum einen ausführbar ist und zum anderen das Problem aufweist, das du hast?

  • Hey folgender Programmiertext: Ich hab Probleme bei der Errechnung von Daten...Es liegt wohl an den Datentypen...Aber ich weiß nicht wie ich das beheben soll!!!!!!

    C
    #include <stdio.h>
    #include <math.h>
    #include <string.h>
    
    
    #define MESSSTRECKE 5.6                           // Länge Messstrecke
    #define CNT 11200                                    // Anzahl Messwerte
    #define LC 0.8                                         //Grenzwellenlänge lambda c
    #define M_PI 3.14159265358979323846       // Pi

    Soweit hab ichs gelesn, macht das M_PI nach der math.h kein problem? (redefinition)

    Thomas

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!