Beiträge von rumsbums

    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